如何创建一个SESSION变量而不给它一个值? [PHP]

时间:2015-01-13 14:04:04

标签: php session

基本上我的问题如下:

我正在尝试创建一个会话变量 这样就可以发生这样的事情

if(username == false) 
{
  $_SESSION['error messages'] = 'username missing';
}

问题在于,虽然没有错误,但我希望$ _SESSION ['错误消息']为空。 但如果我不做这样的事情:

$_SESSION['error messages'] = 'garbage';
if(username == false) 
{
  $_SESSION['error messages'] = 'username missing';
}

它表示$ _SESSION ['错误消息']未定义

在需要之前,如何将此变量设为空?

谢谢

5 个答案:

答案 0 :(得分:2)

使用以下代码

if(username==false) {
    $_SESSION['error messages']='username missing';
}

希望这有助于你

答案 1 :(得分:2)

首先,为了保存错误消息,请使用以下命令:

if (empty($username)) {
    $_SESSION['error messages'][] = 'username missing';
}

保留一组错误消息更好。这样,如果你有多个错误,你可以轻松地循环它们,计算它们,等等。

然后,当您想要显示错误消息时,请执行以下操作。

if (isset($_SESSION['error messages']) && is_array($_SESSION['error messages'])) {
  foreach ($_SESSION['error messages'] as $errorMessage) {
     // Do something with the error message, for instance:
     printf ("The following error occured: <em>%s</em><br>", $errorMessage);
  }

  // Next, clear the error messages so that they do not pop up on the next page request.
  unset($_SESSION['error messages']);
}

isset()中包含使用$_SESSION['error messages']的代码,确保您不会收到有关未定义索引的错误消息。

答案 2 :(得分:2)

像这样初始化你的会话变量

$_SESSION['error messages'] = null;
if($username == false) {
    $_SESSION['error messages'] = 'username missing';
}

您可以启动任何其他类型的变量,而不仅仅是会话变量

答案 3 :(得分:2)

要检查$_SESSION['error message']是否已设置,请使用此:

if(!isset($_SESSION['error message'])){
    $_SESSION['error message'] = '';
}
如果尚未设置,

将创建一个空的会话变量。

您可能在代码中某处访问此会话变量,而您需要它,因此只有在您执行此操作时才能访问该变量需要它,到处都是空的变量并不是真的很好。

您最好更改代码,以便不会尝试访问未设置但也不需要的内容,而不是将空变量设置为&#34; hack&#34 ;你的代码是如此有用。

答案 4 :(得分:1)

尝试

$_SESSION['error messages'] = 'garbage';
if(username == false) 
{
  $_SESSION['error messages'] = 'username missing';
}

你错过了==如果有条件的话。

相关问题