Тронутый profile user php. Создание профиля зарегистрированного пользователя. Изменение порта MySQL в вашем скрипте

Пользователей WordPress я уже писал (смотрим по ссылке). Но как и всякий инструмент (кроме кувалды) Adminimize — не идеален и всё полностью он убрать не может, хотя это благодаря только программистам Ворпресса.

Данный пост родился спонтанно, можете говорить спасибо гостю Blow. Суть его вопроса заключалась в следующем (скорее серии вопросов):

1. Как скрыть «Выбор цветовой схемы» для пользователя?

2. Как скрыть «Горячие клавиши» и «Визуальный редактор» в панели WordPress?

Перейду сразу к делу. С помощью такого способа, можно скрывать любые элементы для пользователя в его профиле и на других страницах также. Способ самый простой — правка файла отображения!

Для «Профиля» — это файл user-edit.php , который лежит в папке wp-admin. Править его нужно очень осторожно, иначе можно хорошо «расплатиться» за свои эксперименты.

Решение (унифицированное):

1. Скачиваем файл к себе на ПК и делаем его копию (бережёного ….)

2. Ищем Html-код, который отвечает за вывод нужной нам информации.

3. Осторожно комментируем его и «заливаем» обратно с заменой.

Теперь практика (правка User-edit.php):

Честно, не помню какая версия у меня WP на подопытном сайте, но точно не ниже 2.8.2.

Сначало, я скачал файл на ПК и с помощью «Просмотрщика кода Chrome» посмотрел сам код, а в Notepad++ нашел нужный код.

(черточек по две с каждой стороны «-»)

1. Скрываем «Визуальный редактор»

Меняем на код:

—>

ps: не копируйте данный код, а меняйте у себя — велика вероятность ошибок!!!

2. Скрываем «Выбор цветовой схемы».

Вы, надеюсь, заметили в чем разница кодов — всего добавили 7 символов. Для скрытия этого пункта ищем if (count($_wp_admin_css_colors) > 1) и комментируем под строкой весь код между до

3. Скрываем «Горячие клавиши».

Этот урок хотелось бы посвятить созданию личного профиля для зарегистрированных пользователей (дополнение к уроку Создание регистрации пользователей на сайте). Теперь пользователи смогут добавить свой аватар, изменить имя и фамилию, добавить место проживания и день рождения. Для этого в таблицу users добавим несколько полей:

Теперь создадим страницу профиля profile.php и добавим на странице index.php ссылку на нее

Echo "
Мой профиль"; Теперь код самой страницы profile.php

Профиль <?php echo $login; ?>

Профиль



"; echo "".$array["name_user"]." ".$array["lastname"]."
"; switch ($array["birthdate_month"]){//Превращаем номер месяца в название case "1" : $month = "Января"; break; case "2" : $month = "Февраля"; break; case "3" : $month = "Марта"; break; case "4" : $month = "Апреля"; break; case "5" : $month = "Мая"; break; case "6" : $month = "Июня"; break; case "7" : $month = "Июля"; break; case "8" : $month = "Августа"; break; case "9" : $month = "Сентября"; break; case "10" : $month = "Октября"; break; case "11" : $month = "Ноября"; break; case "12" : $month = "Декабря"; break; } echo "Дата регистрации: ".$array["reg_date"]."
"; echo "Пол: ".$array["sex"]."
"; echo "День рождения: ".$array["birthdate_day"]." ".$month." ".$array["birthdate_year"]."
"; echo "Страна: ".$array["country"]."
"; echo "Город: ".$array["city"]."
"; if($_GET["id"] == $id_user){//Редактировать профиль может только хозяин echo "Редактировать профиль"; } }else{ print << Вход:
Логин: Пароль:
РегистрацияВосстановление пароля HERE; } ?>

Естественно перейдя на эту страницу, мы увидим стандартную аватарку noAvatar.jpg и возможно имя и фамилию, если пользователь при регистрации указал их, остальные пункты будут пусты. В самом конце этой страницы есть ссылка на страницу редактирование профиля edit.php . Код этой страницы очень легок и состоит из форм для ввода данных. Из-за довольно большого объема приводить здесь полностью я его не буду, а приведу лишь часть, полностью взять его можно будет в исходных файлах.

Все остальные формы аналогичны и будут ссылаться на один обработчик save_edit.php , который и будет вносить изменения в базу данных. Он также имеет достаточно большой код, и здесь я его тоже приводить не буду, а лишь немного расскажу, что в нем происходит (полностью код вы также с можете в исходных файлах). Первым делом мы создаем аватарку, если пользователь ее загрузил конечно, в противном случае оставляем стандартную. Если это так, то первым делом мы загружаем в папку avatars (кстати, создайте эту папку и поставьте ей права на запись 755) предварительно проверив с разрешенными расширениями. Затем создается новое изображение форматом зависящее от выбранного режима: $rezim = 1 создается квадратная картинка, $rezim = 2 картинка пропорциональная исходной. Также надо задать ширину создаваемого изображения $w и качество $quality . Созданное изображение мы сохраняем в формате jpg с помощью функции imagejpeg и генерируем для него случайное имя. Теперь нужно удалить старое изображение и обновить в базе данных на новое. На этом с изображениями все.

