Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
Здравствуйте.
Ну, собственно, начал учить PHP, а так как мой моск понимает исключительно практику, то решил писать сайт параллельно с чтением книг.
Так как понятия не имел, с чего начать, взял за основу вот это
Сейчас завис на авторизации админа.
В общих чертах, это как бы CMS будет. С админкой - все дела. Админка по аналогии с джумлой, а сайт аналог Drive2.ru. Короче это чисто практика для меня, не факт, что это будет жить. Мне главное писать самому.
//проверяем соответствует ли статус из выбранных данных статусу админа (1)
if($user_info['status']==1){
//если да, то все ОК - пользователь действительно админ, если нет, то идем дальше
$user_status=1;
$user_id=$user_info['id'];
$user_login=$user_info['login'];
$user_password=$user_info['password'];
}
}
//если была нажата кнопка войти в форме авторизации
if($_POST['auth']){
//заполнены ли поля?
if(!$_POST['login']||!$_POST['password']){
echo'Вы заполнили не все поля';
}else{
$user_login=$_POST['login'];
$user_password=$_POST['password'];
//смотрим в базу, есть ли совпадение логин-пароль
$auth=mysql_query("select id, login, password, status from `". DB_PREF ."users` where `login` = '".$user_login."' and `password` = '".$user_password."'");
Я так думаю не нужно передавать в сессию логин и пароль. Мне кажется, что id вполне достаточно для этого. Или нет? Безопасен ли мой файл авторизации? Не обращайте внимания на отсутствие проверок полей - это потом.
Еще вот что не могу понять. Я вхожу в админку, затем нажимаю кнопку выйти, а потом жму кнопку назад в браузере. И тут я опять попадаю в админку и снова я авторизован. Как победить это? Как сделать чтобы при клике назад в браузере, я не попадал снова в админку.
PS
Ну и еще подскажите, если это можно объяснить в двух словах. Как можно реализовать вставку модулей в шаблон сайта. Типа как в джумле. Или здесь без классов никак?
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
VygVik
Отправлено: 14 Июня, 2013 - 21:39:28
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2011
Помог: 0 раз(а)
Цитата:
Я так думаю не нужно передавать в сессию логин и пароль. Мне кажется, что id вполне достаточно для этого. Или нет? Безопасен ли мой файл авторизации? Не обращайте внимания на отсутствие проверок полей - это потом.
Еще вот что не могу понять. Я вхожу в админку, затем нажимаю кнопку выйти, а потом жму кнопку назад в браузере. И тут я опять попадаю в админку и снова я авторизован. Как победить это? Как сделать чтобы при клике назад в браузере, я не попадал снова в админку.
Так всего много)
Логин и пароль желательно передать, ведь на основании этого можно авторизоваться. Я думаю взломать можно любой сайт, дело за профессионалом.
После выхода с админки нужно завершить сессию, тогда нажимая в браузере назад вы не сможете войти в админку.
Master_pascal
Отправлено: 14 Июня, 2013 - 23:48:35
Частый гость
Покинул форум
Сообщений всего: 147
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
[+][+][+][+][+]
без куки и сессий регистрацию не сделаешь. гг , а зачем ты страницу ,где кнопка выйти, показал?
показывай чо там у тебя в exit.php (Добавление)
тебе надо создать exit.php и сделать unset($_SESSION['login'])
esterio
Отправлено: 15 Июня, 2013 - 02:26:16
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
Master_pascal
вы в етом уверены? конешно так лучше но не надо так категорически
Hapson
очень много всего. вряли ктонибудь станет читать
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
AlexAnder пишет:
session_destroy()
Для того, чтобы вообще её уничтожить. Будто её и не стартовали. Тогда даже при желании ты в неё ничего не запишешь. И например будут проблемы с капчей у гостей, если правильный ответ пишется в сессию.
Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012 Откуда: Россия
Помог: 34 раз(а)
DeepVarvar пишет:
AlexAnder пишет:
session_destroy()
Для того, чтобы вообще её уничтожить. Будто её и не стартовали. Тогда даже при желании ты в неё ничего не запишешь. И например будут проблемы с капчей у гостей, если правильный ответ пишется в сессию.
т.е. при логауте(нажатии на ссылку выйти) нужно ансетить идентификационные данные, а не уничтожать сессию?
Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010 Откуда: Самара
Помог: 17 раз(а)
Насколько я знаю session_destroy() уничтожает сессию (на стороне сервере), поэтому не всегда нужно уничтожать сессию, а достаточно просто удалить куку...
Ps Поправьте если что
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
VygVik пишет:
Так всего много)
Логин и пароль желательно передать, ведь на основании этого можно авторизоваться. Я думаю взломать можно любой сайт, дело за профессионалом.
После выхода с админки нужно завершить сессию, тогда нажимая в браузере назад вы не сможете войти в админку.
Ну там же смысл в чем.
Сначала проверяется, есть ли в сессии "id" пользователя. Если есть, то из базы выбираются все данные этого "id". То есть, если "id" = 5, то из базы выбираются все данные на пользователя с "id" = 5 (логин, пароль, статус и id).
По задумке есть 4 статуса у пользователей: 0 - гость, 1 - админ, 2 - модер, 3 - юзер.
Далее проверяется, если в выбранных данных статус равен 1, значит это админ, можно показать админку.
Если в сессии "id" не было, тогда из базы выбираются данные согласно паре логин-пароль, которые ввел пришедший юзер.
Если в этих данных статус пользователя = 1, то значит это админ, если нет, значит не админ - отправляем юзера на главную, ему сюда нельзя.
Если пользователь нажал кнопку выход (<a href="?exit=ok">Выйти</a>) в админке, тогда удаляется "id" из сессии и уничтожается сессия.
Но почему-то при нажатии кнопки назад в браузере, сессия опять жива и "id" админа опять существует в сессии. (Добавление)
Master_pascal пишет:
без куки и сессий регистрацию не сделаешь. гг , а зачем ты страницу ,где кнопка выйти, показал?
показывай чо там у тебя в exit.php (Добавление)
тебе надо создать exit.php и сделать unset($_SESSION['login'])
Нету exip.php.
В админке есть <a href="?exit=ok">Выйти</a>
а в файле авторизации
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.