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

时间:2013-11-17 15:07:49

标签: php syntax-error

<?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>";
}
?>

问题:

  

注意:未定义索引:第4行中的id ...   注意:未定义的索引:在第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或   在第7行的T_VARIABLE或T_NUM_STRING

为什么?

3 个答案:

答案 0 :(得分:3)

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

$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;

答案 1 :(得分:0)

使用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>";
}
?>

答案 2 :(得分:0)

对于解析错误:语法错误,意外,您可以使用

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>";
        }

    ?>