Все остальные пункты данного файла предназначены для обновления личных данных о пользователя и представляют собой простые запросы к базе данных для обновления полей. Предварительно перед обновлением проверяется существование входящих переменных и их безопасность с помощью stripslashes и htmlspecialchars . Если обновление происходит успешно, то мы сразу перенаправляем пользователя на страницу профиля.
Теперь сделаем так чтобы вошедший пользователь смог видеть всех остальных зарегистрированных пользователей. Для этого создадим страницу user.php , которая в цикле будет выводить всех пользователей.

Общие вопросы

Q: Профайлер показывает активность сервера, но не показывает всех запросов и сессий.

A: Не забудьте нажать кнопку Старт для начала захвата сессий.

Q: Удалось подключится к MySQL, но Сессии не показываются.

A: Neor Profile SQL работает как прокси сервер. Это значит что могут быть показаны только сессии проходящие через профайлер. Ваше приложение (или сайт) должен быть соединяться с профайлером как с обычным MySQL сервером. Профайлер использует только TCP входящие соединения. И тогда вы увидите результат в закладке Сессии.

Q: Почему в некоторых сессиях запросы с нулевым временем?

A: Запросы с нулевым временем выполняются крайне быстро без задержки. Такие запросы могли быть закешированы СУБД или выполняются очень быстро, например если у вас мощный сервер и хорошо оптимизированные таблицы.

Q: Что обозначает % во времени и длительности в сессии?

A: "Время %" - это доля от общего времени выполнения сессии. "Длительность %" - это доля от самого длительного запроса в сессии (соотношение к самому долгому запросу).

Q: Я использую JetProfiler и он в настройке проще.

A: JetProfiler получает информацию от MySQL сервера через команду "show status" и не может получить всю информацию на сервере, так как работает дискретно. Neor Profile SQL показывает абсолютно все запросы к базе данных. И это требует настройки вашего приложения для направления потока запросов через профайлер.

Q: Кнопка Профилировать в закладке SQL не показывает результат

A: Функция профилирования в SQL редакторе работает через команду SHOW PROFILES, которая была добавлена в MySQL Community Server начиная с версии 5.0.37. Проверьте свою версию сервера MySQL.

Q: Можно ли сделать профайлер консольным?

A: Для консоли используйте связку логов СУБД и tail, или специальные консольные инструменты, которых довольно много. Neor Profile SQL - это приложение для оконной ОС, которое предназначено для размещения на системе у разработчика.

Q: Профайлер работает, но почему то не отображает главный график статистики?

A: Главный график использует команду SHOW STATUS для основного сервера. Возможно у вас нет прав для запуска данной команды на сервере. Убедитесь в доступности прав на эту команду.

Q: Как запустить установщик в тихом режиме?

A: sqlprofiler-4.1.1.exe /S /D:C:Program Files (x86)Neor Profile SQL

Windows

Q: Как проверить соединение Профайлера?

A: Используйте консольный клиент MySQL для соединения с профайлером. Если вы увидите свою сессию в закладке Сессии, это значит что все настроено верно.
Например:
Потом выполните простую SQL команду:
show tables;
И посмотрите что получилось в закладке Сессии в профайлере.

Linux

Q: Не могу соединиться через localhost.

A: Linux пытается ассоциировать localhost с сокетным соединением, но Neor Profile SQL работает только с TCP соединениями. Установите в профайлере серверный адрес 127.0.0.1 вместо localhost. Тоже самое сделаете в настройках своего приложения.
Например:
mysql --host=127.0.0.1 --user=LOGIN --password=PASSWORD --port=4040

Q: Не могу соединиться с 127.0.0.1.

A: Проверьте тип соединения в вашем приложении. Можно также воспользоваться типом соединения local socket, в котором не требуется вводить значение порта.

Q: Как установить Neor Profile SQL под OpenSUSE?

A: На сегодняшний момент мы поддерживаем только пакет DEB, который работает под Ubuntu, Debian и совместимых Linux дистрибутивах. Вы можете сделать RPM файл своими силами и помочь тем самым.

Q: Почему я не могу перехватить запросы Sysbench?

A: Профайлер использует только TCP входящие соединения. Запускайте Sysbench с параметрами хоста и порта:
sysbench --test=oltp --mysql-host=127.0.0.1 --mysql-port=4040 --mysql-user=root --mysql-password=password prepare

Mac OS X

Q: Профайлер не может соединиться к серверу MAMP MySQL.

A: Проблема сетевого соединения в конфигурации MySQL:

  1. МАМР
    Бесплатная версия – скопируйте стандартный MySQL конфиг в папку
    /Applications/MAMP/conf/my.cnf
    Pro версия – откройте меню FILE – EDIT – MySQL template
  2. в конфигурации my.cnf удалите строку skip-networking
  3. в Настройках профайлера измените адрес хоста БД с localhost на 127.0.0.1

Изменение порта MySQL в вашем скрипте

В Neor Profile SQL порт по умолчанию 4040. Для сбора SQL запросов вы должны изменить в вашем скрипте стандартные значения подключения к MySQL хоста и порта 3306. Ниже приведены примеры как это сделать.

string connStr = "server=127.0.0.1;port=4040; database=YOUR_DATABASE;user=YOUR_USER;password=YOUR_PASSWORD;";
http://dev.mysql.com/doc/refman/5.1/en/connector-net-tutorials-intro.html


Изменение порта в популярных CMS

Wordpress

File: wp-config.php
Code: define("DB_HOST", "localhost:4040 ");

PrestaShop

File: config/settings.inc.php
Code: define("_DB_SERVER_", "localhost:4040 ");

OpenCart

File: config.php
Code: define("DB_HOSTNAME", "localhost:4040 ");



Просмотров