2015-05-06 4 views
1

Извините, но я новичок в этом. В следующем коде отображается только «Пожалуйста, войдите». Код действительно работает, но он не делает то, что я хочу, я пытаюсь сохранить идентификатор пользователя в сеансе. Вот мой кодPHP хранение данных сеанса, сохранение идентификатора пользователя в сеансе

<?php 

    if(!isset($_SESSION)) session_start(); 


    if(isset($_POST['userid'])){ 
     $userid = $_POST['userid']; 
     $_SESSION['userid']=$userid; 
     echo "Welcome $_SESSION[userid]"; 
    } 

    if (!isset($_SESSION['userid'])){ 
     echo "Please login"; 
     exit; 
    } 
    ?> 
+0

Пожалуйста, введите код вашей формы –

+0

Typo 'echo 'Welcome $ _SESSION [userid]"; 'должен быть' echo' Welcome $ _SESSION ['userid'] ";' он не решит вашу проблему –

+0

Hei @ r33drum why вы изменили правильный ответ на другой ответ через некоторое время и после голосования, проголосовавшего за мой ответ, поскольку он работает? –

ответ

0

session_start() должен быть в начале без любое условие. А также одна дополнительная закрывающая скобка) во втором условии условия. Попробуйте это:

<?php 
    session_start(); 


     if(isset($_POST['userid'])){ 
      $_SESSION['userid']= $_POST['userid']; 
      echo "Welcome {$_SESSION['userid']}"; 
     } 

     if (!$_SESSION['userid']){ 
      echo "Please login"; 
      exit; 
     } 
0

session_start(); не должно быть в вашем состоянии, если он должен быть в начале сценария и всегда запущен

<?php 

    session_start(); 


    if(isset($_POST['userid'])){ 
     $_SESSION['userid']= $_POST['userid']; 
     echo "Welcome ".$_SESSION['userid']; 
    } 

    if (!$_SESSION['userid']){ 
     echo "Please login"; 
     exit; 
    } 
+0

Это вызовет ошибку синтаксиса. –

0
  • session_start() нужно быть, прежде чем приступить к работе с сеансом.
  • Я предлагаю вам заменить Исеть() на пустой(), потому что пустой() проверяется на:
    • "" (пустая строка)
    • 0 (0 как целое число)
    • 0,0 (0 как поплавок)
    • "0" (0 в виде строки)
    • NULL
    • FALSE
    • массив() (пустой массив)
    • $ вар; (Переменная объявлена, но без значения)
1

Спасибо за ответ. Сейчас он работает, я также определяю неправильную сессию.

Смежные вопросы