PHP未定义索引已定义

时间:2014-04-30 12:53:40

标签: php session indexing

我正在学习如何用PHP创建会话,但是陷入了sintax问题,我找到的解决方案到处都找不到。

<?php
session_start();
unset($_SESSION['nome']);
?>
<html>
    <head><title>Finalizando uma Sessão</title></head>
    <body>
        A variável <?php echo $_SESSION['nome']?> foi finalizada.
    </body>
</html>

它表示索引'nome'未定义。我已经使用'nome'来修改并恢复其他2页的会话。

2 个答案:

答案 0 :(得分:1)

您使用unset功能。该函数用于取消设置变量。 要创建会话,您需要执行以下操作:

$_SESSION['nome'] = 'Msalvatori'

<?php
session_start();
$_SESSION['nome'] = 'Msalvatori'
?>
<html>
    <head><title>Finalizando uma Sessão</title></head>
    <body>
        A variável <?php echo $_SESSION['nome']?> foi finalizada.
    </body>
</html>

答案 1 :(得分:0)

您收到未定义错误消息的原因是:

您有unset 'ted 会话名称然后您正在尝试回应它,因此您的代码(奇怪的)已完成其工作。使用isset()检查它是否已设置,然后回显它。

使用条件isset语句查看以下内容。

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
session_start();

unset($_SESSION['nome']);
?>

<html>
    <head><title>Finalizando uma Sessão</title></head>
    <body>
        A variável <?php // echo $_SESSION['nome']; 
        if (isset($_SESSION['nome'])){ 
        echo $_SESSION['nome']; 
        } else{ echo "Session is not set";} ?> foi finalizada.
    </body>
</html>

如果您不想在其位置回显“未设置会话”,只需执行以下操作:

echo "\n";

你也可以这样做:

<?php 
    if (isset($_SESSION['nome'])){ 
        echo $_SESSION['nome']; 
    } 

    else{ 
    $_SESSION['nome'] = "John";

        echo $_SESSION['nome'];
    }
?>

如果来自POST变量,你可以这样做:

<?php 
// $_POST['nome'] = "John";

$name = $_POST['nome'];

if (isset($_SESSION['nome'])){ 
echo $_SESSION['nome']; 
} else{ 

$_SESSION['nome'] = $_POST['nome'];
echo $_SESSION['nome'];

}
?>