简体   繁体   English

为什么在定义 session 时出现“未定义索引”错误?

[英]Why am I getting an “undefined index” error when defining a session?

I am new to PHP and sessions so go easy on me.我是 PHP 和会话的新手,所以 go 对我来说很容易。 This is my code这是我的代码

if(isset($_POST["username"]) || isset($_SESSION["username"])){
   $_SESSION["username"] = $_POST["username"];
   echo $_SESSION["username"];
   } else {
     exit();
   }
   
  

I'm getting an undefined index in the line that is supposed to define $SESSION["username"].我在应该定义 $SESSION["username"] 的行中得到一个未定义的索引。 What am I doing wrong?我究竟做错了什么?

I figured it out.我想到了。 The problem occurs if isset($_POST["username"]) is false.如果 isset($_POST["username"]) 为 false,则会出现问题。 Then when $_POST["username"] doesn't exist so it returns an error然后当 $_POST["username"] 不存在所以它返回一个错误

try it试试看

if(isset($_POST["username"])){
 $_SESSION["username"] = $_POST["username"];
 echo $_SESSION["username"];
} else if (isset($_SESSION["username"])) {
 echo $_SESSION["username"];
} else {
 exit();
}

you're checking if your $_POST variable is set or $_SESSION variable is set, so what's happening here is your if statement is returning true because your $_SESSION variable is already set.您正在检查您的$_POST变量是否已设置或$_SESSION变量已设置,所以这里发生的是您的if语句返回 true,因为您的$_SESSION变量已设置。 And don't forget to start your session using session_start()并且不要忘记使用session_start()启动您的 session

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM