За последние 24 часа нас посетили 73044 программиста и 1651 робот. Сейчас ищут 872 программиста ...

cookie + session

Тема в разделе "PHP для новичков", создана пользователем LokiFC, 26 авг 2008.

  1. LokiFC

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

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    Сделал так. В файле авторизации у меня есть кусок кода, который запускается, если человек авторизовался:
    PHP:
    1. <?php //login.php
    2. //из бд уже загруженны переменные $name(полное имя юзера) и $login(логин имя юзера)
    3. $code = time();
    4. setcookie("code", $code, time()+86400, "/"); //24 строка
    5. setcookie("user", $name, time()+86400, "/"); //25 строка
    6. setcookie("log", $login, time()+86400, "/"); //26 строка
    7. session_start();                              //27 строка
    8. $_SESSION[$login] = $code; //сессия с кодом
    9. // Далее переадресация...
    10. ?>
    11.  
    Все остальные файлы доступные только для авторизованных делают запрос:
    PHP:
    1. <?php
    2. $login = $_COOKIE['log'];
    3. $code1 = $_SESSION[$login];
    4. $code2 = $_COOKIE['code'];
    5. if ( $code1 != $code2 ){
    6. ?>
    7. <script>
    8. location.replace("login.php");
    9. alert("Неправильный логин\\пароль!");
    10. </script>
    11. <?php
    12. exit();
    13. }
    14. ///выполняется страница....
    15. ?>
    На бумаге выглядит канешн красиво, но на деле не работает. :(

    Кстати на днях создал тестовый файл для сессии и куки:
    PHP:
    1. <?php //test.php
    2. $type = $_SERVER["QUERY_STRING"];
    3.  
    4. if(!isset($type)){
    5. echo "Выберите функцию<br>";
    6. }
    7. elseif ($type == "write") { //test.php?write
    8. setcookie("testcookie", "123456", time()+120, "/");
    9. $name1 = "cookiename";
    10. $content = "Содержимое нах";
    11. setcookie($name1, $content,  time()+120, "/");
    12. echo "Cookie занесены (2 мин.)<br>";
    13. $_SESSION['123'] = "session";
    14. echo "Сессия занесена<br>";
    15. }
    16. elseif ($type == "read") { //test.php?read
    17. echo "<b>Cookie:</b><br>";
    18. echo $_COOKIE['testcookie'];
    19. echo "<br>";
    20. $name2 = "cookiename";
    21. echo $_COOKIE[$name2];
    22. echo "<br><b>Session:</b><br>";
    23. echo $_SESSION['123'];
    24. }
    25. elseif($type == "drop"){ //test.php?drop
    26.  unset( $_SESSION['123'] );
    27. }
    28. elseif($type == "info"){ //test.php?info
    29. } else {
    30. echo "Выберите функцию!<br>";
    31. }
    32. ?>
    33. <br><hr>
    34. <a href="test.php?write">Запись</a> |
    35. <a href="test.php?read">Чтение</a> |
    36. <a href="test.php?drop">Очистить</a> |
    37. <a href="test.php?info">Информация</a>
    38.  
    Уважаемые php-мастера, помогите мне разобраться пожалуйста...
    Заранее спасибо ))
     
  2. Anonymous

    Anonymous Guest

    а session_start(); за тебя бабушка делать будет?
     
  3. LokiFC

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

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    имеете ввиду во втором файле? Зачем, ведь я ее в первом не закрывал. Если я напишу во втором, то броузер выдает:
    Еще он пишет:
    Последнее повторялось для сторк 25 и 26 (строки с куками)
     
  4. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  5. LokiFC

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

    С нами с:
    27 июн 2008
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Default City
    Спасибо:) Заработало)))