注意:未定义的变量:

时间:2013-03-03 16:33:04

标签: php

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())

1 个答案:

答案 0 :(得分:1)

错误在于:

if($admin_username && $admin_password && $admin_token == session_id())

这似乎很可能是第63行。问题是,如果设置了$admin_username,那么定义$_SESSION['admin_username']

虽然您没有在代码示例中显示它,但我认为$signin_username也是如此。

解决方案#1 - 使用isset

您的问题有很多解决方案。第一个也许是最简单的是在检查变量值之前检查变量是否已设置。

if (isset($admin_username, $admin_password, $admin_token) && session_id() == $admin_token)

解决方案#2 - 定义默认值

如果在检查相应的$_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']; }

解决方案#3 - 定义何时丢失

如果定义了这些变量而不管相关$_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;