注意:未定义的索引:id 在 ..在线


Notice: Undefined index: id in ... on line

<?php
session_start();
error_reporting(E_ALL); 
$id = $_SESSION["id"];  
$name = $_SESSION["name"];
$surname = $_SESSION["surname"];
if (!empty($id)) {
    echo "<div id='"user'">";
    echo "<h4>Utente: $name $surname | <a href='"http:/...'">Logout</a></h4>";
    echo "</div>";
}
?>

问题:

注意:未定义的索引:id 在...在第 4
行 注意:未定义的索引:名称在...在第 5
行 注意:未定义的索引:姓氏...在第 6 行

所以我尝试:

<?php
 session_start();
error_reporting(E_ALL);
if (!empty($_SESSION["id"])) {
    echo "<div id='"user'">";
    echo "<h4>Utente: $_SESSION["name"] $_SESSION["surname"] | <a href='"http:/...'">Logout</a></h4>";
    echo "</div>";
}?>

但:

解析错误:语法错误、意外的"、预期T_STRING或 T_VARIABLE或T_NUM_STRING...在第 7 行

为什么?

错误消息说明了一切:这意味着这些变量未设置(即不存在)。在尝试使用它们之前,您需要检查它们是否存在:

$id      = ($_SESSION["id"])      ?: null;  
$name    = ($_SESSION["name"])    ?: null;
$surname = ($_SESSION["surname"]) ?: null;

如果您运行的版本早于 PHP 5.3,则需要使用更长的语法:

$id      = (isset($_SESSION["id"]))      ? $_SESSION["id"]      : null;  
$name    = (isset($_SESSION["name"]))    ? $_SESSION["name"]    : null;
$surname = (isset($_SESSION["surname"])) ? $_SESSION["surname"] : null;
对于解析

错误:语法错误,意外,您可以使用

echo "<h4>Utente: ".$_SESSION["name"] .$_SESSION["surname"] ."| <a href='"http:/...'">Logout</a></h4>";

而不是

echo "<h4>Utente: $_SESSION["name"] $_SESSION["surname"] | <a href='"http:/...'">Logout</a></h4>";

更新的代码:

    <?php
        session_start();
        error_reporting(E_ALL);
        if (!empty($_SESSION["id"]) && isset($_SESSION["id"])) {
            echo "<div id='"user'">";
              echo "<h4>Utente: ".$_SESSION["name"] .$_SESSION["surname"] ."| <a href='"http:/...'">Logout</a></h4>";
            echo "</div>";
        }
    ?>

利用 isset() 构造

<?php
session_start();
error_reporting(E_ALL);
if(isset($_SESSION["id"]))
{
$id = $_SESSION["id"];
}
if(isset($_SESSION["name"]))
{
$name = $_SESSION["name"];
}
if(isset($_SESSION["surname"]))
{
$surname = $_SESSION["surname"];
}
if (!empty($id)) {
    echo "<div id='"user'">";
    echo "<h4>Utente: $name $surname | <a href='"http:/...'">Logout</a></h4>";
    echo "</div>";
}
?>