1

可能重复:
PHP:“注意:未定义的变量”和“注意:未定义的索引”

我收到警告。我想照顾它。这是有问题的代码

if ($_REQUEST['login']) $user = $_REQUEST['login'];
elseif ($_COOKIE['user']) $user = $_COOKIE['user'];

if ($_REQUEST['encpas']) $pass = $_REQUEST['encpas'];
elseif ($_COOKIE['pass']) $pass = $_COOKIE['pass'];

if ($_REQUEST['randsess']) $sess = $_REQUEST['randsess'];
elseif ($_COOKIE['sess']) $sess= $_COOKIE['sess'];

我不知道如何摆脱它们。

谢谢

4

3 回答 3

6

检查您的变量以查看它们是否设置并具有值:

if ( isset($_REQUEST['login']) ) { 
    $user = $_REQUEST['login'];
} elseif ( isset($_COOKIE['user']) ) {
    $user = $_COOKIE['user'];
}
于 2012-08-10T19:38:26.057 回答
0

在检查索引是否为真之前,尝试使用 isset() 检查索引是否已初始化。 http://au.php.net/manual/en/function.isset.php

于 2012-08-10T19:40:01.903 回答
0

您应该使用 array_key_exists 或 isset。根据一些基准,最后一个更快。

if( isset( $_REQUEST['login'] ) ) {
  $user = $_REQUEST['login'];
}

isset 不将 NULL 计为值。

请注意这一点,因为以下原因:

index.php?login=&otherstuff

将使用空值设置登录。但它会被设置。

于 2012-08-10T19:40:25.010 回答