Как сделать личный кабинет на сайте php
Перейти к содержимому

Как сделать личный кабинет на сайте php

  • автор:

Личный кабинет на PHP

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

Обратите внимание на то, что id пользователя мы не передаем GET параметром — мы сделаем так, чтобы каждый пользователь на странице account.php видел данные своего профиля, а не чужого.

Для этого следует при авторизации пользователя мы должны в сессию записать id этого пользователя, вот так:

Затем по заходу на страницу account.php мы будем делать SELECT запрос, который будет доставать из БД пользователя с id из сессии:

Данные пользователя мы должны показать в форме для редактирования. Пусть, к примеру, это будут имя и фамилия пользователя:

После нажатия на кнопку отправки формы мы должны будем сделать запрос на обновление юзера:

Реализуйте описанный личный кабинет.

Сессия личного кабинета на сайте

Не могу понять как сделать, с куками легче, но я выбрал сессии. Вот сама задача:
Есть файл head.php — Он отвечает за навигационную панель в верху сайта, когда пользователь не вошел в Личный кабинет, отображается кнопка: «Войти», я не знаю как сделать так, что-бы когда сессия была активна, отображалась не «Войти» а «Личный Кабинет». Возможно ли соеденить сессию с cookie?

Отслеживать
51.6k 203 203 золотых знака 65 65 серебряных знаков 249 249 бронзовых знаков
задан 18 фев 2020 в 14:09
21 3 3 бронзовых знака

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Всё возможно. Сделал краткий пример (пожалуйста, смотрите комментарии внимательно).

Файл первый — к примеру index.php :

 else < $role = null; // Если нет, то null (это просто для понимания, можно всё и в одном сделать). >?> 
Вы админ. Поздравляю!
'; > elseif($role == 'user')< // Если роль user, то другую. echo '
Вы пользователь
'; > else < // Если роль не введена, то показываем кнопку войти в личный кабинет. Тут добавил поле для выбора юзера просто для демонстрации. А так роль определяете по самому пользователю. echo ''; echo ''; > > else < // Если ни сесии нет активной, ни данных в куки, то показываем кнопку входа echo ''; >;?>

Второй файл — обработчик. К примеру stackover.php (в форме сверху прописан):

 if(isset($_POST['role'])) < // Если введены значения в селект поле роли $_SESSION['enter'] = 'user'; // Добавляем значение в сессию $role = $_POST['role']; // Получаем параметр селекта. Повторюсь-это для примера. Даные роли Вы должны будете получать из самого пользователя из БД. setcookie('role', $role); // Записываем его в куки >header("Location: http://ru.stackoverflow.com/"); // Переходим на нужную страницу ошибки или личного кабинета и так далее 

Личный кабинет на html, php или MySQL

Если вам нужно создать личный кабинет, вы можете использовать один из двух вариантов. Первый – выбрать готовый модуль и доработать его при необходимости. Второй – заказать создание системы «с нуля» – в Москве это просто. Не всегда готовые решения – формы регистрации, авторизация, функционал персональных кабинетов на сайт – подходят именно вашему ресурсу и будут одобрены пользователями. Созданный «с нуля» модуль удобнее и надежнее готовых – он изначально разработан под ваши потребности, а значит, не имеет избыточного функционала.

Как создать свою систему на сайте?

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

Самые распространенные языки программирования в web-разработке – php и MySQL. На php пишут сам модуль, создают те функции, которые позволят пользователям отправлять и получать данные, применять те или иные возможности сайта. Это – инструмент, с помощью которого можно управлять данными. MySQL – язык back-end-разработки. С его помощью можно программировать сами базы данных – хранилища информации (личных файлов), которую вы будете сохранять, удалять, изменять. Многие CMS уже имеют готовые решения для баз данных и управления ими. При разработке нового модуля придется создавать новый код, используя оба языка.

Это не все. Созданный код нельзя просто выставить на новую страницу: его нужно «одеть». Реализацию в рамках сайта начинают с создания дизайн-проекта. Его отрисовывают в графическом редакторе и сохраняют в файлах с расширением .psd. Далее специалисты приступают к верстке – нарезают изображение, подбирают шрифты и цвета, разрабатывают код страницы на html и css.

Таким образом, реализация личного кабинета на php MySQL выглядит так:

  • разработка кода;
  • дизайн;
  • верстка;
  • внедрение на сайт;
  • тестирование.

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

Если возникли сложности

