За последние 24 часа нас посетили 32973 программиста и 1821 робот. Сейчас ищут 876 программистов ...

Что-то не так с куками

Тема в разделе "PHP для новичков", создана пользователем Stairdeck, 30 ноя 2014.

  1. Stairdeck

    Stairdeck Активный пользователь

    С нами с:
    9 ноя 2014
    Сообщения:
    47
    Симпатии:
    0
    Адрес:
    Россия
    Здравствуйте!
    Сделал систему авторизации на куках, ставлю их таким образом:

    Код (Text):
    1. setcookie("username", $s_name);
    Переменная $s_name существует, с ней всё в норме.
    При авторизации тоже каких-либо ошибок не выдаёт.

    Читаю на index.php таким образом:
    Код (Text):
    1.  
    2. <?php
    3. if (isset($_COOKIE['username']))
    4. {
    5.     $result_name = mysql_query("SELECT * FROM users WHERE username='".$_COOKIE['username']."'");
    6.     $myrow_name = mysql_fetch_array($result_name);
    7.     $s_name = $myrow_name['username'];
    8.     if($s_name == $_COOKIE['username'])
    9.     {
    10.         echo "<h2>Привет!".$s_name."</h2>";
    11.     }
    12.         else echo "Куки не пусты, но всё равно что-то не так";
    13. }
    14. else echo "Провал";
    15. ?>
    В следствии чего, мне выводит "Провал", значит, что куки не выставлены.

    В чем может быть проблема?
     
  2. irobot

    irobot Новичок

    С нами с:
    15 ноя 2014
    Сообщения:
    88
    Симпатии:
    0
    Сделайте var_dump($result_name), может в запросе ошибка.
     
  3. Stairdeck

    Stairdeck Активный пользователь

    С нами с:
    9 ноя 2014
    Сообщения:
    47
    Симпатии:
    0
    Адрес:
    Россия
    Нет в запросе нету.
    Вот кусок кода из login.php
    Я сейчас выяснил кое-что:
    Код (Text):
    1. if ($username == $s_name || $password == $s_pass){
    2.                 setcookie("username", $s_name);
    3.                 if(isset($_COOKIE['username'])){
    4.                     $message = "Вы успешно вошли ".$_COOKIE['username']."! <br> Через 5 секунд Вы будете перенаправлены!";
    5.                     echo '<script type="text/javascript">setTimeout(function(){location.replace("http://fizika.sesmc.net/");}, 5000);</script>';
    6.                 }
    7.                 else $message = "Ошибка COOKIES!";
    8.             }
    Входит успешно, всё ок.
    Код (Text):
    1. $message = "Вы успешно вошли ".$_COOKIE['username']."! <br> Через 5 секунд Вы будете перенаправлены!";
    Куки выводит как положено.

    Проблема в том, что логинится всё в login.php. А на index.php куки почему-то не отображаются.
     
  4. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    А, чего вы ждете?)
    Куки не могут сразу обновиться, как сесии к примеру, setcookie только отправляет в браузер и если он их принял, после перезагрузки они появятся.
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    куки работают в следующий раз =)
     
  6. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Смотрим про:
     
  7. Stairdeck

    Stairdeck Активный пользователь

    С нами с:
    9 ноя 2014
    Сообщения:
    47
    Симпатии:
    0
    Адрес:
    Россия
    Спасибо большое, что ткнули носом! Всё работает :)