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

Создание профиля или личного кабинета пользователя на MVC, PHP и SQL

Сначала нужно модернизировать нашу таблицу с пользователями до такого вида:

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Добавились два новых поля – ava и role. Поле ava будет хранить название загруженной аватарки пользователя с расширением. Поле role будет содержать статус пользователя: 0 – пользователь, 1 – администратор, 2 – младший модератор, 3 – старший модератор. Если пользователь не авторизирован, то он имеет статус гость.

Добавим маршруты в файл routes.php, он находится в папке config:

Теперь создадим обработчик для страницы профиля, создавать его нужно в файле UserController.php, он находится в папке controllers. Сначала с помощью функции checkAdminId проверяем, авторизирован ли пользователь, если да, то в переменную id_user вернется его id. Далее с помощью функции getUserById, по id записанному в переменной id_user, получаем данные пользователя из таблицы БД и записываем их в п переменную user. Эти данные будут отображаться в полях формы.

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

Если же аватар выбран в форме, то мы используем функцию editUserProfileImg. Функция выполнит загрузку нового аватара на сервер и изменит данные в таблице базы данных.

Теперь опишем используемые функции, они будут находиться в папке models в файле News.php:

Функция editUserProfile. Она соединяется с базой данных и производит обновление поля с логином пользователя.

Функция editUserProfileImg. С помощью функции downloadAvatar загружает картинку на сервер и получает в переменную ava_url имя с расширением. Далее выполняет SQL запрос, который обновляет поле с аватаркой и логином пользователя:

Функция downloadAvatar. Эта функция полностью идентична функции загрузки изображений на сервер, разница лишь в пути сохранения изображения:

Функция checkAdminId проверяет, авторизирован ли пользователь, путем проверки существования переменной сессии user. Если переменная существует, то возвращаем значение этой переменной, иначе делаем редирект на страницу авторизации:

Функция getIserById получает данные пользователя из базы данных, по полученному id:

Создадим страницу с формой профиля. Если пользователь гость, то показываем ему сообщение, что он не авторизирован. Далее идет обычная страница с выводом ошибок и проставлением данных пользователя в поля.

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

В браузере эта форма будет выглядеть следующим образом:

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Так как наши пароли зашифрованы, да и просто для удобства, создаем форму смены пароля. Создаем ее обработчик в NewsController.php:

В обработчике мы получили введенные в форму пароли, сравнили, равны ли введенные пароли и проверили, чтобы пароль был не короче шести символов. Далее если ошибок нет, то мы используем функцию generateHash, которая шифрует пароль (эта функция была разобрана в статье по созданию регистрации). Затем с помощью функции editPassword (была рассмотрена в этой статье ) меняем пароль в таблице базы данных на новый. Форма страницы редактирования пароля будет реализована так:

В браузере она будет отображаться следующим образом:

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

В итоге мы получаем профиль пользователя с возможностью смены логина и аватара. Чтобы не создавать функцию downloadAvatar, можно хранить аватарки вместе с загруженными картинками, а это не очень удобно. Лучше сделать проверку какого-то параметра в функции downloadImg и относительно него выбирать путь, по которому будем сохранять аватарку.

Смотрите также дополнительные статьи про MVC

Источник

Регистрация и Авторизация на PHP + MySQL

Доброго времени суток друзья! Давай с Вами рассмотрим регистрацию пользователей на PHP. Для начала давайте определим условия для нашей регистрации пользователей:

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

Если объяснять простыми словами то регистрация это всего лишь запись и хранение определенных данных по которым мы можем авторизировать пользователя в нашем случае – это Логин и Пароль.

Авторизация — предоставление определённому лицу или группе лиц прав на выполнение определённых действий, а также процесс проверки данных прав при попытке выполнения этих действий. Проше говоря с помощью авторизации мы можем разграничить доступ к тому или иному контенту на нашем сайте.

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Рассмотрим структуру каталогов скриптов для реализации нашей регистрации с авторизацией. Нам нужно разбить скрипты на логические составляющие. Модули регистрации и авторизации мы поместив в отдельный каталог. Так же в отдельные каталоги мы поместим подключение к базе данных MySQL, файл с пользовательскими функциями, файл стилей CSS и наш шаблон HTML. Данная структура позволяет быстро ориентироваться в скриптах. Представьте себе, что у Вас большой сайт с кучей модулями и т.д. и если не будет порядка, то будет очень сложно что-то отыскать в таком бардаке.

Так как мы будем хранить все данные в СУБД MySQL, то давайте создадим не большую таблицу в которой будем хранить данные о регистрации.

Для начала нужно создать таблицу в базе данных. Таблицу назовем bez_reg где bez – это префикс таблицы, а reg название таблицы.

Источник

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

В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза “фильтруйте всё, экранируйте всё” всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Подборка PHP песочниц

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Совет: активация отображения всех ошибок в PHP

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Агент

PHP парсер юзер агента с поддержкой Laravel, работающий на базе библиотеки Mobile Detect.

Источник

Безопасный метод авторизации на PHP

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

Модель авторизации:

Клиент
Сервер MySQL

При регистрации в базу данных записывается логин пользователя и пароль(в двойном md5 шифровании)

При авторизация, сравниваеться логин и пароль, если они верны, то генерируеться случайная строка, которая хешируеться и добавляеться в БД в строку user_hash. Также записываеться IP адрес пользователя(но это у нас будет опциональным, так как кто-то сидит через Proxy, а у кого-то IP динамический. тут уже пользователь сам будет выбирать безопасность или удобство). В куки пользователя мы записываем его уникальный индетификатор и сгенерированный hash.

Почему надо хранить в куках хеш случайно сгенерированной строки, а не хеш пароля?
1. Из-за невнимательности программиста, во всей системе могут быть дырки, воспользовавшийсь этими дырками, злоумышленик может вытащить хеш пароля из БД и подставить его в свои куки, тем самым получить доступ к закрытым данным. В нашем же случае, двойной хеш пароля не чем не сможет помочь хакеру, так как расшифровать он его не сможет(теоретически это возможно, но на это он потратит не один месяц, а может быть и год) а воспользоваться этим хешем ему негде, ведь у нас при авторизации свой уникальный хеш прикрепленный к IP пользователя.
2. Если злоумышленик вытащит трояном у пользователя уникальный хеш, воспользовать им он также не сможет(разве если только, пользователь решил принебречь своей безопастностью и выключил привязку к IP при авторизации).

Реализация

Структура таблицы `users` в базе данных ‘testtable’

register.php

login.php

check.php

logout.php

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

Автор: http://jiexaspb.habrahabr.ru/. Адаптация под PHP 5.5 и MySQL 5.7 KDG.

Куки с флагом HttpOnly не видны браузерному javascript-коду, а отправляются только на сервер. На практике у вас никогда нет необходимости получать их содержимое в javascript. А вот злоумышленнику, нашедшему XSS — а XSS так или иначе когда-нибудь где-нибудь найдется — отсутствие HttpOnly на авторизационных куках доставит много радости.

Источник

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

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

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

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

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

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

Шаг 1 – MySQL

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

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

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

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Шаг 3 — CSS

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Как сделать личный кабинет на сайте php. Смотреть фото Как сделать личный кабинет на сайте php. Смотреть картинку Как сделать личный кабинет на сайте php. Картинка про Как сделать личный кабинет на сайте php. Фото Как сделать личный кабинет на сайте php

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

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *