<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Данный курс - это более 20-ти часов видеоуроков по изучению PHP и MySQL. Ключевой момент курса - это создание движка для сайта с нуля. Каждая строчка комментируется. Практически для каждого урока имеются упражнения. Причём данные упражнения направлены не только на закрепление материала, но и на реализацию реальных задач, встающих перед Web-разработчиками при создании сайтов. После курса Вы сможете без проблем создавать движки для любых сайтов.

Также почти к каждому уроку идут упражнения для закрепления материала.

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

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

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Как сделать регистрацию и авторизацию пользователей на сайте

Как сделать регистрацию и авторизацию пользователей на сайте

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

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

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

С местом хранения определились. Теперь перейдём непосредственно к алгоритму авторизации:

  1. Создать форму регистрации на HTML.
  2. Получить данные из формы в скрипте-обработчике.
  3. Проверить полученные данные, и если они некорректны, то сделать редирект обратно на форму регистрации.
  4. Если данные корректны, то записать их в базу данных.

Вот и весь процесс регистрации пользователя на сайте. То есть регистрация - это сохранение информации о пользователе на сайте.

Дальнейшим пунктом является авторизация пользователя на сайте, однако, прежде чем к нему переходить, расскажу об одном важном моменте в форме регистрации - пароле. Я Вам настоятельно рекомендую не хранить пароли в открытом виде (например так, "123456"). Обязательно их шифруйте, хотя бы с помощью функции md5(). И в базе данных храните именно зашифрованный пароль.

Теперь авторизация. Первое, что Вы должны понять - это то, что информация об авторизации должна где-то храниться. Самый простой вариант - это хранение информации в сессии (или в cookie). А теперь алгоритм:

  1. Создать форму авторизации пользователя на HTML, куда пользователь должен будет ввести свой логин и пароль.
  2. В скрипте-обработчике принять данные от пользователя. Если Вы меня послушались, и храните шифрованные пароли в базе данных, то сначала шифруйте полученный пароль. Если же в базе данных лежат открытые пароли, то шифровать не надо.
  3. Проверить правильность введённых данных, и если логин и пароль совпадают с существующим пользователем в базе данных, то записываете в cookie или сессию информацию с логином и шифрованным паролем (либо открытым паролем, если Вы его не шифровали).
  4. Если логин и/или пароль введены неверно, то делать редирект обратно на форму авторизации.

Теперь у Вас есть необходимая информация об авторизации пользователя, которая хранится в его cookie или на сервере (если сессия). Фактически, теперь Вам нужно эту информацию проверять на каждой странице сайта и сверять её аналогично проверке формы авторизации. То есть считываете из cookie (сессии) логин и пароль, и проверяете его. Если они верные, то показываете одну страницу (для зарегистрированных пользователей), а если неверные, то показываете другую страницу (для гостей).

И последнее. Как делается кнопка "Выход"? Очень просто. При нажатии на эту кнопку, стираются cookie, либо сессия. Таким образом, пользователь автоматически вылетает с сайта.

Как видите, всё элементарно, но при реализации этого алгоритма у Вас обязательно возникнет множество вопросов. Например, что делать при регистрации пользователя, логин которого уже имеется в базе данных. Реализация различных проверок входных данных, реализация проверки существования e-mail и прочее - всё это является достаточно сложным, если Вы делаете это в первый раз. Однако, самый сок я выдал. Если будут вопросы при реализации, то спрашивайте либо на форуме, либо в комментариях.

В данной статье я привёл лишь алгоритм, а чтобы научиться его реализовывать нужно знать PHP и MySQL, которые максимально подробно разобраны в этом обучающем курсе: http://srs.myrusakov.ru/php

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (114):

Adrenalin Adrenalin 15.10.2011 02:21:09

Респект и Уважуха тебе Михаил! Хочу задать два вопроса: - долго ли Ты обучался всему этому; - как сделать авторизацию пользователей как В Контакте (всмысле каждому пользователю разные страницы)? Твой постоянный читатель с Украины!

Ответить

Admin Admin 15.10.2011 13:10:06

Обучаться созданию авторизации не нужно. Нужно обучаться PHP и MySQL. Для этого мне потребовалось 2-3 месяца, а после пошло уже совершенствование, которое происходит и сейчас.

Ответить

Adrenalin Adrenalin 07.11.2011 21:37:30

