2

当我输出这段代码时,

23  if(!isset($_POST['user'])) {
24    $user = $_POST['user'];
25    $user2 = $user;
26    $pass[0] = $_POST['password'];
27    $pass[1] = $_POST['password2'];
28    $email[0] = $_POST['email'];
29    $email[1] = $_POST['email2'];
30    $agree = $_POST['agreed'];
31    $reprint['user'] = $user;
32    $reprint['password'] = $pass[0];
33    $reprint['email'] = $email[0];
34    $reprint['agree'] = $agree;

它返回

Notice: Undefined index: user in C:\Program Files\EasyPHP-5.3.6.0\www\Arena\create_account.inc on line 24
Notice: Undefined index: password in C:\Program Files\EasyPHP-5.3.6.0\www\Arena\create_account.inc on line 26
Notice: Undefined index: password2 in C:\Program Files\EasyPHP-5.3.6.0\www\Arena\create_account.inc on line 27
Notice: Undefined index: email in C:\Program Files\EasyPHP-5.3.6.0\www\Arena\create_account.inc on line 28
Notice: Undefined index: email2 in C:\Program Files\EasyPHP-5.3.6.0\www\Arena\create_account.inc on line 29

请注意,第 23 行没有错误,因此 isset() 始终返回 true;当我的所有 $_POST[] 实际设置时,我没有收到任何错误。您可能无法重现这一点;它可能只是 EasyPHP。我现在正在使用最新的 EasyPHP,使用 PHP 5.3.6 VC9。所有版本的 EasyPHP 一直都有这个问题......所以我不确定是否有“更好”的语法或阻止 EasyPHP 显示这些错误的方法。

4

4 回答 4

7

你是说如果没有$_POST['user']设置。尝试删除否定运算符。!

// if user key has *not* been set
if(!isset($_POST['user'])) {
    $user = $_POST['user']; // undefined index because there is no 'user' key


if(isset($_POST['user'])) {
    $user = $_POST['user']; // no problems here
于 2011-04-16T00:31:39.727 回答
0

你试过了吗:

if (isset($_POST['user'])) {

!isset 表示如果未设置。

于 2011-04-16T00:32:48.713 回答
0

isset() 如果设置了变量,则返回 true,否则返回 false。当前逻辑仅在 $_POST['user'] 未设置时执行。这是故意的吗?

在我看来,您需要删除您的 not 运算符。

于 2011-04-16T00:32:50.090 回答
0
error_reporting(E_ALL ^ E_NOTICE);

:)

我觉得你应该isset换成!empty...

!empty($_POST["user"])
于 2011-04-16T00:35:05.170 回答