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

Форум PHP

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

 

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

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

тема: Проблема с авторизацией (выручайте)
 
 автор: Dimka31   (24.10.2007 в 21:30)   письмо автору
 
 

Вроде все делал по книжке, но только не выходит на практике. Имеется 2 файлика один Авторизации с формочкой, а второй его обработчик (все просто)


Содержание авторизации с формой


<?php
  session_start
();
?>


<form name=main action=autorize.php method=POST>
<table border=0>
  <tr>
    <td>Логин: </td>
    <td><input name=login type=text size=20></td>
  </tr>
  <tr>
    <td>Пароль: </td>
    <td><input name=password type=password size=20></td>
  </tr> 
</table>
<input name="buton" type="submit" value="Войти" />
</form>

<?php
  
if(isset($_SESSION['user']))
  {
    echo 
"Здраствуйте уважаемый ".$_SESSION['Dimka'];
  }
  else 
  {
    echo 
"Для удобной работы на нашем сайте пожалуста авторизируйтесь";
  }
?>




Содержание его обработчика:


<?php
  
include "config.php";
  if(
$_POST['login']!="")
  {
    
$str "Select password from regist where login = '".$_POST['login']."'";
    if(
mysql_query($str))
    {
      echo 
"Вы успешно авторизовались";
      if(
session_start())
      {
        
$_SESSION['user'] = $_POST['login'];
        
$_SESSION['password'] = $_POST['password'];
        echo 
"<html><head><meta http-equiv='refresh' content='0; url=index.php'></head></html>";
      }    
    }
    else 
    {
      echo 
"Ошибка авторизации. Возможно не еще не зарегистрировались или ваш логин или пароль не верен.";
    }
  }
?>


Из кода ошибки я понял, что заголовки уже были отправлены.
Да как этот Скрипт можно сделать с использованием cookie's.

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

   
 
 автор: sd607   (24.10.2007 в 22:55)   письмо автору
 
   для: Dimka31   (24.10.2007 в 21:30)
 

Второй файл переписываем так:


<?php
session_start
();

include 
"config.php";
  if(!empty(
$_POST['login'])  {
    
$query 'select password from regist where login = "'.$_POST['login'].'"';
$result=mysql_query($query);

    if(
mysql_num_rows($result)>0)    {
        
$_SESSION['user'] = $_POST['login'];
      }    
    }
 
header('Location: index.php');
exit();
?>


В первом файле (index.php):


<?php
  session_start
();

  if(isset(
$_SESSION['user']))
  {
    echo 
"Здравствуйте уважаемый ".$_SESSION['user'];
  }
else {
?>
Зарегистрируйтесь:<br/>
<form action="autorize.php" method="POST">
<table border=0>
  <tr>
    <td>Логин: </td>
    <td><input name="login" type="text" size="20"></td>
  </tr>
  <tr>
    <td>Пароль: </td>
    <td><input name="password" type="password" size="20"></td>
  </tr> 
</table>
<input name="buton" type="submit" value="Войти" />
</form>

<?php
}
?>

   
 
 автор: Dimka31   (30.10.2007 в 16:14)   письмо автору
 
   для: sd607   (24.10.2007 в 22:55)
 

С сессиями все работает отлично теперь бы только с cookie разобраться...

   
 
 автор: mihdan   (30.10.2007 в 22:06)   письмо автору
 
   для: Dimka31   (30.10.2007 в 16:14)
 

Не советую юзать в данном случае куки - страдает безопасность, да и вообще многие пользователи их отключают.

   
 
 автор: Ralph   (31.10.2007 в 00:38)   письмо автору
 
   для: mihdan   (30.10.2007 в 22:06)
 

Ах да,ссылки типа http://www...php?SID=blablabla гораздо более безопасны,чем использование кук... и еще,как обслуживать пользователей,которые кроме кук,отключают еще и компьютеры ?

   
 
 автор: KPETuH   (30.10.2007 в 22:45)   письмо автору
 
   для: sd607   (24.10.2007 в 22:55)
 

только вот что то в вашем ответе а проверку пароля не обнаружил....

   
 
 автор: Dimka31   (31.10.2007 в 15:30)   письмо автору
 
   для: KPETuH   (30.10.2007 в 22:45)
 

Так как в базе не может быть повторяющихся логинов, это исключает что запрос вернет больше 1 записи, скажем что на один логин не может быть 2 пароля..

   
 
 автор: KPETuH   (01.11.2007 в 08:03)   письмо автору
 
   для: Dimka31   (31.10.2007 в 15:30)
 

бред, по вашемуполучается что тогда может авторизоваться юзер с любым паролем...

   
 
 автор: Dimka31   (02.11.2007 в 11:05)   письмо автору
 
   для: KPETuH   (01.11.2007 в 08:03)
 

Нет. пароль провереятся SQl запросом посмотрите разберитесь

   
 
 автор: KPETuH   (02.11.2007 в 12:24)   письмо автору
 
   для: Dimka31   (02.11.2007 в 11:05)
 

ЕСЛИ ВЫ внимательно посмотрите на свой SQL запрос то увидите что в нем не проверяется пароль!!!

ТАКЖЕ если ВЫ посмторите на свой код то увидите что там так же нигде не проверяется пароль!!!!

   
 
 автор: Dimka31   (02.11.2007 в 15:54)   письмо автору
 
   для: KPETuH   (02.11.2007 в 12:24)
 

учите SQL радуйтесь жизни. Попробуйте скрывать эмоции.

   
 
 автор: Thrasher   (02.11.2007 в 17:52)   письмо автору
 
   для: Dimka31   (02.11.2007 в 15:54)
 

не, ну пароль в вашем коде действительно не проверяется...

   
 
 автор: KPETuH   (06.11.2007 в 05:24)   письмо автору
 
   для: Dimka31   (02.11.2007 в 15:54)
 

причем тут эмоции?

для начала я посмотрел ваш пример... после вашего замечания несколько раз посмотрел пример, потом специально проверил пример... Так что слушайто что вам говорят... А если не слушаете то зачам тогда здесь спрашиваете?

   
Rambler's Top100
вверх

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