А в денвере (Denwer) нельзя создавать скрипты или страницы так, чтобы в одном окне код, а в другом результат? Общем как в html-редакторе.

Ответить

Admin Admin 07.11.2011 21:39:55

Нет, поскольку Denwer - это не редактор, а пакет сервера apache, интерпретатора php, mysql, phpmyadmin и так далее, но никак не html-редактор.

Ответить

Adrenalin Adrenalin 07.11.2011 21:54:40

Видел в нете редакторы php. Это то же самое что и html-редактор? Или они не будут показывать виполнение скриптов?

Ответить

Admin Admin 07.11.2011 22:02:04

Это примерно то же самое, что и HTML-редакторы, только для PHP. Результата выполнения они показывать не будут.

Ответить

Серый Серый 21.10.2013 20:53:06

Здравствуйте, Михаил! А возможно ли сделать регистрацию на сайте без PHP, то есть просто ссылка на какой нибудь сторонний ресурс, где можно хранить базу подписчиков??)

Ответить

Admin Admin 21.10.2013 22:20:45

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

Ответить

Серый Серый 22.10.2013 07:23:05

А, например, смартреспондер, джастклик, или это все не то?

Ответить

Admin Admin 22.10.2013 11:53:34

Это не для регистрации пользователей.

Ответить

Серый Серый 22.10.2013 15:03:13

Ясно, спасибо)

Ответить

Adrenalin Adrenalin 10.11.2011 22:09:02

Хочу продать компа, но незнаю как правильно удалить Denwer. Подскажешь?

Ответить

Admin Admin 10.11.2011 22:45:47

Остановите сервер и просто удалить папку с Denwer. Тогда все файлы пропадут, а вместе с ними и все базы данных.

Ответить

Adrenalin Adrenalin 15.11.2011 15:14:06

А какой принцип работы ВНУТРЕННЕЙ ПОЧТЫ в соц. сетях? Наверное, каждое сообщение пользователей записывается в файл или базу данных, а затем выводится как обычный комментарий? И почему эти сообщения видны только определённому пользователю, если авторизованых на сайте много?

Ответить

Admin Admin 15.11.2011 15:30:21

Действительно, каждое сообщение записывается в базу данных. В таблице находится не только текст сообщения, но ещё и кому это сообщение. А дальше благодаря языку SQL можно легко вытащить только те сообщения, которые направлены данному пользователю (а что за пользователь, берётся из cookie).

Ответить

Adrenalin Adrenalin 15.11.2011 16:01:15

Последний вопрос! Я разобрался с гостевой книгой (без базы данных), но осталась одна проблемка. После нажатия на кнопку ДОБАВИТЬ ОТЗЫВ, он записывается в файл и выводится там, где мне надо. Но, при нажатии в браузере значка ОБНОВИТЬ (страницу), этот отзыв копируется (добавляется ещё один, такой-же). И нет разницы в том, оставляю ли я автора отзыва на странице обработчика, или же возвращаю его назад на страницу с отзывом.

Ответить

Admin Admin 15.11.2011 16:32:09

Я думаю, что проблема в следующем. Вы написали скрипт добавления отзыва в текстовый файл в том же файле, где выводятся комментарии. Затем Вы добавили новый отзыв, а потом жмёте обновить, и форма повторно (!!!) отправляется. Как следствие, добавляется ещё один комментарий. Чтобы это исправить, достаточно сделать добавление в файл в отдельном скрипте, а возвращаться обратно через редирект.

Ответить

Кузя Кузя 20.06.2012 02:57:53

Можешь рассказать как ты сделал гостевую книгу без баз данных?Пожалуйста...Или скинь готовое чтобы не рассказывать...boss.Malinichev@mail.ru

Ответить

Admin Admin 20.06.2012 11:33:20

Можно хранить все сообщения в текстовых файлах.

Ответить

Кузя Кузя 20.06.2012 20:58:11

У меня такая проблема-когда я создаю таблицу в базе данных у меня нет поля "дополнительно" а без него я не могу сделать регистрацию на сайте...Помогите пожалуйста

Ответить

Admin Admin 20.06.2012 20:59:46

Вопрос очень странный. Никто не мешает создать это поле при создании таблицы.

Ответить

Кузя Кузя 20.06.2012 21:11:01

а как?

Ответить

Admin Admin 20.06.2012 21:14:21

