<?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
为什么?
答案 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>";
}
?>