Свеклорезка member php action profile
WordPress.org
Support » Plugin: Ultimate Member — User Profile & Membership Plugin » Ultimate Member – Login – Redirect to Specific URL
Ultimate Member – Login – Redirect to Specific URL
Hi,
I’m setting up Ultimate Member.
The Register works fine.
The Login however leads, after filling in the fields, to a page with an avatar of the member although i want i to redirect (after login) directly to a specifice page.
How can i do this ?
Thanks,
Martin
You can setup redirect after login in Ultimate member -> Settings -> your user role e.g Member and Login options “Action to be taken after login – Redirect to URL”.
I tried this but its not working the redirect after login.
Changed in the User role section, the form and still not working.
I face same issue. User does not redirect to specific URL after login.
Any suggestion will help a lot.
- This reply was modified 1 year, 9 months ago by pradeepphule .
i cannot find where to put redirect after login, What Tab in Settings do you find this. I see User page as user, if i change that the page i specify place the user name at the end of the url and the page is 404
i want to change Register redirect url from profile to edit profile please send me a code for this
In addition to changing the user role, this is what worked for me:
Go to Ultimate Member > Forms
Select the Login form
On the right under Options, select Redirect to URL from dropdown
Under that, put the URL in the Set Custom Redirect URL field
Hope this helps someone.
What if you have done as per you instructions above and as per the manual but the redirect is still going back to the user profile and not the URL specified in User Roles/Login Options
Same here, I have set to redirect upon login and registration (from within the User Role settings), but it has no effect. Sadly this makes the plugin useless to me
Same here, also in my case, the normal redirect from the url that is requested is lost, so after login, the request url is not redirected to. the only workaround found: deactivate Ultimate Member!
Nice features, but losing this basic functionality makes it a no-go.
It didn’t work for me at first either, but then I saw that after setting the redirect method for the user role, you have to click on “Update Role” on the right side panel! (imho not intuitive at all as I was looking for Save settings at the bottom and not finding it assumed it was auto-saved or something).
So, the following worked for me:
In Ultimate member -> Settings -> User roles -> Subscriber (or another role you want to configure). Then in Login options “Action to be taken after login – Redirect to URL” and set it to the URL I specified.
THEN, click in the right sidepanel on top “Update Role” (big blue button).
I want to change url of view profile i.e user/username/ to member/username. Any Idea how can I do this
Hi
I am having the same problem, and in my case, it has previous worked before and kept the old URL, I have changed the URL since but it’s still going back to the old URL that doesn’t work anymore!
Does the author provide any support on this topic as I too have no joy with login redirect. Have tried both updating user role and also changing settings in login form to a specific URL but both methods just simply redirect to default home page after login. This is really really poor…
As well s adding a redirect URL to the login Form you need to add a redirect to the Role…
Login Options:
Action to be taken after login > Redirect to URL
Профилирование PHP с XHprof
Профилирование приложения — это сбор данных о скорости выполнения различных участков программы (файлов и функций). Существует множество инструментов профилирования PHP, но не все инструменты подходят для проведения анализа прямо в продакшне.
XHProf — мега простой профайлер, который собирает статистику прямо во время работы приложения почти без оверхеда.
Зачем профилировать?
Если приложение начинает работать медленно, профилирование поможет узнать, какая именно часть тупит. Результат профилирования — это обычно список выполненных функций и времени их исполнения.
Профилирование стоит делать до любой оптимизации приложения. В противном случае — будете руководствоваться догадками. Скорее всего неправильными.
Проблема Xdebug
Xdebug — мощное решение для PHP. Но сама платформа Xdebug настолько тяжелая, что ее нельзя использовать на работающих сайтах. XDebug создает значительную нагрузку на ресурсы сервера и замедляет приложение.
С другой стороны, проблемы на «живом» сайте могут быть совершенно не такими, как в среде разработчика. Профилирование только на компьютерах разработчиков будет показывать лишь часть проблем.
Именно поэтому и было разработано решение XHprof. Оно предназначено для применения в работающих приложениях. Основная идея этого профайлера — создавать минимум нагрузки на приложение при этом собирать все необходимые данные о скорости работы. Решение разработано ребятами из Facebook и поддерживается новыми версиями PHP.
XHProf
Установка
На Debian XHprof есть в sid пакетах, поэтому:
Вы также можете собрать XHprof самостоятельно.
Включение профилирования
Пусть у нас есть скрипт с таким кодом:
Проведем профилирование с помощью XHprof. Для этого на этой странице необходимо:
- Включить профайлер в самом начале.
- В самом конце программы остановить профайлер и сохранить полученные данные.
Это будет выглядеть так:
# Сохраняем результат профилирования в переменную $xhprof_data
- Функция xhprof_enable() принимает в качестве аргументов флаги. XHPROF_FLAGS_CPU для фиксирования статистики процессора, XHPROF_FLAGS_MEMORY — для памяти, XHPROF_FLAGS_NO_BUILTINS — для игнорирования встроенных функций.
- xhprof_disable() выключит профайлер и вернет собранную статистику.
Отчеты
Генерация
Собранные данные можно проанализировать в интерфейсе XHprof для построения отчетов. Для этого, необходимо скачать исходники XHprof:
После этого необходимо внести изменения в скрипт:
# Новый код сохраняет отчет для использования в графическом интерфейсе
Интерфейс для отчетов
Чтобы увидеть отчет, необходимо настроить виртуальный хост на папку /var/www/xhprof-0.9.4/xhprof_html. Например, в Nginx:
После этого появится список отчетов:
Таблица содержит список функций, которые были выполнены в рамках одной страницы с дополнительной информацией:
- Calls — количество и процентное соотношение вызовов функции.
- Incl. Wall Time — время выполнения функции с вложенными функциями.
- Excl. Wall Time — время выполнения функции без вложенных функций.
- Incl. CPU — процессорное время с вложенными функциями.
- Excl. CPU — процессорное время без вложенных функций.
- Incl. MemUse — потребление памяти с вложенными функциями.
- Excl. MemUse — потребление памяти без вложенных функций.
- Incl. PeakMemUse — максимальное потребление памяти с вложенными функциями.
- Excl. PeakMemUse — максимальное потребление памяти без вложенных функций.
Графические отчеты
Чтобы построить графический отчет, убедитесь, что у Вас установлен graphviz:
После этого по ссылке [View Full Callgraph] будет доступна иерархия вызовов нашей страницы:
Ресурсоемкие участки кода выделены желтым (средние) и красным (самые тяжелые). Это те участки кода, которые используют множество ресурсов относительно всей остальной программы. Это может быть одна медленная функция или большое количество вызовов быстрой функции. В нашем примере функция str_replace() помечена красным из-за 262 вызовов.
Агрегатные отчеты
Интерфейс XHprof также позволяет просматривать агрегатную информацию сразу с нескольких отчетов. Для этого run_id передаются через запятую:
Используйте XHprof для профилирования PHP прямо в продакшне.
Что делать, если часть логики написана на PHP, а часть на NodeJS
Улучшение производительности PHP приложений
Анализ медленных запросов (профилирование) в MySQL с помощью Percona Toolkit
Простое развертывание приложений и сервисов при помощи Subversion
Развертывание небольших веб-приложений и сервисов с помощью Git
Асинхронные задачи для оптимизации скорости сайта
Два варианта установки профайлера XHprof
Чем вызвана ошибка PHP: exec(): Unable to fork и как ее исправить
Анализ работы СУБД при помощи pgFouine
Фоновое выполнение в PHP с помощью fastcgi_finish_request
Как включить хранение PHP сессий в Memcache
Запуск и контроль PHP демона (фоновый процесс) для использования в очередях сообщений
Как настроить Nginx + PHP 7
Как эффективно использовать цикл foreach в PHP
Как работать с Vertica из PHP с модулем ODBC
Minification of JS/CSS/HTML in PHP
Короткие подсказки для создания быстрых PHP приложений
Методы асинхронных вызовов в PHP
Правильный подход для кэширования тяжелых запросов
Пример использования очередей на основе Gearman и PHP
Свеклорезка member php action profile
Евгений Смолин: Сам кувыркался с непонятками (пока курсы учебные не прочитал и руками не попробовал то, что там написано). Битрикс из тех систем, где изучение «методом тыка» не очень эффективно без предварительного изучения учебных курсов. Уважаемые новички, потратьте немного своего драгоценного времени, пройдите пару-тройку учебных курсов и масса вопросов просто испарится — там есть ответы на множество вопросов.
Курс для разработчиков — продолжение линейки учебных курсов по Bitrix Framework. Получение сертификата по курсу рекомендуется после успешной сдачи тестов по всей линейке курсов, так как без понятия о работе Контент-менеджера и Администратора создание успешных сайтов будет затруднено.
Чтобы научиться программировать в Bitrix Framework, нет необходимости изучать всю линейку курсов. Но есть моменты, которые необходимо знать разработчикам о системе, они раскрыты в начальных курсах:
- Интерфейс программы — в главе Элементы управления курса Контент-менеджер.
- Компоненты 2.0 (начальные сведения) в главе Компоненты 2.0 (начальные сведения) курса Контент-менеджер.
- Информационные блоки — в главе Информационные блоки (начальные сведения) курса Контент-менеджер.
- Управление доступом к файлам, элементам контента, модулям и другие права доступа в главе Управление доступом курса Администратор. Базовый.
- Работа с инструментами системы — в главе Работа с инструментами курса Администратор. Базовый.
- Модуль Поиск — в главе Поиск курса Администратор. Базовый.
- Вся информация по администрированию модулей размещена в курсах:
- Администрирование. Модули — модули «1С-Битрикс: Управление сайтом»
- Администратор. Бизнес — модули «1С-Битрикс: Управление сайтом», связанные с коммерческой деятельностью в Интернете.
- Администратор «1С-Битрикс: Корпоративный портал» — модули «1С-Битрикс: Корпоративный портал»
По завершению изучения этого курса можно продолжить изучение работы в продуктах Bitrix Framework по следующим курсам:
- Бизнес-процессы — настройка и создание бизнес-процессов.
- Бот платформа Битрикс24 — приложения, основанных на чатах в веб-мессенджере.
- Маркетплейс Битрикс24 — приложения для коробочной и облачной версий Битрикс24.
- Маркетплейс Bitrix Framework — расширение функционала проектов на основе Bitrix Framework с помощью сторонних модулей и решений.
- Многосайтовость — система многосайтовости и принципы работы с многосайтовой конфигурацией.
Начальные требования к подготовке
Для успешного изучения курса и овладения мастерством разработки сайтов на Bitrix Framework необходимо владеть (хотя бы на начальном уровне):
- основами PHP, баз данных;
- основами HTML, CSS.
После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий — не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщений нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой:
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 5 дней (40 академических часов).
Примечание: В тексте курса вы встретите цитаты, высказанные в разное время разработчиками системы и разработчиками проектов на базе Bitrix Framework. Надеемся, что такие неформальные замечания внесут некоторое разнообразие в процесс изучения. Заодно опытные специалисты поделятся и своим опытом.
Имена авторов цитат даются в том написании, в каком авторы зарегистрировали себя на сайте «1С-Битрикс».
Скачать материалы курса в формате CHM. Файлы формата CHM обновляются ежемесячно, тем не менее, возможно некоторое отставание их от онлайновой версии курса.
Чтобы отключить подобное отношение к файлу необходимо:
- перейти в свойства файла на вкладку Общие. Внизу у Вас отобразится сообщение о том, что этот файл был заблокирован системой с целью защиты компьютера.
Отсутствие кнопки Разблокировать возможно в двух случаях:
- Файл лежит не локально, а на сетевом ресурсе.
- Если файл лежит на локальном диске, но путь к нему содержит спецсимволы (# и прочие).
Отражения PHP ( > Дата публикации: 2014-02-13
От автора: при разработке веб-приложений иногда необходимо получать информацию о структуре того или иного класса. Причем, данную информацию, необходимо получать программно. Для решения данной задачи, применяются отражения. Отражения – это специальный класс языка PHP, который содержит множество различных методов по получению информации о структуре произвольного класса.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
В данном файле создан очень простой класс (для примера), который наследует абстрактный класс ATest и реализует интерфейс ITest. Теперь, используя отражения, мы получим практически всю информацию о структуре данного класса. Как я говорил вначале – отражения это специальный класс PHP, а более точно это набор классов. Каждый из которых, содержит методы, позволяющие получить подробную информацию по классу, методу, свойству и т.д.
Перед тем как начать хотел бы обратить Ваше внимание на следующую страницу: ua1.php.net/manual/ru/book.reflection.php. Здесь представлена справочная информация. Как Вы видите, к отражениям относятся несколько классов. Но мы с Вами в данном уроке, рассмотрим методы класса ReflectionClass, которые позволяют получить информацию по произвольному классу. И немного затронем класс ReflectionMethod, который позволяет получить информацию о методах классов.
2. Класс ReflactionClass
Первым делом, необходимо создать объект класса ReflectionClass и передать его конструктору имя класса, информацию которого необходимо получить в дальнейшем. Так как у нас создан тестовый класс Test, его название и передаем:
Теперь, давайте получим массив всех констант объявленных в классе, для этого используем метод getConstants():
Обратите внимание, что метод getConstants(), я вызываю и сразу же передаю его в метод print_r(). Что бы в браузере увидеть результат. Данный прием я буду использовать на протяжении всего урока.
Как Вы видите, мы действительно получаем массив из объявленных констант. Для получения значения произвольной объявленной константы класса, воспользуемся следующим методом getConstant():
Данному методу параметром необходимо передать имя константы, значение которой хотим получить. Далее, метод getDefaultProperties(), позволяет получить массив, из объявленных свойств в классе:
На экране мы увидим следующее:
Если у класса есть блок комментариев, которые к примеру поясняют его работу, то его содержание можно получить, используя метод getDocComment():
Обратите внимание, что данный метод вернет содержание комментариев, которые непосредственно относятся к рассматриваемому классу. То есть комментарии, которые описаны, непосредственно перед классом. Имя файла, в котором описан рассматриваемый класс можно получить при помощи метода getFileName():
Далее, узнать какие интерфейсы реализует данный класс, можно используя метод getInterfaces():
На экране мы увидим следующее:
Как Вы видите, мы получаем массив, в каждой ячейки данного массива мы получаем объект, который характеризует один из реализующих интерфейсов. И этот объект – это объект класса ReflectionClass, для данного интерфейса. То есть данный объект, мы можем использовать, для получения информации по конкретному интерфейсу.
Таким образом мы уже получили информацию не только о структуре данного класса, но и о интерфейсах, которые он реализует. К примеру, мы можем сделать следующее. Мы можем узнать, в каком файле описан интерфейс, что реализуется данным рассматриваемым классом:
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Описанные методы в классе, можно получить, используя метод getMethods():
При этом мы получим следующий массив:
Как Вы видите, этот массив содержит в себе столько же ячеек, сколько методов описанной в классе, при чем имена ключей, это имена методов. А значения ячеек – это объекты класса ReflectionMethod, который позволяет получить всю информацию о методе. В данном уроке мы его практически не рассматриваем. Но он похож в своем применении на ReflectionClass поэтому Вы вполне самостоятельно разберетесь.
В классе ReflectionMethod мы рассмотрим очень полезный метод invoke(), который позволяет вызвать на исполнение метод класса. К примеру, давайте вызовем на исполнение метод my_method(), не вручную, а программно:
Обратите внимание: мы программно получаем массив методов, описанных в классе и вызываем метод, который содержится в ячейке с индексом 2. При этом метод invoke(), первым параметром получает объект класса, у которого необходимо вызвать метод (мы его на лету создаем new Test()) и последующими параметрами, передаем аргументы, которые необходимы для вызываемого метода. На экране мы увидим следующее:
То есть, мы видим отработку конструктора, затем метода my_method() и деструктора. Имя класса, с которым мы работаем, можно получить, используя метод getName():
Используя метод getParentClass(), мы получим объект ReflectionClass для класса, который является родителем рассматриваемого.
Для работы со свойствами класса используется объект класса ReflectionProperty, объект которого можно получить обычным образом (new ReflectionProperty() и передав его конструктору имя свойства). Либо для данного рассматриваемого класса, можно получить массив. В каждой ячейке, которого будут содержатся объекты класса ReflectionProperty, для каждого описанного свойства. Для этого необходимо использовать метод getProperties():
На экране мы увидим следующее:
Если Вас интересует определенной свойство класса. То объект класса ReflectionProperty, для него можно получить, используя метод getProperty(), соответственно, передав ему имя свойства:
Массив статических свойств класса, можно получить, используя метод getStaticProperties(). При этом это будет обычный массив, где ключи – это имена статических свойств, а значения ячеек – это значения статических свойств.
Значение определенного статического свойства, можно получить, используя метод getStaticPropertyValue(), передав ему имя свойства:
Проверить, возможно ли создать объект рассматриваемого класса, можно используя метод isInstantiable(). Который вернет TRUE если можно создать объект рассматриваемого класса. Соответственно если необходимо создать объект класса программно, для этого используется метод newInstance(). К примеру, можно написать следующее:
То есть проверяем, можно ли создать объект рассматриваемого класса (в нашем случае это класс Test), далее создаем его объект и проверяем, действительно ли в переменной $c, содержится объект рассматриваемого класса. Используя метод isInstance(), который принимает параметром объект для проверки (данный метод вернет TRUE, если действительно переданный объект, является объектом рассматриваемого класса). При этом на экране мы увидим следующее:
Вот и все, что я хотел показать Вам в этом уроке. Смотрите отражения очень полезно использовать, если Вы в своем скрипте создаете механизм автоматической загрузки различный файлов с классами. К примеру, у Вас есть множество различных файлов. Из них Вам необходимо отбирать только те, которые реализуют определенный интерфейс и являются потомками определенного родительского класса. А это очень легко определить при помощи изученных методов. Более того Вы можете проверить, есть ли у класса нужный метод и если да, то вызвать его на исполнение.
На этом данный урок завершен. Все Вам доброго и удачного кодирования.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Разработка веб-приложения на PHP
Создайте веб-приложение на PHP на примере приема платежей на сайте