http://myrusakov.ru/phpmyadmin-table.html

Ответить

Кузя Кузя 20.06.2012 21:29:54

а как оно может называться? У меня реально нет этого поля,что же я буду заполнять?

Ответить

Admin Admin 20.06.2012 21:33:53

Какой смысл в таблице без полей? Как хотите, так и называйте. Читайте ещё раз статью, Вы ничего не поняли из неё.

Ответить

Кузя Кузя 20.06.2012 21:47:06

ТипДокументация Длина/значения По умолчанию Сравнение Атрибуты Null A_I Комментарии MIME-тип Преобразование Параметры преобразований..............а дополднительно нету

Ответить

Admin Admin 20.06.2012 22:03:38

А зачем нужно это "дополнительно"?

Ответить

Кузя Кузя 20.06.2012 22:17:16

чтобы поставить "auto_increment"

Ответить

Admin Admin 20.06.2012 22:18:18

Там есть auto_increment, смотрите внимательнее.

Ответить

verms verms 17.01.2013 15:57:08

в новых версиях phpmyadmin auto_increment сделан видек chekout короче просто галочку поставь где написано A-i или A_I

Ответить

Adrenalin Adrenalin 15.11.2011 18:14:07

Именно так! А как правильно записать редирект обратно? Вот так: Header ("Location: имя_web-страницы_с_гостевой_книгой"); - не выходит

Ответить

Admin Admin 15.11.2011 18:26:24

Header("Location: http://google.ru"); Вместо http://google.ru пишите свой адрес, всё должно работать.

Ответить

Adrenalin Adrenalin 15.11.2011 19:58:27

Не работает! Отображает эту строку в браузере! Делаю так: - Поместил код-обработки в отдельный файл (.php); - Закончил сценарий (?>) и сразу вставил эту строку (редирект). А в Денвере должно возвращать? Хотя пробовал и на хостинге! Может нужно выставить какие-то права?

Ответить

Admin Admin 15.11.2011 20:12:37

Теперь поясняю, что Вы делаете: 1. Открываете PHP. 2. Обрабатываете форму. 3. Закрываете PHP. 4. Вызываете PHP-функцию header(). Не видите здесь никаких противоречий?

Ответить

Adrenalin Adrenalin 15.11.2011 21:03:16

Кажись вьехал :) Сначала нужно вызвать PHP-функцию header(), а затем закрыть PHP_____сейчас испытаю_____

Ответить

Adrenalin Adrenalin 15.11.2011 22:12:22

Огромное ЧЕЛОВЕЧЕССКОЕ спасибо! Есть ещё вопрос: У файле __.php находится код вывода сообщений и формы (или код-обработчик). Нужно ли в этом файле где-то добавлять html-теги (например html, head, meta, title, body), ведь там может быть и обычный текст, например с благодарностью за добавленый коммент.?

Ответить

Admin Admin 15.11.2011 22:15:37

Если что-то выводится, то уже нужны HTML-теги.

Ответить

Adrenalin Adrenalin 15.11.2011 22:38:30

Сначала вывожу уже добавленные комменты php-кодом (его в теги не беру). Под ними вывожу форму добавления новых (форму беру в теги). Правильно??? И ещё: Отправляю пустую форму (даже без пробелов) на обработку, и это сообщение записываеться, возвращается пустая строка с разделителем сообщений. Как это обойти???

Ответить

Admin Admin 15.11.2011 22:44:44

Всё, что выводится на странице должно быть внутри тега <body>. А для решения второй проблемы существует условный оператор.

Ответить

Adrenalin Adrenalin 15.11.2011 23:24:22

Я не ... Смотри: Есть три файла .php (stranica.php, vivod.php, obrabotka.php). На странице stranica.php - Статья, в низу которой я вставил код: <?php $ind="book01"; include ("vivod.php"); ?> Эта страница с тегами! А две остальных???

Ответить

Admin Admin 15.11.2011 23:27:48

А понял, да можно и без тегов 2 других страницы. А вот на stranica.php без HTML-тегов не обойтись.

Ответить

estet-osa estet-osa 13.02.2012 11:26:40

Миша а можно как то по подробней все это дело описать, ато по регистрации, трудно найти уроки. Помоги если не трудно...

Ответить

Admin Admin 13.02.2012 15:09:12