Чтобы внедрить готовый модуль, вам не нужен большой опыт. Если вы сумели подобрать CMS, установить ее и создать на базе готового шаблона сайт, сможете и внедрить плагин из числа доступных. С разработкой нового возникнут проблемы. Эта работа требует опыта и в программировании, и в дизайне.

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

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

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

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

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

Обновлено: 2022-10-30 15:09:03 Вадим Дворников автор материала

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

  • 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 :

/* Создание базы данных */ CREATE DATABASE userlistdb; /* Создание таблицы */ CREATE TABLE `usertbl` ( `id` int(11) NOT NULL auto_increment, `full_name` varchar(32) collate utf8_unicode_ci NOT NULL default '', `email` varchar(32) collate utf8_unicode_ci NOT NULL default '', `username` varchar(20) collate utf8_unicode_ci NOT NULL default '', `password` varchar(32) collate utf8_unicode_ci NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

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

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

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

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

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

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

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

Вход

Имя опльзователя

Пароль

Еще не зарегистрированы?Регистрация!

© 2014 1stwebdesigner. Все права защищены.

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

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

Далее, создаем файл register.php . Скопируйте и вставьте в него приведенный ниже код:

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

Регистрация

Полное имя

E-mail

Имя пользователя

Пароль

Уже зарегистрированы? Введите имя пользователя!

© 2014 1stwebdesigner. Все права защищены.

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

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

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

 

Добро пожаловать, USER

!

Выйти из системы

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

Шаг 3 — CSS

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

/*= ОБЩИЕ СТИЛИ ———————————————————*/ body < background: #efefef; font-family: 'Open Sans', sans-serif; color: #777; >a < color: #f58220; font-weight: 400; >span < font-weight: 300; color: #f58220; >.mlogin < margin: 170px auto 0; >.mregister < margin: 80px auto 0; >.error < margin: 40px auto 0; border: 1px solid #777; padding: 3px; color: #fff; text-align: center; width: 650px; background: #f58220; >.regtext < font-size: 13px; margin-top: 26px; color: #777; >/*= КОНТЕЙНЕРЫ ———————————————————*/ .container < padding: 25px 16px 25px 10px; font-weight: 400; overflow: hidden; width: 350px; height: auto; background: #fff; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.13); -moz-box-shadow: 0 1px 3px rgba(0,0,0,.13); box-shadow: 0 1px 3px rgba(0,0,0,.13); >#welcome < width: 500px; padding: 30px; background: #fff; margin: 160px auto 0; -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.13); -moz-box-shadow: 0 1px 3px rgba(0,0,0,.13); box-shadow: 0 1px 3px rgba(0,0,0,.13); >.container h1 < color: #777; text-align: center; font-weight: 300; border: 1px dashed #777; margin-top: 13px; >.container label < color: #777; font-size: 14px; >#login < width: 320px; margin: auto; padding-bottom: 15px; >.container form .input,.container input[type=text],.container input[type=password],.container input[type=e] < background: #fbfbfb; font-size: 24px; line-height: 1; width: 100%; padding: 3px; margin: 0 6px 5px 0; outline: none; border: 1px solid #d9d9d9; >.container form .input:focus < border: 1px solid #f58220; -webkit-box-shadow: 0 0 3px 0 rgba(245,130,32,0.75); -moz-box-shadow: 0 0 3px 0 rgba(245,130,32,0.75); box-shadow: 0 0 3px 0 rgba(245,130,32,0.75); >/*= КНОПКИ ———————————————————*/ .button < border: solid 1px #da7c0c; background: #f78d1d; background: -webkit-gradient(linear, left top, leftbottom, from(#faa51a), to(#f47a20)); background: -moz-linear-gradient(top, #faa51a, #f47a20); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20'); color: #fff; padding: 7px 12px; -webkit-border-radius:4px; moz-border-radius:4px; border-radius:4px; float: right; cursor: pointer; >.button:hover < background: #f47c20; background: -webkit-gradient(linear, left top, leftbottom, from(#f88e11), to(#f06015)); background: -moz-linear-gradient(top, #f88e11, #f06015); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015'); >/*= ПОДВАЛ ———————————————————*/ footer

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

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

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

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

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

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

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

© 2014 1stwebdesigner. Все права защищены.

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

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

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

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

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

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

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

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

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

 else < $message = "Failed to insert data information!"; >> else < $message = "That username already exists! Please try another one!"; >> else < $message = "All fields are required!"; >> ?> " . "MESSAGE: ". $message . "

";> ?>

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

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

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

    if(isset($_POST["login"])) < if(!empty($_POST['username']) && !empty($_POST['password'])) < $username=htmlspecialchars($_POST['username']); $password=htmlspecialchars($_POST['password']); $query =mysql_query("SELECT * FROM usertbl WHEREusername='".$username."' AND password='".$password."'"); $numrows=mysql_num_rows($query); if($numrows!=0) < while($row=mysql_fetch_assoc($query)) < $dbusername=$row['username']; $dbpassword=$row['password']; >if($username == $dbusername && $password == $dbpassword) < // старое место расположения // session_start(); $_SESSION['session_username']=$username; /* Перенаправление браузера */ header("Location: intropage.php"); >> else < // $message = "Invalid username or password!"; echo "Invalid username or password!"; >> else < $message = "All fields are required!"; >> ?>

В приведенном выше коде, перед перенаправлением пользователя на страницу 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 . Конечно, существует много аспектов, которые нужно учитывать, когда речь идет о безопасности, но это уже неплохое начало.

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

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

Комментарии

Оставьте свой комментарий
Вы вошли как | Выйти

пришлось покапать чтобы заработало, вот моя редакция кода:
обработчик 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!»;
>
>
?>

обработчик login.php
session_start();
if(isset($_SESSION[«session_username»])) header(«location:index.php»);
>

require_once(«includes/bd.php»);
?>
if(isset($_POST[«login»])) if(empty($_POST[‘username’]) or empty($_POST[‘password’])) echo «All fields are required!»;
>
else $username=htmlspecialchars($_POST[‘username’]);
$password=htmlspecialchars($_POST[‘password’]);
$query =mysql_query(«SELECT * FROM user WHERE username='».$username.»‘ AND password='».$password.»‘»);
$numrows=mysql_num_rows($query);
if($numrows!=0)
$_SESSION[‘session_username’]=$username;
/* Перенаправление браузера */
if(isset($_SESSION[«session_username»])) echo »;

md5 шифрование так и не нашел в коде ��

Как добавить $hashed_password

Bastiras S.

Объясните новичку, как работает система донатов на сайте, как её создать и подключить к базе данных, и как менять цену на игровую валюту, буду очень благодарен!

скрипты полностью рабочие до версии php 5.5
а улучшить напиши функцию для удаление нежелательных тегов типа и и экранирование если проскочили для начала
для поля user_login
и пару проверок смысл пихать полностью голый код народ приходит правит в итоге проЁ пароли от мыл и на главной странице (_!_) если комедию русскою смотрел по хоттабыча то в курсе и писать надо что какая функция делает а не пихать от болды if($numrows==0) //проверяем равна она нулю или нет если не равна идем дальше если равна значит пустая выводим ошибку

где есть подключение к бд или работа с бд надо добавить букву i
например
mysql_query устаревшая
новая mysqli_query
читаем тут https://www.php.net/manual/ru/
валидатор https://phpcodechecker.com

Объясните пожалуйста шаг 4. Зачем заменять на header.php? А в footer.php только копирайт.

пожауйста скиньте исходник. не могу разобраться с кодом!

В коде несколько ошибок. Так что тупое копирование- не поможет
1. Прошло несколько лет, поэтому у некоторых выйдет ошибка про mysql.
решение: меняйте в файлах mysql_. на mysqli_
2. Синтаксические ошибки: в файлах login.php и register.php написан код, вот кусок «WHEREusername=»
решение: поставьте пробел после WHERE
3. В файле register.php , в последней строке нет экранирования.
решение: вместо пишите /> 4. У некоторых отключена регистрация пользователя root в базу mysql.
Решение: создать пользователя и пароль для работы с базой и указать его в файле constants.php, заодно поменять содержимое на такое:
$host = «localhost»;
$username = «my_user»;
$password = «my_password»;
$db_name = «userlistdb»;
?>
и поменять содержимое файла includes/connection.php на такое (в коде я уже поменял mysql_. на mysqli_ . имейте это ввиду и поправьте если что):
require(«constants.php»);
$link = mysqli_connect(«$host», «$username», «$password»)or die(«cannot connect server «);
mysqli_select_db($link,»$db_name»)or die(«cannot select DB»);
?>
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);

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

Актуальность информации на 29.09.2018) Linux. Если нужна помощь, то пишите на почту infodr@ya.ru

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *