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;
}
?>

1

Решение

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

 <?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(); не должно быть в вашем условии if, оно должно быть в начале скрипта и всегда запускаться

<?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 () должен быть перед началом работы с сессией.
  • Я предлагаю вам заменить isset () на empty (), потому что empty () проверил:
    • «» (пустая строка)
    • 0 (0 как целое число)
    • 0.0 (0 как число с плавающей запятой)
    • «0» (0 как строка)
    • НОЛЬ
    • ЛОЖНЫЙ
    • array () (пустой массив)
    • $ Var; (объявленная переменная, но без значения)
0

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

0
По вопросам рекламы [email protected]