http://srs.myrusakov.ru - подписывайтесь, там где-то 6 и 7 выпуски рассылки как раз посвящены регистрации и авторизации.

Ответить

chech chech 26.02.2012 19:31:21

написано хорошо..

Ответить

Pingvusha Pingvusha 01.04.2012 11:13:54

Пыталась сделать регистрацию по вашему видеоуроку, написав весь код под свой сайт, он не может добавить все данные в БД и почему сразу переходит на страницу где снова добавляются пользователи. А в phpMyAdmin, при этом я не могу просмотреть свою таблицу Пишет "Table seems to be empty". В чем у меня ошибка?

Ответить

Admin Admin 01.04.2012 13:32:08

Таблица пустая, потому и не показывается. Вы где-то допустили ошибку. Вот материал для изучения: http://myrusakov.ru/php-finderror.html

Ответить

Pingvusha Pingvusha 30.05.2012 16:59:33

а как сделать атворизацию с разными уровнями доступа? и перенаправлять на ту страницу, которую разрешено

Ответить

Admin Admin 30.05.2012 20:42:21

http://myrusakov.ru/php-usertype.html

Ответить

Pingvusha Pingvusha 30.05.2012 20:57:59

огромное спасибо ваши уроки помогают мне делать дипломное проектирование, извиняюсь за свою невнимательность!

Ответить

ankalitkin ankalitkin 15.06.2012 16:48:07

А можно использовать OpenID или OAuth, и это безопасно?

Ответить

Admin Admin 15.06.2012 16:52:54

Можно, и это безопасно.

Ответить

malina95 malina95 23.08.2012 19:17:41

Михаил, извините за древний вопрос, но у меня возникли проблемы с вашей рассылкой, тоесть видеоуроками... Не могу сделать регистрацию - Всё происходит, работает, но в базу не заноситься!!! 4 раз пересматриваю и переделываю,но ни как не хочет...Я уже пробовал написать по своему и тоже никак... ПОМОООГИТЕЕЕЕ!!!

Ответить

Admin Admin 23.08.2012 21:25:44

А напрямую выполнять запрос в базу через phpmyadmin Вы пробовали? Может он и не срабатывает вообще, из-за какой-нибудь мелкой ошибки.

Ответить

malina95 malina95 23.08.2012 22:14:28

Спасибо за ответ, он сильно помог... Всё дело в денвере, он просто стал глючить

Ответить

Frederico Frederico 21.10.2012 23:38:19

Я не могу понять где здесь синтаксическая ошибка: <?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> ?>

Ответить

Admin Admin 17.12.2012 18:55:13

У второго echo кавычка не закрывается.

Ответить

alexandr_93 alexandr_93 17.12.2012 18:04:35

Михаил, я извиняюсь, помогите пожалуйста) Делаю авторизацию по Вашему примеру из бесплатного курса по 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 есть, в чем может быть проблема? заранее благодарен)

Ответить

Admin Admin 17.12.2012 18:57:17

Добавьте вначале скрипта: error_reporting(E_ALL & ~E_NOTICE); А вообще не стоит лишний раз трогать php.ini.

Ответить

alexandr_93 alexandr_93 17.12.2012 19:56:31

Большое спасибо)

Ответить

Tanya_ Tanya_ 05.02.2013 14:13:17

Здравствуйте,Михаил! Помогите пожалуйста..я делала авторизацию по Вашему примеру из бесплатного курса по 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; ?> сделав регистрацию по Вашему примеру все получилось..а с авторизацией проблема...что ввожу данные что не ввожу - ничего не меняется.Помогите..

Ответить

Admin Admin 05.02.2013 14:51:21

Ошибка может быть где угодно, необязательно в этом файле. Ищите ошибку по этой методике: http://myrusakov.ru/php-finderror.html

Ответить

Tanya_ Tanya_ 05.02.2013 17:29:26

Спасибо!Благодаря Вам и Вашей методике у меня все заработало) Подскажите пожалуйста а как можно осуществить задачу, когда пользователь забыл пароль? что нужно написать в коде чтобы на моем сайте была возможность восстановить пароль? Заранее огромное спасибо

Ответить

Admin Admin 05.02.2013 20:41:32

http://blog.myrusakov.ru/reset2.html

Ответить

Tanya_ Tanya_ 06.02.2013 10:14:45

Спасибо. А вот в этом курсе по восстановлению пароля в файле reset.php 11 строка видна не полностью,могли бы вы ее закончить $headers = "From: $from\r\nReply-To: $from\r\nContent-Type: text/plain;

Ответить

Admin Admin 06.02.2013 12:35:16

$headers = "From: $from\r\nReply-To: $from\r\nContent-Type: text/plain; charset=windows-1251\r\n";

Ответить

Tanya_ Tanya_ 07.02.2013 14:51:26

Спасибо! Подскажите пожалуйста,Михаил, я делаю по Вашим примерам активацию пользователя,но когда я записываю вот эту функцию 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'"); помогите пожалуйста

Ответить

Admin Admin 07.02.2013 16:59:20

$mysqli не является объектом. Поэтому посмотрите, возвращает ли функция connectDB() правильный mysqli. И возникает ли данная проблема только на хостинге, или же и на денвере тоже самое.

Ответить

ghhgghhggh ghhgghhggh 12.03.2013 14:50:54

Хорошая статья.Хотелось бы ещё узнать для зарегистрированного пользователя надо создать аккаунт и какие минимальные настройки там должны быть(Загрузка фото и т.д)?

Ответить

Admin Admin 12.03.2013 16:46:06

http://blog.myrusakov.ru/editprofile.html

Ответить

ghhgghhggh ghhgghhggh 12.03.2013 17:09:59

Спасибо Михаил много интерестного у вас на сайте))

Ответить

Anutka12 Anutka12 13.03.2013 12:06:03

Что такое скрипт-обработчик, и как с ним работать?

Ответить

Admin Admin 13.03.2013 15:16:09

Скрипт-обработчик - это PHP-скрипт, обрабатывающий форму.

Ответить

Ученик Ученик 21.03.2013 20:13:12

Привет Михаил. А как написать скрипт обработчик ,принятия данных от пользователя ?И еще как сделать проверку емаила при регистрации? Заранее спасибо...

Ответить

Admin Admin 21.03.2013 21:26:13

Для этого надо изучать PHP.

Ответить

Ученик Ученик 21.03.2013 21:50:38

А у тебя есть на сайте статья про написание скрипта обработчика ? Если есть скинь ссылку.

Ответить

Admin Admin 21.03.2013 21:51:38

http://myrusakov.ru/obrabotka-formy-php.html

Ответить

Ученик Ученик 21.03.2013 21:54:17

Спасибо!

Ответить

Ученик Ученик 21.03.2013 22:06:02

Я прочитал статью ,но так и не понял как сделать обработчик ,который заносит значения в базу данных.Можешь обьяснить?Извени если задаю глупые вопросы...

Ответить

Admin Admin 22.03.2013 10:14:54

http://myrusakov.ru/php-how-study.html

Ответить

Ученик Ученик 26.03.2013 17:03:50

Привет...Ответь пожалуйста на вопрос..Как сделать на сайте прямоугольник с закругленными краями? ...вот например http://s52.radikal.ru/i136/1303/a0/1d516f18a13a.png

Ответить

Admin Admin 26.03.2013 21:03:17

http://myrusakov.ru/css-round-angle.html

Ответить

shamil shamil 04.04.2013 23:52:51

все понятно,а как отправлять обработанную форму в бд.

Ответить

shamil shamil 05.04.2013 09:17:57

почти разобрался с емайл, /* Принимаем данные из формы */ $email = $_POST["email"]; а вот с паролем нет.невыводятса в таблице. как правильно их писать,там же их 2

Ответить

wikim@bk.ru wikim@bk.ru 17.06.2013 01:54:27

Михаил, а как добавить поле аватара? input type="file" name="x" или я несу чушь несусветную? сори туплю наверно пора идти спать)))

Ответить

Admin Admin 17.06.2013 10:57:37

http://blog.myrusakov.ru/avatar.html

Ответить

wikim@bk.ru wikim@bk.ru 17.06.2013 16:01:25

Спасибо!

Ответить

wikim@bk.ru wikim@bk.ru 28.06.2013 21:33:17

Здравствуйте, Михаил! Изучая Ваши видео уроки столкнулся с проблемой. После подключения библиотеки перестало выводиться сообщение о регистрации. В чем может быть проблема? P.S. Все остальное работает.

Ответить

Admin Admin 28.06.2013 22:10:36

Какой библиотеки?

