За последние 24 часа нас посетил 17841 программист и 1610 роботов. Сейчас ищут 816 программистов ...

Проблеммы с использованием сессий

Тема в разделе "PHP для новичков", создана пользователем diez, 14 янв 2010.

  1. diez

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

    С нами с:
    23 сен 2007
    Сообщения:
    9
    Симпатии:
    0
    Задача простая, но где то косячит...
    Итак надо просто запихнуть из $_REQUEST['id'] в переменную сессии $id, ну и собственно использовать $id потом в других разделах.
    Если $_REQUEST['id'] нет то по умолчанию $_SESSION['id']=1.
    При этом $_REQUEST['id'] только на главной странице, на остальный передавать $_REQUESТ'ом не надо (сессии короче),а
    использовать только куки черевато.... Итак вот что я наделал:
    Код (Text):
    1.  
    2. <?php
    3.        
    4.     function create_id()
    5.     {
    6.         if (    empty ($_REQUEST['id'])    )
    7.                     {
    8.                         if(  !empty($_SESSION['id']) )/* с другой страницы */
    9.                             {
    10.                                 @session_start();
    11.                                 global $id;
    12.                                 $id = $_SESSION['id'];
    13.                                 $_SESSION['id'] = $id;
    14.                                 }
    15.                             else                         /* in type */
    16.                                     {
    17.                                     @session_start();
    18.                                     unset($id);
    19.                                     $_SESSION['id'] = 1;
    20.                                     global $id;
    21.                                     $id = $_SESSION['id'];
    22.                                     }
    23.                        
    24.                         }
    25.             else{                                       /*   с внешней сслыки  */
    26.                     @session_start();
    27.                     $_SESSION['id'] = $_REQUEST['id'];
    28.                     global $id;
    29.                     $id = $_SESSION['id'];
    30.                 }
    31.                     return $id;
    32.         }
    33.     echo create_id();
    34.        
    35.     ?>
    Вот так. Добавил собственно эту функцию на каждую страцицу где нужно использовать $id - не работает,
    т.е. на странице куда передается $_REQUEST['id'] все нормально, но при переходе на другую страницу, или даже на другую ссылку
    главной страницы успешно сосзданная пеменная сессии 'id' теряется.
    P.S. Заранее спасибо.
    Код (Text):
    1.  
     
  2. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36

    Так короче и без потери функциональности:
    PHP:
    1. <?php
    2. $id = $_SESSION['id']
    Собаку (@) убираем и смотрим какие ошибки появляются

    ----
    PHP:
    1. <?php
    2.  
    3. function some_function(){
    4.     if (isset($_REQUEST['id'])){
    5.         $_SESSION['id'] = $_REQUEST['id'];
    6.     }
    7.  
    8.     if (!isset($_SESSION['id'])){
    9.         $_SESSION['id'] = 1;
    10.     }
    11.  
    12.     return $_SESSION['id'];
    13. }
    14.  
    15. // ...
    16. // ...
    17. echo some_function();
    18. var_dump($_SESSION['id']);
    19.  
     
  3. Simpliest

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

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    topas
    В жопу шли этого м...дака
     
  4. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Simpliest
    ок

    м...дака
    иди в жопу