Как сделать регистрацию и авторизацию пользователей на сайте
Не так давно один из моих посетителей попросил меня написать статью о том, как сделать регистрацию и авторизацию пользователей на сайте. Собственно, выполняю его просьбу, и в этой статье я расскажу о том, как это делается.
Существует несколько способов создания регистрации и авторизации пользователей, но в этой статье я разберу свой любимый - через механизм сессий или cookie.
Первым делом, если Вы хотите сделать регистрацию у себя на сайте, то необходимо понимать, где будут храниться данные о пользователях. Можно хранить в обычном текстовом файле, в XML-файле, либо в базе данных. Первые два варианта - очень опасные, поэтому не рекомендую Вам ими пользоваться. А вот третий вариант - хранение информации о пользователях в базе данных - самый популярный, и именно этим способом хранения информации я советую Вам пользоваться.
С местом хранения определились. Теперь перейдём непосредственно к алгоритму авторизации:
- Создать форму регистрации на HTML.
- Получить данные из формы в скрипте-обработчике.
- Проверить полученные данные, и если они некорректны, то сделать редирект обратно на форму регистрации.
- Если данные корректны, то записать их в базу данных.
Вот и весь процесс регистрации пользователя на сайте. То есть регистрация - это сохранение информации о пользователе на сайте.
Дальнейшим пунктом является авторизация пользователя на сайте, однако, прежде чем к нему переходить, расскажу об одном важном моменте в форме регистрации - пароле. Я Вам настоятельно рекомендую не хранить пароли в открытом виде (например так, "123456"). Обязательно их шифруйте, хотя бы с помощью функции md5(). И в базе данных храните именно зашифрованный пароль.
Теперь авторизация. Первое, что Вы должны понять - это то, что информация об авторизации должна где-то храниться. Самый простой вариант - это хранение информации в сессии (или в cookie). А теперь алгоритм:
- Создать форму авторизации пользователя на HTML, куда пользователь должен будет ввести свой логин и пароль.
- В скрипте-обработчике принять данные от пользователя. Если Вы меня послушались, и храните шифрованные пароли в базе данных, то сначала шифруйте полученный пароль. Если же в базе данных лежат открытые пароли, то шифровать не надо.
- Проверить правильность введённых данных, и если логин и пароль совпадают с существующим пользователем в базе данных, то записываете в cookie или сессию информацию с логином и шифрованным паролем (либо открытым паролем, если Вы его не шифровали).
- Если логин и/или пароль введены неверно, то делать редирект обратно на форму авторизации.
Теперь у Вас есть необходимая информация об авторизации пользователя, которая хранится в его cookie или на сервере (если сессия). Фактически, теперь Вам нужно эту информацию проверять на каждой странице сайта и сверять её аналогично проверке формы авторизации. То есть считываете из cookie (сессии) логин и пароль, и проверяете его. Если они верные, то показываете одну страницу (для зарегистрированных пользователей), а если неверные, то показываете другую страницу (для гостей).
И последнее. Как делается кнопка "Выход"? Очень просто. При нажатии на эту кнопку, стираются cookie, либо сессия. Таким образом, пользователь автоматически вылетает с сайта.
Как видите, всё элементарно, но при реализации этого алгоритма у Вас обязательно возникнет множество вопросов. Например, что делать при регистрации пользователя, логин которого уже имеется в базе данных. Реализация различных проверок входных данных, реализация проверки существования e-mail и прочее - всё это является достаточно сложным, если Вы делаете это в первый раз. Однако, самый сок я выдал. Если будут вопросы при реализации, то спрашивайте либо на форуме, либо в комментариях.
В данной статье я привёл лишь алгоритм, а чтобы научиться его реализовывать нужно знать PHP и MySQL, которые максимально подробно разобраны в этом обучающем курсе: http://srs.myrusakov.ru/php
-
- Михаил Русаков
Комментарии (114):
Респект и Уважуха тебе Михаил! Хочу задать два вопроса: - долго ли Ты обучался всему этому; - как сделать авторизацию пользователей как В Контакте (всмысле каждому пользователю разные страницы)? Твой постоянный читатель с Украины!
Ответить
Обучаться созданию авторизации не нужно. Нужно обучаться PHP и MySQL. Для этого мне потребовалось 2-3 месяца, а после пошло уже совершенствование, которое происходит и сейчас.
Ответить
А в денвере (Denwer) нельзя создавать скрипты или страницы так, чтобы в одном окне код, а в другом результат? Общем как в html-редакторе.
Ответить
Нет, поскольку Denwer - это не редактор, а пакет сервера apache, интерпретатора php, mysql, phpmyadmin и так далее, но никак не html-редактор.
Ответить
Видел в нете редакторы php. Это то же самое что и html-редактор? Или они не будут показывать виполнение скриптов?
Ответить
Это примерно то же самое, что и HTML-редакторы, только для PHP. Результата выполнения они показывать не будут.
Ответить
Здравствуйте, Михаил! А возможно ли сделать регистрацию на сайте без PHP, то есть просто ссылка на какой нибудь сторонний ресурс, где можно хранить базу подписчиков??)
Ответить
Да, можно. Только тогда будет не регистрация, а просто авторизация через сторонний сервис. Например, такое позволяют Яндекс, Контакт и многие другие популярные сервисы.
Ответить
А, например, смартреспондер, джастклик, или это все не то?
Ответить
Это не для регистрации пользователей.
Ответить
Ясно, спасибо)
Ответить
Хочу продать компа, но незнаю как правильно удалить Denwer. Подскажешь?
Ответить
Остановите сервер и просто удалить папку с Denwer. Тогда все файлы пропадут, а вместе с ними и все базы данных.
Ответить
А какой принцип работы ВНУТРЕННЕЙ ПОЧТЫ в соц. сетях? Наверное, каждое сообщение пользователей записывается в файл или базу данных, а затем выводится как обычный комментарий? И почему эти сообщения видны только определённому пользователю, если авторизованых на сайте много?
Ответить
Действительно, каждое сообщение записывается в базу данных. В таблице находится не только текст сообщения, но ещё и кому это сообщение. А дальше благодаря языку SQL можно легко вытащить только те сообщения, которые направлены данному пользователю (а что за пользователь, берётся из cookie).
Ответить
Последний вопрос! Я разобрался с гостевой книгой (без базы данных), но осталась одна проблемка. После нажатия на кнопку ДОБАВИТЬ ОТЗЫВ, он записывается в файл и выводится там, где мне надо. Но, при нажатии в браузере значка ОБНОВИТЬ (страницу), этот отзыв копируется (добавляется ещё один, такой-же). И нет разницы в том, оставляю ли я автора отзыва на странице обработчика, или же возвращаю его назад на страницу с отзывом.
Ответить
Я думаю, что проблема в следующем. Вы написали скрипт добавления отзыва в текстовый файл в том же файле, где выводятся комментарии. Затем Вы добавили новый отзыв, а потом жмёте обновить, и форма повторно (!!!) отправляется. Как следствие, добавляется ещё один комментарий. Чтобы это исправить, достаточно сделать добавление в файл в отдельном скрипте, а возвращаться обратно через редирект.
Ответить
Можешь рассказать как ты сделал гостевую книгу без баз данных?Пожалуйста...Или скинь готовое чтобы не рассказывать[email protected]
Ответить
Можно хранить все сообщения в текстовых файлах.
Ответить
У меня такая проблема-когда я создаю таблицу в базе данных у меня нет поля "дополнительно" а без него я не могу сделать регистрацию на сайте...Помогите пожалуйста
Ответить
Вопрос очень странный. Никто не мешает создать это поле при создании таблицы.
Ответить
а как?
Ответить
http://myrusakov.ru/phpmyadmin-table.html
Ответить
а как оно может называться? У меня реально нет этого поля,что же я буду заполнять?
Ответить
Какой смысл в таблице без полей? Как хотите, так и называйте. Читайте ещё раз статью, Вы ничего не поняли из неё.
Ответить
ТипДокументация Длина/значения По умолчанию Сравнение Атрибуты Null A_I Комментарии MIME-тип Преобразование Параметры преобразований..............а дополднительно нету
Ответить
А зачем нужно это "дополнительно"?
Ответить
чтобы поставить "auto_increment"
Ответить
Там есть auto_increment, смотрите внимательнее.
Ответить
в новых версиях phpmyadmin auto_increment сделан видек chekout короче просто галочку поставь где написано A-i или A_I
Ответить
Именно так! А как правильно записать редирект обратно? Вот так: Header ("Location: имя_web-страницы_с_гостевой_книгой"); - не выходит
Ответить
Header("Location: http://google.ru"); Вместо http://google.ru пишите свой адрес, всё должно работать.
Ответить
Не работает! Отображает эту строку в браузере! Делаю так: - Поместил код-обработки в отдельный файл (.php); - Закончил сценарий (?>) и сразу вставил эту строку (редирект). А в Денвере должно возвращать? Хотя пробовал и на хостинге! Может нужно выставить какие-то права?
Ответить
Теперь поясняю, что Вы делаете: 1. Открываете PHP. 2. Обрабатываете форму. 3. Закрываете PHP. 4. Вызываете PHP-функцию header(). Не видите здесь никаких противоречий?
Ответить
Кажись вьехал :) Сначала нужно вызвать PHP-функцию header(), а затем закрыть PHP_____сейчас испытаю_____
Ответить
Огромное ЧЕЛОВЕЧЕССКОЕ спасибо! Есть ещё вопрос: У файле __.php находится код вывода сообщений и формы (или код-обработчик). Нужно ли в этом файле где-то добавлять html-теги (например html, head, meta, title, body), ведь там может быть и обычный текст, например с благодарностью за добавленый коммент.?
Ответить
Если что-то выводится, то уже нужны HTML-теги.
Ответить
Сначала вывожу уже добавленные комменты php-кодом (его в теги не беру). Под ними вывожу форму добавления новых (форму беру в теги). Правильно??? И ещё: Отправляю пустую форму (даже без пробелов) на обработку, и это сообщение записываеться, возвращается пустая строка с разделителем сообщений. Как это обойти???
Ответить
Всё, что выводится на странице должно быть внутри тега <body>. А для решения второй проблемы существует условный оператор.
Ответить
Я не ... Смотри: Есть три файла .php (stranica.php, vivod.php, obrabotka.php). На странице stranica.php - Статья, в низу которой я вставил код: <?php $ind="book01"; include ("vivod.php"); ?> Эта страница с тегами! А две остальных???
Ответить
А понял, да можно и без тегов 2 других страницы. А вот на stranica.php без HTML-тегов не обойтись.
Ответить
Миша а можно как то по подробней все это дело описать, ато по регистрации, трудно найти уроки. Помоги если не трудно...
Ответить
http://srs.myrusakov.ru - подписывайтесь, там где-то 6 и 7 выпуски рассылки как раз посвящены регистрации и авторизации.
Ответить
написано хорошо..
Ответить
Пыталась сделать регистрацию по вашему видеоуроку, написав весь код под свой сайт, он не может добавить все данные в БД и почему сразу переходит на страницу где снова добавляются пользователи. А в phpMyAdmin, при этом я не могу просмотреть свою таблицу Пишет "Table seems to be empty". В чем у меня ошибка?
Ответить
Таблица пустая, потому и не показывается. Вы где-то допустили ошибку. Вот материал для изучения: http://myrusakov.ru/php-finderror.html
Ответить
а как сделать атворизацию с разными уровнями доступа? и перенаправлять на ту страницу, которую разрешено
Ответить
http://myrusakov.ru/php-usertype.html
Ответить
огромное спасибо ваши уроки помогают мне делать дипломное проектирование, извиняюсь за свою невнимательность!
Ответить
А можно использовать OpenID или OAuth, и это безопасно?
Ответить
Можно, и это безопасно.
Ответить
Михаил, извините за древний вопрос, но у меня возникли проблемы с вашей рассылкой, тоесть видеоуроками... Не могу сделать регистрацию - Всё происходит, работает, но в базу не заноситься!!! 4 раз пересматриваю и переделываю,но ни как не хочет...Я уже пробовал написать по своему и тоже никак... ПОМОООГИТЕЕЕЕ!!!
Ответить
А напрямую выполнять запрос в базу через phpmyadmin Вы пробовали? Может он и не срабатывает вообще, из-за какой-нибудь мелкой ошибки.
Ответить
Спасибо за ответ, он сильно помог... Всё дело в денвере, он просто стал глючить
Ответить
Я не могу понять где здесь синтаксическая ошибка: <?php if ($_SESSION['error_login'] == 1) echo "<p><span style = 'color: red;'>Некорректный логин</span></p>; if ($_SESSION['error_password'] == 1) echo "<p><span style = 'color: red;'>Некорректный пароль</span></p> ?>
Ответить
У второго echo кавычка не закрывается.
Ответить
Михаил, я извиняюсь, помогите пожалуйста) Делаю авторизацию по Вашему примеру из бесплатного курса по php и столкнулся со следующим: Авторизация работает нормально, только вот под формой появились ошибки: Notice: Undefined index email, password in : <?php if (checkUser($_SESSION["email"], $_SESSION ["password"])) require_once"Blocks/user_panel.php"; else require_once"Blocks/auth_form.php";?> Сессия подключена, функция checkUser есть, в чем может быть проблема? заранее благодарен)
Ответить
Добавьте вначале скрипта: error_reporting(E_ALL & ~E_NOTICE); А вообще не стоит лишний раз трогать php.ini.
Ответить
Большое спасибо)
Ответить
Здравствуйте,Михаил! Помогите пожалуйста..я делала авторизацию по Вашему примеру из бесплатного курса по php.Все сделала как Вы, но когда ввожу данные и нажимаю кнопку войти то ничего не происходит..страница остается та же..только данные которые я ввела исчезают из поля ввода. Когда не ввожу данные - то же самое все остается прежде.Сессия подключена, функция checkUser есть и есть auth.php может в этом файле проблемы? <?php require_once "start.php"; $email = htmlspecialchars($_POST["email"]); $password = htmlspecialchars($_POST["password"]); $password = md5($password); if (checkUser($email, $password)) { $_SESSION["email"] = $email; $_SESSION["password"] = $password; } else $_SESSION["error_auth"] = 1; header("Location: ".$_SERVER["HTTP_REFERER"]); exit; ?> сделав регистрацию по Вашему примеру все получилось..а с авторизацией проблема...что ввожу данные что не ввожу - ничего не меняется.Помогите..
Ответить
Ошибка может быть где угодно, необязательно в этом файле. Ищите ошибку по этой методике: http://myrusakov.ru/php-finderror.html
Ответить
Спасибо!Благодаря Вам и Вашей методике у меня все заработало) Подскажите пожалуйста а как можно осуществить задачу, когда пользователь забыл пароль? что нужно написать в коде чтобы на моем сайте была возможность восстановить пароль? Заранее огромное спасибо
Ответить
http://blog.myrusakov.ru/reset2.html
Ответить
Спасибо. А вот в этом курсе по восстановлению пароля в файле reset.php 11 строка видна не полностью,могли бы вы ее закончить $headers = "From: $from\r\nReply-To: $from\r\nContent-Type: text/plain;
Ответить
$headers = "From: $from\r\nReply-To: $from\r\nContent-Type: text/plain; charset=windows-1251\r\n";
Ответить
Спасибо! Подскажите пожалуйста,Михаил, я делаю по Вашим примерам активацию пользователя,но когда я записываю вот эту функцию function getActivateLinkFromTable($email) { $mysqli = connectDB(); $result_set = $mysqli->query("SELECT `activation` FROM `users` WHERE `email`='$email'"); $row = $result_set->fetch_assoc(); $result_set->close(); closeDB($mysqli); return $row['activation']; } то у меня выдает одну и ту же ошибку Fatal error: Call to a member function query() on a non-object in /home/***/***/***/public_html/lib/fanctions.php on line 38 уже 2 дня мучаюсь..аналогично с восстановлением пароля.делаю все как у Вас но не хочет принимать мой компьютер эту функцию а конкретней эту строчку $result_set = $mysqli->query("SELECT `activation` FROM `users` WHERE `email`='$email'"); помогите пожалуйста
Ответить
$mysqli не является объектом. Поэтому посмотрите, возвращает ли функция connectDB() правильный mysqli. И возникает ли данная проблема только на хостинге, или же и на денвере тоже самое.
Ответить
Хорошая статья.Хотелось бы ещё узнать для зарегистрированного пользователя надо создать аккаунт и какие минимальные настройки там должны быть(Загрузка фото и т.д)?
Ответить
http://blog.myrusakov.ru/editprofile.html
Ответить
Спасибо Михаил много интерестного у вас на сайте))
Ответить
Что такое скрипт-обработчик, и как с ним работать?
Ответить
Скрипт-обработчик - это PHP-скрипт, обрабатывающий форму.
Ответить
Привет Михаил. А как написать скрипт обработчик ,принятия данных от пользователя ?И еще как сделать проверку емаила при регистрации? Заранее спасибо...
Ответить
Для этого надо изучать PHP.
Ответить
А у тебя есть на сайте статья про написание скрипта обработчика ? Если есть скинь ссылку.
Ответить
http://myrusakov.ru/obrabotka-formy-php.html
Ответить
Спасибо!
Ответить
Я прочитал статью ,но так и не понял как сделать обработчик ,который заносит значения в базу данных.Можешь обьяснить?Извени если задаю глупые вопросы...
Ответить
http://myrusakov.ru/php-how-study.html
Ответить
Привет...Ответь пожалуйста на вопрос..Как сделать на сайте прямоугольник с закругленными краями? ...вот например http://s52.radikal.ru/i136/1303/a0/1d516f18a13a.png
Ответить
http://myrusakov.ru/css-round-angle.html
Ответить
все понятно,а как отправлять обработанную форму в бд.
Ответить
почти разобрался с емайл, /* Принимаем данные из формы */ $email = $_POST["email"]; а вот с паролем нет.невыводятса в таблице. как правильно их писать,там же их 2
Ответить
Михаил, а как добавить поле аватара? input type="file" name="x" или я несу чушь несусветную? сори туплю наверно пора идти спать)))
Ответить
http://blog.myrusakov.ru/avatar.html
Ответить
Спасибо!
Ответить
Здравствуйте, Михаил! Изучая Ваши видео уроки столкнулся с проблемой. После подключения библиотеки перестало выводиться сообщение о регистрации. В чем может быть проблема? P.S. Все остальное работает.
Ответить
Какой библиотеки?
Ответить
function.php . P.S.Нашел свою ошибку. В $_SESSION["reg_success"] = 1; поставил 2 знака равно, после удаления одного - все заработало.
Ответить
Здравствуйте, Михаил! Вообщем такая проблема. делал регистрацию по бесплатному курсу. Так получается, что и при ошибке, и при успешной регистрации мне java выводит сообщение об ошибке. не пойму в чем дело. Вот код: if (strlen($name)<2) $success = false; elseif (strlen($pass1)<2) $success = false; elseif ($pass1 != $pass2) $success = false; else $success = addUser($name, md5("fh45435d4hgfd".$pass1)); if (!$success) $alert = "Ошибка при регистрации"; else $alert = "Вы успешно зарегистрировались"; include "alert.php"; По идее при успешной регистрации success равен addUser, т.е. равен true, т.к. в базу добавляется, и должно выходить "вы успешно авторизовались", а мне все равно выходит "ошибка при регистрации", не пойму почему.
Ответить
Блин, нашел ошибку!))) Подумал, раз выводит Ошибку значит $success=false, оказывается в функции addUser возвращал $suceess, а не $success))) Спасибо)
Ответить
ну вот видите.просто невнимательность)в будущем будьте внимательнее
Ответить
Быть может не так назвали колонки?Выборка не идёт?сессия не создана? вариантов может быть куча Перепишите ещё раз точно код из курса.Там всё работает.Курс проверял.Ошибок там точно нет. P.S. Уважаемый Олег,java и javascript - 2 разных языка)
Ответить
Доброй ночи, Михаил. На днях делала регистрацию и авторизацию пользователей по вашему бесплатному видео-курсу и у меня так сказать разыгрался аппетит: все у меня получилось, но хочется, чтобы на странице выводилось не "здравствуйте, [email protected]", а было обращение по имени к авторизованному пользователю. Хоть я полный ноль в PHP, но ваши уроки помогли моей логике добавить в таблицу данные об имени и фамилии, а вот вывести их нет совсем не получилось. Авторизация или происходит, но на экране не видно не имени ни даже email, или вообще происходит ошибка. Помогите, может для этого должна быть специальная функция?
Ответить
Уважаемая Галя. 1.Создавайте сессию,в самом начале 2.Если хотите обращение,то смените Здравствуйте на свой текст,а запрос,с выборкой е-мейла,смените на выборку имени из таблицы базы,в которую оно было занесено при регистрации
Ответить
Если вы смотрели курс, не могли бы вы мне сказать, что именно и где надо поменять???
Ответить
Повторно пересматривать курс и перепечатывать код не очень горю желанием Когда Вы создавали регистрацию - данные заносились в базу данных Е-мейл зашедшего пользователя также определяется выборкой из базы данных. Вам достаточно в запросе,который делает выборку Select изменить выборку с поля e-mail на поле с Именем Текст же меняется в самом файле,где вы писали Привет.Вместо "Привет" можно вставить любой свой текст
Ответить
вместо "привет" легко написать "пока", а вот как сделать так, как хотя бы на этом сайте. Когда регистрируешься, заполняешь много полей, и логин, и e-mail, и ФИО, и пароль, а когда проходишь авторизацию, необходимо заполнить только логин и пароль, но в приветствии сайт обращается ко мне по имени, то есть как-то достается мое ФИО из таблицы, вот я и спрашивала, как это сделать.
Ответить
напишите в службу поддержки и мы решим этот вопрос. Я же вам уже сказал: если Вы прошли курс,то у Вас при регистрации вводится е-мейл и пароль вы можете добавить новое поле Имя или изменить е-мейл на имя. Добавляется по аналогии с тем,как добавляется е-мейл.Отображение после приветствия выводится по той же аналогии Если Вы понимаете технологию,то сделать это не сложно. Если нет - пройдите курс снова,вдумчиво и медленно. Я могу дать Вам готовое решение,но толку от этого мало.Не думаю,что Вас чему-то это научит... Вопросы по курсам задавайте,пожалуйста,в службу поддержки
Ответить
а за что мой вопрос-то удалили?(((
Ответить
неделю ждал ответа, а теперь еще и удалили...
Ответить
напишите снова ваш вопрос,и,если он по курсу,то посмотрю в идеале - в службу поддержки просто так вопросы не удаляются
Ответить
ну вопрос больше по сессиям, просто столкнулся когда делал форму регистрации. Короче, с гет-запроса получаю данные, записываю в сессию, потом вывожу на странице в регистрации. Думал когда закроется сессия, то эти данные пропадут. Но нет, они почему то сохраняются. Не пойму как.
Ответить
наверное,потому что,вы сессию открыли) и,возможно,в куки зашили это?или нет? тогда ставьте выход из сессии после выхода из профиля,а не до него)
Ответить
Что то я Вас не понял((( Куки я вообще не трогал. Приведу код свой лучше: if ($_GET["ref"] != "") { $_SESSION["ref"] = $_GET["ref"]; } Вот записал данные в сессию. Дальше на странице регистрации вывожу $_SESSION["ref"]. Как я понимаю, через 15 мин бездействия, все данные записанные в сессию стираются, так? Но у меня $_SESSION["ref"] сохраняется почему то.
Ответить
вы выход из сессии делаете?допустим,так Закрытие сессии После завершения работы с сессией сначала нужно разрегистрировать все переменные сессии, а затем вызвать функцию unset(): Синтаксис: unset($_SESSION["username"]); или просто session_destroy(); ? думаю,нет) А надо
Ответить
Михаил, подскажите, пожалуйста, как можно выкрутиться из следующей ситуации. Иду по Вашему бесплатному курсу. Застрял на 7 уроке про авторизацию. Отлаживаю на денвере в опере. Вылезла проблема с перенаправлением. При попытке авторизоваться выходит страница с ошибкой. Переменная $_SERVER["HTTP_REFERER"] у меня пустая. Вывел на экран содержание массива $_SERVER, так там элемента $_SERVER["HTTP_REFERER"] вообще не существует. В интернете нашел только вот такую констатацию факта:"Если вы имеете сценарии на php где используете глобальную переменную среды $_SERVER[HTTP_REFERER] , то вы поимеете проблемы. Проверено лично: данная переменная отрабатывает корректно в Мозиле, Опере и возвращает неадекватное значение в ИЕ7. Избегайте ее использование так как часто результатом будет пустая строка. Для людей не стыкавшихся с проблемой - $_SERVER[HTTP_REFERER] - возвращает адрес страницы с которой мы пришли" А решения этой проблемы так и не нашел. Подскажите, пожалуйста, что здесь можно сделать?
Ответить
Здравствуйте. При прослушивании бесплатного курса, в 7-м уроке на авторизации, после написания кода, пишет "Ошибка при авторизации"-во всех вариантах. Синтаксис проверил,просьба подсказать проблема в чем. Вот код из файла reg.php: <?php if (!empty($_POST["button_reg"])) { $email = htmlspecialchars($_POST["email"]); $password_1 = htmlspecialchars($_POST["password_1"]); $password_2 = htmlspecialchars($_POST["password_2"]); if (strlen($email) < 3) $success = false; elseif (strlen($password_1) < 3) $success = false; elseif ($password_1 != $password_2) $success = false; else $success = addUser($email, md5($password_1)); if(!$success) $alert = "Ошибка"; else $alert = "Ош"; include "alert.php"; } ?> и код из function.php: function addUser($email, $password) { global $mysqli; connectDB(); $success = $mysqli->query("INSERT INTO `users` (`email`, `password`) VALUES ('$emai', '$password')"); closeDB(); return $success; }
Ответить
В службу поддержки обратитесь.
Ответить
Михаил, выгрузите пожалуйста исходники авторизации и регистрации пользователей. Буду очень благодарен.
Ответить
Николай, все разбирается в видеоуроках.
Ответить
Здравствуйте, у меня в движке авторизация есть, как сделать так чтобы после авторизации пользователь попадал на отдельную страницу .tpl Может я не правильно объяснил, делаю соц сеть, есть главная страница сайта, там должно быть только авторизация и статический текст, типа как в ВК, а после того как авторизовался чтобы можно перейти на сам движок где будет все остальное. На главной странице не нужны модули кроме авторизации, как это сделать?
Ответить
Решил: Если пользователь не авторизован выдаем страницу reg.tpl(Статическая), если авторизован то страница main.tpl if ($this->user_info) { return $this->getReplaceTemplate($sr, "main"); } else { return $this->getReplaceTemplate($sr, "reg"); }
Ответить
Я во всём разобрался кроме одного момента, как у вас получилось вывести имя пользователя через сессию ".$_SESSION['login']." ? Просто у меня в таблице есть поле "город" и я хочу его так же вывести, но какая именно функция за этот вывод отвечает? или может мне надо создать новую функцию? помогите пожалуйста... :-) Вот ссылка на ваш урок: https://www.youtube.com/watch?v=pPNBo5TNauk
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.