И снова о сессиях...

Discussion in 'PHP' started by inlanger, 15 Sep 2007.

  1. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Вот код:
    PHP:
        if(mysql_num_rows($res) != 0)
        {
        
    session_start();
        
    session_register("uid","pwd");
        
    $session=session_id();
        
    $show_content=true;
        }
        else
        {
        
    $show_content=false;
        }
    Вот далее строки:
    PHP:
    if ($show_content==false)
    {
    мой код
    }
    else
    {
    мой код
    }
    Но страница тупо выводит то, что по false, хотя я залогинился.
    Может есть другой способ проверить, стартовала ли сессия?
     
  2. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    PHP:
         session_start(); 
        
    session_register("uid","pwd"); 
        
    $session=session_id();
    Должно быть в самом верху кода.
     
  3. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    так файл с
    инклудится в самом начале страницы...
     
  4. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    И весь прикол в том, что при выводе этой переменной($show_content), она выглядит как единица(это если я зашёл), но

    Понимает как false
     
  5. ant0ha

    ant0ha Elder - Старейшина

    Joined:
    22 May 2007
    Messages:
    130
    Likes Received:
    50
    Reputations:
    13
    Единица это и есть true, проверяй просто
    PHP:
    if ($show_content)
    {
    код
    }
    elseif (!
    $show_content)
    {
    код
    }
     
  6. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    ну, я понимаю, что единица єто true,и почти на всей странице она true...но моя функция тупо не понимает эту перемную...
     
    #6 inlanger, 15 Sep 2007
    Last edited: 15 Sep 2007
  7. ant0ha

    ant0ha Elder - Старейшина

    Joined:
    22 May 2007
    Messages:
    130
    Likes Received:
    50
    Reputations:
    13
    а что она выведет если так написать
    PHP:
    if ($show_content == true)
    {
    echo 
    $show_content;
    }
    elseif (
    $show_content == false)
    {
    echo 
    $show_content;
    }
    1 или 0 ?
     
  8. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Ничего не вывела. То есть $show_content внутри функции ничему не равно... в чём прикол?
     
  9. ant0ha

    ant0ha Elder - Старейшина

    Joined:
    22 May 2007
    Messages:
    130
    Likes Received:
    50
    Reputations:
    13
    так там функция еще? а ты ее туда через global передавал?

    PHP:
    function name()
    {
      global 
    $show_content;
      ......
    }
     
    #9 ant0ha, 15 Sep 2007
    Last edited: 15 Sep 2007
  10. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Пишет:
     
  11. ant0ha

    ant0ha Elder - Старейшина

    Joined:
    22 May 2007
    Messages:
    130
    Likes Received:
    50
    Reputations:
    13
    а на код можно глянуть, так гадать сложно
     
  12. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    уже более-менее работает. оказывается надо было делать:

    elseif ($GLOBALS["show_content"])
     
  13. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    А теперь вопрос... Как сделать чтобы при переходе по ссылкам сессия не слетала?
     
  14. ant0ha

    ant0ha Elder - Старейшина

    Joined:
    22 May 2007
    Messages:
    130
    Likes Received:
    50
    Reputations:
    13
    пропиши в самом начале каждой страницы
    PHP:
    session_start();
     
  15. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    Сессия должна стартовать в САМОМ верху.