Меню

Php настройки профиля в



Как с помощью PHP и MySQL создать систему регистрации и авторизации пользователей

Безопасная система авторизации и регистрации является одним из важнейших элементов при создании проекта с нуля. Один из возможных способов — это создание системы регистрации с помощью PHP и MySQL .

Хотя в Интернете есть много пособий на эту тему, большинство из них предназначено для продвинутых пользователей.

Эта статья расскажет о том, как создать простую версию системы авторизации и регистрации пользователей с использованием PHP и MySQL для начинающих. Давайте начнем!

Ресурсы, необходимые для работы с этим руководством:

  • Xampp ( PHP версии 5.3 или более поздней и MySQL версии 4.1.3 или более поздней );
  • Базовые знания по PHP , HTML и CSS ;
  • Время и терпение.

Что мы создаем

Настройка сервера

Вы можете использовать любой хостинг с поддержкой PHP и MySQL ( только убедитесь, что он поддерживает PHP версии 5.3 или более поздней и MySQL версии 4.1.3 или более поздней ).

Но в этой статье в качестве сервера будет использоваться Xampp . Если до этого не работали с Xampp , эта статья может помочь вам разобраться, как его должным образом установить на вашем компьютере.

Шаг 1 – MySQL

Во-первых, создайте базу данных и таблицу, которая будет содержать все регистрационные данные. Вы можете сделать это вручную с помощью графического интерфейса пользователя PhpMyAdmin или использовать для вставки этой информации SQL .

Взгляните на приведенный ниже код SQL :

Обратите внимание, что все данные представляют собой varchar , и даже пароль позже будет преобразован в символ md5 , чтобы обеспечить его безопасность.

Кроме того, используйте auto_increment для автоматического назначения идентификаторов или номеров пользователям, которые будут регистрироваться в системе.

Теперь, когда таблица создана, нужно задать разметку и стили CSS , а затем PHP -код.

Шаг 2 — Разметка

Для разметки, нам нужно включить три файла, и все они должны быть сохранены в формате « .php «, так как мы создаем программу сценариев на стороне сервера.

Сначала создайте файл login.php . Скопируйте в него приведенный ниже код:

С помощью этого кода вы получите результат, который показан на рисунке ниже:

С помощью этого кода вы получите следующий результат:

Этот код даст нам следующий результат:

Шаг 3 — CSS

Теперь, когда разметка готова, нужно добавить CSS -код. В основном, он будет содержать стили для класса страниц container, а также для кнопок и некоторых других элементов, таких как текстовые поля и лайки:

К этому времени, вы уже должны получить тот же результат, что и на изображении, приведенном в начале статьи.

Шаг 4 — Многоразово используемые элементы

Теперь, когда у вас готовы разметка и стили CSS , попробуйте задействовать такие многоразово используемые элементы, как раздел заголовка и раздел подвала. В корневой папке создайте новую папку и назовите ее “ includes “.

В ней будут содержаться все включаемые файлы. Затем в папке includes создайте новый файл и назовите его header.php . Скопируйте часть раздела заголовка в каждый из трех PHP -файлов, созданных нами ранее. Таким образом, у вас получится:

Следующее, что вам нужно сделать, это удалить разметку, скопированную из файла header.php во всех трех PHP -файлах и заменить ее следующим PHP -кодом:

Теперь, сделайте то же самое с подвалом. Скопируйте приведенный ниже код и вставьте его в новый файл footer.php . Он будет включать в себя раздел подвала:

Затем снова удалите эту часть во всех трех файлах PHP и замените ее следующим кодом:

Шаг — 5 Подключение к базе данных

Теперь, когда вы включили файлы разделов заголовка и подвала, пора создать новый включаемый файл. Назовите его constants.php и скопируйте в него следующий код:

В приведенном выше коде, мы создали константы информации базы данных. Теперь мы можем легко изменять информацию всякий раз, когда это необходимо.

Читайте также:  Настройка http cisco asa

Далее, в папке includes создайте новый файл и назовите ее connection.php . В нем будут храниться коды подключения к базе данных. Скопируйте и вставьте в него код, приведенный ниже:

Обратите внимание, что вам обязательно требуется файл constants.php . Если при подключении возникнет ошибка, с его помощью будет остановлено выполнение скрипта и выдано сообщение об ошибке.

