PHP注意:未定义索引:username

PHP注意:未定义索引:username,php,mysql,isset,Php,Mysql,Isset,[18-Dec-2014 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']; <?p

[18-Dec-2014 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'];
<?php
    $username = $_SESSION['username'];
    $uid      = get_userid($username);
?>
我的错误日志超过150Mb,有这个错误,并且使用调用用户名的“$urow”,有什么问题吗?这些功能运行良好,它向我显示了用户的头像,例如:$urow['picture']”,但在错误日志中它告诉我:
PHP注意:未定义变量:urow在另一个页面中。我的所有页面都包含core.PHP,我没有重新声明$urow,因为它是在core中声明的,我重复,在每个页面上都没有显示错误,只是在错误日志中。请原谅我的英语不好:)

最可能的问题是您没有
会话\u start()
在脚本开头。 这意味着您将无法访问任何会话变量

将代码更改为:

session_start();
if (!isset($_SESSION['username'])) {
    die(header("Location: index"));
}

$username = $_SESSION['username'];

笔记 您不应禁止(
@
)代码中的任何调用。请始终解决此问题,不要忽略它

您的脚本在重定向之前仍将运行,因为未设置
$\u SESSION
值时,您从未显式结束脚本。(请参阅上面代码中的
die(header(“Location:index”)

您可能还应该检查以确保它不是空的:

if(!isset($_SESSION['username']) || empty($_SESSION['username'])) {
    die(header("Location: index"));
}

在core中的第2行:ob_start();session_start();那么你的问题如上所述,当找不到用户名时,你不会终止脚本。上面的代码会起作用:)谢谢你回复我,核心,由两部分组成,第一部分是用户登录的温家宝,另一部分是用户未登录的温家宝,在第10行,在这两部分之前,在任何功能声明之前,我有这个:如果(@!$_SESSION['username']){echo';exit();},并在用户登录的部分再次声明,以防万一,如果需要更好地了解我的问题,我用您的代码更改了上面代码的第11行,它似乎工作正常,谢谢
if(!isset($_SESSION['username']) || empty($_SESSION['username'])) {
    die(header("Location: index"));
}