if(!isset($_POST[“user”])被忽略并返回Undefined Index


if(!isset($_POST["user"]) ignored and returns Undefined Index

当我输出此代码时,

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[]都被实际设置时,我不会得到任何错误。你可能无法复制这个;它可能只是EasyHP。我现在正在使用最新的EasyHP,使用PHP 5.3.6 VC9。我对EasyHP的所有版本都有这个问题。。。因此,我不确定是否有"更好"的语法或防止EasyHP显示这些错误的方法。

您是说$_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

你尝试过吗:

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

!isset的意思是如果没有设置。

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

在我看来,你需要删除你的非操作员。

error_reporting(E_ALL ^ E_NOTICE);

:(

我认为你应该把isset改成!empty。。。

!empty($_POST["user"])