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

Форум PHP

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

 

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

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

тема: Проблемка с авторизацией пользователей
 
 автор: Otinys   (28.05.2009 в 19:04)   письмо автору
 
 

Собственно имеется сайт с авторизацией посредством кукисов. Имеются пользователи которые не могут залогинится. Кукисы с нужными значениями у них устанавливают,но сайт при этом отображается так, будто авторизации не прошли. Реализована на самом сайте так :
if(isset($_COOKIE['такой-то']))
             {
                // То что видят авторизированные пользователи
              }
              else
             {
                // Форма ввода логина и пароля
              }

Долго пытался понять в чем дело, но видимо не судьба, я, и многие другие пользователи свободно заходят со всех браузеров без проблем. Еще раз повторюсь что у тех кто не может зайти кукисы включены в настройках и при авторизации устанавливаются, не меняется "внешний вид" страници.

  Ответить  
 
 автор: Commander   (29.05.2009 в 04:43)   письмо автору
 
   для: Otinys   (28.05.2009 в 19:04)
 

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

P.S. Кстати, устанавливать в куки флаг авторизации - это дыра, ведь куки можно подделать. Лучше в куки писать логин и пароль.

  Ответить  
 
 автор: Otinys   (29.05.2009 в 05:01)   письмо автору
 
   для: Commander   (29.05.2009 в 04:43)
 

$login = htmlspecialchars($_POST['name']);
$pass = htmlspecialchars($_POST['password']);
$query = "select * from bd_name
          where name='$login' and password=MD5('$pass');";
$nme = mysql_query($query);
if(!$nme) exit ("Ошибка выполнения запроса");
if(mysql_num_rows($nme) > 0)
{

    while($themes = mysql_fetch_array($nme))
    {
      $значение_1 = trim($themes['значение_1']);      
      $значение_2 = trim($themes['значение_2']);
      setcookie("cookie_1","$значение_1",mktime(0,0,0,1,01,2012),"/", "www.имя_хоста.ru",0);
      setcookie("cooki_2","$значение_2",mktime(0,0,0,1,01,2012),"/", "www.имя_хоста.ru",0);
    }
    echo "<html><head>
          <meta http-equiv='refresh' content='0; url=index.php'>
          </head></html>";

}
else
{
  echo "Ошибка Авторизации";
  echo "<html><head>
        <meta http-equiv='refresh' content='3; url=index.php'>
        </head></html>";
  
}

вот так вот выглядит код...

  Ответить  
 
 автор: Commander   (29.05.2009 в 05:10)   письмо автору
 
   для: Otinys   (29.05.2009 в 05:01)
 

Попробуйте так:

<?php
      setcookie
("cookie_1",$значение_1,mktime(0,0,0,1,01,2012),"/""www.имя_хоста.ru",0); 
      
setcookie("cooki_2",$значение_2,mktime(0,0,0,1,01,2012),"/""www.имя_хоста.ru",0); 
?>


P.S. Кстати, логин и пароль мало профильтровать с помощью htmlspecialchars(), безопасней будет сделать так:


<?php
     
if (! get_magic_quotes_gpc()){
          
$login mysql_escape_string($login);
          
$pass mysql_escape_string($pass);
     }
?>

  Ответить  
Rambler's Top100
вверх

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