Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Авторизация
 
 автор: Katerina   (27.03.2006 в 15:24)   письмо автору
 
 

Впервые столкнулась с такой проблемой - сделать на сайте авторизацию...Объясните мне пожалуйста, точнее, наведите на путь истинный! Итак...


Первый файл, Form_autorith.php

<form name="form1" action="autorization.php">
   <p>Логин 
     <input name="log_user" type="text" size="10">
</p>
   <p>Пароль 
     <input name="pass_user" type="password" size="10"> 
   </p>
   <p>
     <input type="submit" name="Submit" value="Войти">
</p>
 </form>


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

Дальше...второй файл...autorization.php, куда передаются логин и пароль и идет их обработка:


mysql_connect($host, $login, $password);
mysql_select_db($database);
$sql="SELECT id_table FROM table  WHERE (table.login='$log_user')";
$res=mysql_query($sql);
$num=mysql_num_rows($res);
if ($num==0) 
{
echo "Пользователя с таким логином не существует!";
}
else
{
$sql="SELECT pass FROM table WHERE (table.login='$log_user')";
$res=mysql_query($sql);
while($row=mysql_fetch_array($res)) {
 $passw = $row['pass'];
}
if (crypt($pass_user, $passw) == $passw)

echo "Все ОК!";
}
else echo "Неверный пароль!";
}
mysql_close();


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

   
 
 автор: RV   (27.03.2006 в 17:14)   письмо автору
 
   для: Katerina   (27.03.2006 в 15:24)
 

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

   
 
 автор: cheops   (27.03.2006 в 17:34)   письмо автору
 
   для: Katerina   (27.03.2006 в 15:24)
 

Дело в том, что этот блок можно включить автоматически при помощи конструкции require_once() во все страницы, а можно воспользоваться сессиями или cookie, как это описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=80. Возможно вам также будут интересны статья http://www.softtime.ru/info/articlephp.php?id_article=34 и небольшое Web-приложение http://www.softtime.ru/info/authorization.php.

   
 
 автор: Katerina   (28.03.2006 в 09:57)   письмо автору
 
   для: Katerina   (27.03.2006 в 15:24)
 

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

 $_SESSION['user'] = $log_user; 
  $_SESSION['password'] = $passw;


переводим пользователя на нужную страничку...а там делаем проверку:


if(isset($_SESSION['user'])) echo "Здравствуйте, ".$_SESSION['user']."!"; 


Я все правильно поняла? или нет?
И еще...я сделала авторизацию по примеру, который вы давали...у меня почему-то выдает ошибку:


Warning: session_start(): Cannot send session cookie - headers already sent by....
Warning: session_start(): Cannot send session cache limiter - headers already sent ...


Что это за ошибки?

   
 
 автор: cheops   (28.03.2006 в 13:40)   письмо автору
 
   для: Katerina   (28.03.2006 в 09:57)
 

1) Да, всё правильно.
2) Ошибки связаны с тем, что вызов функции session_start() должен осуществляться до вывода любого текста в окно браузера (даже пробелов и переводов строк) - идеально её вообще самой первой в файле поместить.

   
 
 автор: Katerina   (28.03.2006 в 13:46)   письмо автору
 
   для: cheops   (28.03.2006 в 13:40)
 

Все заработало! Спасибо Вам большое! Приятно находиться на форуме, где тебе действительно помогают советами, а не посылают к ядреной фене, не умничают и не выпендриваются перед новичками! СПАСИБО!!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования