За последние 24 часа нас посетили 58186 программистов и 1845 роботов. Сейчас ищут 914 программистов ...

Не удаляется сессия

Тема в разделе "Прочие вопросы по PHP", создана пользователем gugi, 22 авг 2007.

  1. gugi

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

    С нами с:
    21 авг 2007
    Сообщения:
    28
    Симпатии:
    0
    Почему при выходе сессия не удаляется. Помогите пожалуйста, что я делаю не так?
    Ошибка:
    Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in r:\home\h.com\www\TEST.php on line 15

    Код:
    Код (Text):
    1. <?
    2.     if(isset($_REQUEST['FOX']))
    3.         $act=$_REQUEST['FOX'];
    4.     else
    5.         $act="";
    6. switch($act)
    7. {
    8.     case 'logon':
    9.         session_name("a1234");
    10.         session_start();
    11.         echo "hello";
    12.         echo "<A HREF=TEST.PHP?FOX=logoff>Выход</a>";
    13.     break;
    14.     case 'logoff':
    15.         session_destroy();
    16.         session_unset();
    17.     break;
    18.     default:
    19.         echo "<A HREF=TEST.PHP?FOX=logon>Вход</a>";
    20.     break;
    21. }
    22. ?>
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    session_start кто будет делать?
     
  3. gugi

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

    С нами с:
    21 авг 2007
    Сообщения:
    28
    Симпатии:
    0
    В 10 строке кода есть старт сессии. Обьясните плз, может я чет не правильно делаю?
     
  4. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    А вы посмотрите, выполняется ли session_start при
    Код (Text):
    1. $act == 'logoff'
     
  5. gugi

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

    С нами с:
    21 авг 2007
    Сообщения:
    28
    Симпатии:
    0
    Спасибо за помощь. Вот так работает:
    Код (Text):
    1. <?
    2.    if(isset($_REQUEST['FOX']))
    3.       $act=$_REQUEST['FOX'];
    4.    else
    5.       $act="";
    6. switch($act)
    7. {
    8.    case 'logon':
    9.       session_start();
    10.       echo "Номер сессии: ".session_id();
    11.       echo "<A HREF=TEST.PHP?FOX=logoff>Выход</a>";
    12.    break;
    13.    case 'logoff':
    14.       session_start();
    15.       session_unset();
    16.       session_destroy();
    17.    break;
    18.    default:
    19.       echo "<A HREF=TEST.PHP?FOX=logon>Вход</a>";
    20.    break;
    21. }
     
  6. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Всё гораздо проще.
    PHP:
    1. <?
    2.  
    3.    if(isset($_REQUEST['FOX']))
    4.       $act=$_REQUEST['FOX'];
    5.    else
    6.       $act="";
    7. switch($act)
    8. {
    9.    case 'logon':
    10.       echo "Номер сессии: ".session_id();
    11.       echo "<A HREF=TEST.PHP?FOX=logoff>Выход</a>";
    12.    break;
    13.    case 'logoff':
    14.      session_unset();
    15.       session_destroy();
    16.    break;
    17.    default:
    18.       echo "<A HREF=TEST.PHP?FOX=logon>Вход</a>";
    19.    break;
    20. }