Notice: Undefined variable: admin_username in D:\xampp\htdocs\site\lib\configuration.php on line 63
Notice: Undefined variable: signin_username in D:\xampp\htdocs\site\lib\configuration.php on line 76
我无法摆脱这种错误。我只是不明白为什么它说它没有被定义,因为之前定义了几行。我真的被困在这里了。任何想法都受到高度赞赏。
if(isset($_SESSION['admin_username'])){ $admin_username = $_SESSION ['admin_username']; }
if(isset($_SESSION['admin_password'])){ $admin_password = $_SESSION['admin_password']; }
if(isset($_SESSION['admin_token'])){ $admin_token = $_SESSION['admin_token']; }
if($admin_username && $admin_password && $admin_token == session_id())
答案 0 :(得分:1)
if($admin_username && $admin_password && $admin_token == session_id())
这似乎很可能是第63行。问题是,如果设置了$admin_username
,那么仅定义$_SESSION['admin_username']
。
虽然您没有在代码示例中显示它,但我认为$signin_username
也是如此。
您的问题有很多解决方案。第一个也许是最简单的是在检查变量值之前检查变量是否已设置。
if (isset($admin_username, $admin_password, $admin_token) && session_id() == $admin_token)
如果在检查相应的$_SESSION
变量是否存在之前存在变量的默认值,则不会发生错误:
$admin_username = $admin_password = $admin_token = FALSE;
if(isset($_SESSION['admin_username'])){ $admin_username = $_SESSION ['admin_username']; }
if(isset($_SESSION['admin_password'])){ $admin_password = $_SESSION['admin_password']; }
if(isset($_SESSION['admin_token'])){ $admin_token = $_SESSION['admin_token']; }
如果定义了这些变量而不管相关$_SESSION
变量是否存在,则不会再出现这些错误:
$admin_username = isset($_SESSION['admin_username']) ? $_SESSION['admin_username'] : FALSE;
$admin_password = isset($_SESSION['admin_password']) ? $_SESSION['admin_password'] : FALSE;
$admin_token = isset($_SESSION['admin_token']) ? $_SESSION['admin_token'] : FALSE;