Включите файл connection.php в файлах login.php и register.php , так как эти два файла необходимы для кода управления подключением. Скопируйте приведенный ниже код и вставьте его перед включением файла header.php :

Шаг — 6 Конфигурация файла register.php

Теперь необходимо преобразовать форму регистрации в полноценную систему регистрации. Чтобы сделать это, нужно добавить включение еще нескольких файлов PHP после включения header.php . Скопируйте и вставьте приведенный ниже код в файл register.php :

В приведенном выше коде, обратите внимание, что перед добавлением данных в базу производится их валидация. Переменная message используется для хранения сообщения об ошибках или об успешном выполнении действия.

Шаг — 7 Конфигурация файла login.php

Теперь, когда пользователи могут регистрироваться на сайте, необходимо создать систему авторизации. С помощью этого очень простого PHP -кода, вы можете включить систему авторизации. Скопируйте код и вставьте его перед разметкой в файл login.php :

В приведенном выше коде, перед перенаправлением пользователя на страницу intropage.php , которую мы добавим чуть позже, вы в первую очередь должны проверить, была ли установлена сессия .

В противном случае, если сессия не была установлена, пользователю с помощью переменной message будет выдаваться сообщение об ошибке или он будет перенаправляться на страницу login.php .

Шаг — 8 Конфигурация файла intropage.php

Мы установили все, что нужно для файлов register.php и login.php . Теперь вы просто должны обеспечить, чтобы пользователь оставался в системе при перенаправлении на страницу intropage.php . Скопируйте и вставьте приведенный ниже код в файл intropage.php :

Обратите внимание, что оператор if был создан для проверки, установлена ли сессия, и в зависимости от этого должен ли пользователь перенаправляться на страницу login.php или остаться на странице intropage.php .

Шаг — 9 Конфигурация файла logout.php

Наконец, чтобы пользователь мог выйти из системы, нужно удалить сессию с помощью session_destroy .

Скопируйте данный код в файл logout.php :

Заключение

Сегодня мы узнали, как создать простую систему авторизации, используя PHP и MySQL . Конечно, существует много аспектов, которые нужно учитывать, когда речь идет о безопасности, но это уже неплохое начало.

Вы можете изменять приведенные в этой статье коды по своему усмотрению. Если у вас есть идеи по их улучшению, буду рад услышать об этом в комментариях.

Надеюсь, вам понравилась эта статья. Увидимся в следующий раз!

Данная публикация представляет собой перевод статьи « How to Create a Login and Registration System Using PHP and MySQL » , подготовленной дружной командой проекта Интернет-технологии.ру

Комментарии (135)

пришлось покапать чтобы заработало, вот моя редакция кода:
обработчик register.php
if(isset($_POST[«register»])) <
if(!empty($_POST[‘full_name’]) && !empty($_POST[’email’]) && !empty($_POST[‘username’]) && !empty($_POST[‘password’])) <
$full_name= htmlspecialchars($_POST[‘full_name’]);
$email=htmlspecialchars($_POST[’email’]);
$username=htmlspecialchars($_POST[‘username’]);
$password=htmlspecialchars($_POST[‘password’]);
$query=mysql_query(«SELECT * FROM user WHEREusername='».$username.»‘»);
$numrows=mysql_num_rows($query);
if($numrows==0)
<
$sql=»INSERT INTO user
(full_name, email, username,password)
VALUES(‘».$full_name.»‘,'».$email.»‘, ‘».$username.»‘, ‘».$password.»‘)»;
$result=mysql_query($sql);
if($result) <
$message = «Account Successfully Created»;
>
else <
$message = «Failed to insert data information! SQL query:».$sql;

>
>
else <
$message = «That username already exists! Please try another one!»;
>
>
else <
$message = «All fields are required!»;
>
>
?>

В коде несколько ошибок. Так что тупое копирование- не поможет
1. Прошло несколько лет, поэтому у некоторых выйдет ошибка про mysql.
решение: меняйте в файлах mysql_. на mysqli_
2. Синтаксические ошибки: в файлах login.php и register.php написан код, вот кусок «WHEREusername=»
решение: поставьте пробел после WHERE
3. В файле register.php , в последней строке нет экранирования.
решение: вместо пишите
4. У некоторых отключена регистрация пользователя root в базу mysql.
Решение: создать пользователя и пароль для работы с базой и указать его в файле constants.php, заодно поменять содержимое на такое:

Читайте также:  Настройка пульта кондиционера электролюкс

и поменять содержимое файла includes/connection.php на такое (в коде я уже поменял mysql_. на mysqli_ . имейте это ввиду и поправьте если что):

5. У меня не происходило коннекта с базой данных, поэтому выходила ошибка.
Для теста явно указал данные для входа в mysql и все заработало. Надо подправить как включить файл connection.php в файлы.
Тестовое решение, в файле login.php перед $query прописать так:
$n1=mysqli_connect(«localhost»,»my_user»,»my_password»,»userlistdb»);
$query =mysqli_query($n1, «SELECT * FROM usertbl WHERE username='».$username.»‘ AND password='».$password.»‘»);
А в файле register:
также перед $query добавить строчку
$n1=mysqli_connect(«localhost»,»my_user»,»my_password»,»userlistdb»);
и далее, поправить на следующий код:
$numrows=mysqli_num_rows($n1,$query);
$result=mysqli_query($n1, $sql);

И только после этого всё заработало, как автор писал в статье:

Источник

Openserver настройка php для разных cms-систем

Openserver настройка php настраивается в модулях и является приоритетными настройками при использовании разных cms-систем, скриптов и приложений. Нельзя будет сделать установку системы поддерживающую версию php 5.6, если сам сервер настроен на более мощные параметры, например joomla, для которой нужно установить версию php не ниже 7.

Обратная ситуация, когда рекомендуемые параметры установки движка, выше чем настройка openserver, так же не желательна.

По этой же самой причине и уже готовые сайты, находящиеся на локальном сервере openserver, при изменении настроек модулей, могут быть недоступны. Трудно потерять данные, если конечно таких сайтов много. Для одной cms-системы можно настроить один раз и не обращать внимание на все остальное.

Но давайте рассмотрим вариант когда на локальном сервере openserver, установлено несколько вариантов сайтов, с разными системными требованиями. Для примера я взял скрипт службы поддержки osticket, с поддержкой версии php 5.6 и популярный движок joomla, для которого необходима версия php не ниже 7.0.

Разместить оба эти сайта на openserver, не получиться, если не создать специальные профили, в которых будут указаны необходимые параметры для каждого сайта отдельно.

Openserver настройка php с помощью профилей

При входе в настройки openservser , появится окно с множеством различных вкладок (13) в виде меню.

Для нашего конкретного случая, главными из них будут «Основные» и «Модули». В основных параметрах настраиваются профили, а в модулях-конфигурация сервера для каждого профиля отдельно.

Находясь в меню «Основные», в поле «Имя профиля», необходимо ввести нужное имя и нажать кнопку «Создать профиль», чтобы придуманный профиль появился в списке всех остальных профилей, которых кстати, может быть очень много.

Затем курсором просто выбрать новый профиль и перейти в меню «Модули», где настроить нужные параметры для нового профиля и сохранить. После чего, для сохранения новых установок, сервер будет перезапущен.

Создав таким образом нужное количество профилей, с необходимыми параметрами http, php и MySQL, можно быстро выбирать нужный комплекс настроек в виде профилей и легко переключаться между ними.

На практике все выглядит очень просто. Выбрав нужный профиль, необходимо нажать на кнопку «Загрузить профиль». Выбранные настройки будут доступны после перезагрузки сервера.

Вот так просто, используя профили openserver, можно быстро выбирать нужные настройки php любой версии.

Openserver настройка php практическое использование.

Источник

Как создать профили пользователей с помощью PHP и MySQL

Мне нужна помощь в создании системы профилей пользователей. Я хочу, чтобы это было как Facebook или Myspace где он имеет только имя пользователя после адреса, никаких вопросительных знаков или чего-либо еще, например, www.mysite.com/username . У меня есть все регистры, сценарии регистрации и т. д. все сделано, но как перейти к профилям, используя пример URL выше, «/username»?

3 ответов

вам нужно будет создать перезапись mod, которая взяла первый каталог и передала его как параметр $_GET.

Это должно переписать что-либо после ‘/’ как индекс.РНР?user=directory

вот сокращенная версия моего ответа, в случае, если кто-то момент tldr:

Читайте также:  Ippon back power pro 700 настройка

    создайте каталог под названием «пользователи».

внутри этого каталога сделайте .htaccess файл со следующим mod_rewrite:

RewriteRule !\.(gif|jpg|png|css)$ /your_web_root/users/index.php’REQUEST_URI

теперь все запросы страниц для любых расширений, не в круглых скобках, сделанных в каталоге пользователей, перейдут в индекс.в PHP

.php принимает URL-адрес, который пользователь вставляет и захватывает бит в конце. Есть множество способов сделать это, вот простой, если вы знаете, что последняя часть всегда будет именем пользователя, а не, возможно, именем пользователя / pics/:

теперь просто сделайте запрос к БД для этого имени пользователя. Если он существует, индексами.php выводит профиль, если у него нет перенаправления скрипта на: / users / 404.в PHP

но если пользователь существует, все, что ваш посетитель увидит, это то, что они вставляют

и они попал на страницу пользователя foo.

нет получить переменные для хакера, чтобы использовать, и довольно, легко положить на другой блог или визитную карточку URL.

на самом деле, можно избавиться от «?»и иметь хороший простой www.example.org/users/someusername.

я узнал об этом в статье Till Quack «как добиться успеха с URLs » on Список Только.

Итак, вы должны понимать, Апач, .htaccess и mod_rewrite, и этот метод требует, чтобы вы понимали риски безопасности и ответственности за них. Вот основная идея:

вы создаете каталог под названием «пользователи» (вам не нужно, но это упростит все), и в этот каталог вы помещаете свой .файл htaccess, который содержит mod_rewite, который эффективно говорит: «все запросы файлов или каталогов, которые не имеют определенного вида (изображения, PDF-файлы), должны быть отправлены в этот скрипт, который будет обрабатывать, куда отправить пользователя.» Этот и mod_rewrite из статьи выглядит так:

в моем примере это будет » / your_web_root / users / index.php», причина, почему это более просто, потому что вместо того, чтобы этот скрипт обрабатывает все запросы на Вашей странице, он просто имеет дело с теми, в каталоге пользователя.

тогда у вас есть php-скрипт, который говорит: «Хорошо, какой был URL-адрес?»и он в основном захватывает часть после последней косой черты (или двух, если есть еще один в самом конце), и Дезинфицирует то, что он находит (это действительно важно), и говорит: «Существует ли это имя пользователя в моей БД?»Если да, он отправляет запрос в профиль пользователя, но с довольно URL-адресом (мы доберемся до этого через секунду), если нет, он отправляет их на страницу «пользователь не найден» или что угодно.

поэтому, если он найдет вашего пользователя, PHP-скрипт выведет Профиль пользователя (опять же, обязательно санируйте его. Любой пользователь jerk, который у вас может быть, может-если вы дадите им возможность-встроить вредоносный код в их собственный профиль, зная браузеры, которые просматривают профиль, выполнит этот код). Поскольку запрашиваемая страница была:

и поскольку вы используете mod_rewrite вместо перенаправления, URL-адрес остается тем же, и сценарий, который.htaccess файл подтягивает просто сбрасывает Профиль пользователя. Для посетителя они просто видят, что они поместили вышеуказанный url-адрес, и появился профиль пользователя.

вы также хотите PHP-скрипт, который проверяет, чтобы пользователь сделал перенаправление на » пользователь не найденная » страница, вместо того, чтобы просто выводить страницу «user_not_found». Это так любой, кто вставляет:

увидит изменение URL на

вместо того, чтобы видеть URL-адрес остается прежним. Если хакер видит, что URL-адрес не изменяется, теперь они знают, что вы используете mod_rewrite и, следовательно, должен быть скрипт, обрабатывающий фактический вывод. Если они знают это, они могут начать сходить с ума, ища каждую дыру безопасности, которую вы, возможно, оставили открыть.

посмотри переписывать движок. Некоторые фреймворки также имеют классы для выполнения этой работы, например Zend Framework имеет Zend_Router, который вы можете использовать. Вы можете использовать это самостоятельно, другие фреймворки также имеют их, проверьте документы для вашего предпочтительного вкуса.

Источник

Adblock
detector