[2014年12月18日01:18:54欧洲/赫尔辛基] PHP注意:未定义的索引:738行/home/stance93/public_html/game/core.php中的用户名
在这一行我有
if (@!isset($_SESSION['username'])) {
echo '<script>window.location = "index"</script>';
}
$username = $_SESSION['username'];
[2014年12月18日01:18:54欧洲/赫尔辛基] PHP注意:未定义索引:946行/home/stance93/public_html/game/core.php中的用户名 在这条线上我有
<?php
$username = $_SESSION['username'];
$uid = get_userid($username);
?>
和第995行的另一个:
$user = $_SESSION['username'];
$selectuser = mysql_query("SELECT * FROM users WHERE username='$user'");
$urow = mysql_fetch_array($selectuser);
我的错误日志超过150Mb有这个错误,而“$ urow”调用了用户名,出了什么问题?功能运行良好,它显示我的用户的头像为:$ urow ['picture']“,但在错误日志中它告诉我: PHP注意:未定义的变量:urow在另一个页面中。我的所有页面都包含了core.php,我没有重新声明$ urow,因为它是在核心中声明的,我重复一遍,在每个页面上都没有显示错误,只在错误日志中...因为我的英语不好而对我说:)
答案 0 :(得分:2)
导致此问题的最可能的问题是您在脚本开头没有session_start()
。
这意味着您将无法访问任何 $_SESSION
变量。
将您的代码更改为:
session_start();
if (!isset($_SESSION['username'])) {
die(header("Location: index"));
}
$username = $_SESSION['username'];
您永远不应在代码中禁止(@
)任何调用。始终解决问题,不要忽视它。
您的脚本在重定向之前仍然会运行,因为在未设置$_SESSION
值时您从未明确地结束脚本。 (请参阅上面代码中的die(header("Location: index"))
。)
你应该检查以确保它不是空的:
if(!isset($_SESSION['username']) || empty($_SESSION['username'])) {
die(header("Location: index"));
}