Ответить

wikim@bk.ru wikim@bk.ru 28.06.2013 22:39:48

function.php . P.S.Нашел свою ошибку. В $_SESSION["reg_success"] = 1; поставил 2 знака равно, после удаления одного - все заработало.

Ответить

Югай Югай 10.01.2014 21:10:57

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

Ответить

Югай Югай 10.01.2014 21:20:28

Блин, нашел ошибку!))) Подумал, раз выводит Ошибку значит $success=false, оказывается в функции addUser возвращал $suceess, а не $success))) Спасибо)

Ответить

alexandrdante alexandrdante 10.01.2014 22:58:41

ну вот видите.просто невнимательность)в будущем будьте внимательнее

Ответить

alexandrdante alexandrdante 10.01.2014 21:22:09

Быть может не так назвали колонки?Выборка не идёт?сессия не создана? вариантов может быть куча Перепишите ещё раз точно код из курса.Там всё работает.Курс проверял.Ошибок там точно нет. P.S. Уважаемый Олег,java и javascript - 2 разных языка)

Ответить

gala_78 gala_78 11.01.2014 04:02:49

Доброй ночи, Михаил. На днях делала регистрацию и авторизацию пользователей по вашему бесплатному видео-курсу и у меня так сказать разыгрался аппетит: все у меня получилось, но хочется, чтобы на странице выводилось не "здравствуйте, test@mail.ru", а было обращение по имени к авторизованному пользователю. Хоть я полный ноль в PHP, но ваши уроки помогли моей логике добавить в таблицу данные об имени и фамилии, а вот вывести их нет совсем не получилось. Авторизация или происходит, но на экране не видно не имени ни даже email, или вообще происходит ошибка. Помогите, может для этого должна быть специальная функция?

Ответить

alexandrdante alexandrdante 11.01.2014 04:14:34

Уважаемая Галя. 1.Создавайте сессию,в самом начале 2.Если хотите обращение,то смените Здравствуйте на свой текст,а запрос,с выборкой е-мейла,смените на выборку имени из таблицы базы,в которую оно было занесено при регистрации

Ответить

gala_78 gala_78 11.01.2014 04:42:13

Если вы смотрели курс, не могли бы вы мне сказать, что именно и где надо поменять???

Ответить

alexandrdante alexandrdante 11.01.2014 04:50:06

Повторно пересматривать курс и перепечатывать код не очень горю желанием Когда Вы создавали регистрацию - данные заносились в базу данных Е-мейл зашедшего пользователя также определяется выборкой из базы данных. Вам достаточно в запросе,который делает выборку Select изменить выборку с поля e-mail на поле с Именем Текст же меняется в самом файле,где вы писали Привет.Вместо "Привет" можно вставить любой свой текст

Ответить

gala_78 gala_78 11.01.2014 05:12:12

вместо "привет" легко написать "пока", а вот как сделать так, как хотя бы на этом сайте. Когда регистрируешься, заполняешь много полей, и логин, и e-mail, и ФИО, и пароль, а когда проходишь авторизацию, необходимо заполнить только логин и пароль, но в приветствии сайт обращается ко мне по имени, то есть как-то достается мое ФИО из таблицы, вот я и спрашивала, как это сделать.

Ответить

alexandrdante alexandrdante 11.01.2014 05:18:32

напишите в службу поддержки и мы решим этот вопрос. Я же вам уже сказал: если Вы прошли курс,то у Вас при регистрации вводится е-мейл и пароль вы можете добавить новое поле Имя или изменить е-мейл на имя. Добавляется по аналогии с тем,как добавляется е-мейл.Отображение после приветствия выводится по той же аналогии Если Вы понимаете технологию,то сделать это не сложно. Если нет - пройдите курс снова,вдумчиво и медленно. Я могу дать Вам готовое решение,но толку от этого мало.Не думаю,что Вас чему-то это научит... Вопросы по курсам задавайте,пожалуйста,в службу поддержки

Ответить

Югай Югай 17.01.2014 20:26:51

а за что мой вопрос-то удалили?(((

Ответить

Югай Югай 17.01.2014 20:27:34

неделю ждал ответа, а теперь еще и удалили...

Ответить

alexandrdante alexandrdante 17.01.2014 22:18:09

напишите снова ваш вопрос,и,если он по курсу,то посмотрю в идеале - в службу поддержки просто так вопросы не удаляются

Ответить

Югай Югай 19.01.2014 00:04:53

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

Ответить

alexandrdante alexandrdante 19.01.2014 00:12:12

наверное,потому что,вы сессию открыли) и,возможно,в куки зашили это?или нет? тогда ставьте выход из сессии после выхода из профиля,а не до него)

Ответить

Югай Югай 19.01.2014 16:07:22

Что то я Вас не понял((( Куки я вообще не трогал. Приведу код свой лучше: if ($_GET["ref"] != "") { $_SESSION["ref"] = $_GET["ref"]; } Вот записал данные в сессию. Дальше на странице регистрации вывожу $_SESSION["ref"]. Как я понимаю, через 15 мин бездействия, все данные записанные в сессию стираются, так? Но у меня $_SESSION["ref"] сохраняется почему то.

Ответить

alexandrdante alexandrdante 19.01.2014 16:36:37

вы выход из сессии делаете?допустим,так Закрытие сессии После завершения работы с сессией сначала нужно разрегистрировать все переменные сессии, а затем вызвать функцию unset(): Синтаксис: unset($_SESSION["username"]); или просто session_destroy(); ? думаю,нет) А надо

Ответить

Lokky Lokky 06.02.2014 20:42:06

Михаил, подскажите, пожалуйста, как можно выкрутиться из следующей ситуации. Иду по Вашему бесплатному курсу. Застрял на 7 уроке про авторизацию. Отлаживаю на денвере в опере. Вылезла проблема с перенаправлением. При попытке авторизоваться выходит страница с ошибкой. Переменная $_SERVER["HTTP_REFERER"] у меня пустая. Вывел на экран содержание массива $_SERVER, так там элемента $_SERVER["HTTP_REFERER"] вообще не существует. В интернете нашел только вот такую констатацию факта:"Если вы имеете сценарии на php где используете глобальную переменную среды $_SERVER[HTTP_REFERER] , то вы поимеете проблемы. Проверено лично: данная переменная отрабатывает корректно в Мозиле, Опере и возвращает неадекватное значение в ИЕ7. Избегайте ее использование так как часто результатом будет пустая строка. Для людей не стыкавшихся с проблемой - $_SERVER[HTTP_REFERER] - возвращает адрес страницы с которой мы пришли" А решения этой проблемы так и не нашел. Подскажите, пожалуйста, что здесь можно сделать?

Ответить

igor.chekalin@gmx.de igor.chekalin@gmx.de 14.02.2014 19:27:03

Здравствуйте. При прослушивании бесплатного курса, в 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; }

Ответить

tikkiwiki tikkiwiki 18.02.2014 17:20:12

В службу поддержки обратитесь.

Ответить

Blaze Blaze 26.04.2014 19:07:31

Михаил, выгрузите пожалуйста исходники авторизации и регистрации пользователей. Буду очень благодарен.

Ответить

tikkiwiki tikkiwiki 29.04.2014 11:15:16

Николай, все разбирается в видеоуроках.

Ответить

jacobflow jacobflow 04.08.2014 15:27:46

Здравствуйте, у меня в движке авторизация есть, как сделать так чтобы после авторизации пользователь попадал на отдельную страницу .tpl Может я не правильно объяснил, делаю соц сеть, есть главная страница сайта, там должно быть только авторизация и статический текст, типа как в ВК, а после того как авторизовался чтобы можно перейти на сам движок где будет все остальное. На главной странице не нужны модули кроме авторизации, как это сделать?

Ответить

jacobflow jacobflow 04.08.2014 15:53:19

Решил: Если пользователь не авторизован выдаем страницу reg.tpl(Статическая), если авторизован то страница main.tpl if ($this->user_info) { return $this->getReplaceTemplate($sr, "main"); } else { return $this->getReplaceTemplate($sr, "reg"); }

Ответить

daniil264 daniil264 25.05.2016 20:41:40

Я во всём разобрался кроме одного момента, как у вас получилось вывести имя пользователя через сессию ".$_SESSION['login']." ? Просто у меня в таблице есть поле "город" и я хочу его так же вывести, но какая именно функция за этот вывод отвечает? или может мне надо создать новую функцию? помогите пожалуйста... :-) Вот ссылка на ваш урок: https://www.youtube.com/watch?v=pPNBo5TNauk

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.