if!isset$ _ POST [“ user”]被忽略并返回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 []都没有设置任何错误。您可能无法重现此内容。可能只有EasyPHP。我现在使用的是最新的EasyPHP,以及PHP 5.3.6 VC9。我一直在所有版本的EasyPHP上都遇到这个问题...因此,我不确定是否存在“更好的”语法或防止EasyPHP显示这些错误的方法。     

解决方法

您是在说是否未设定been2ѭ。尝试删除否定运算符
!
// 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 \']时,当前逻辑才会执行。这是故意的吗? 在我看来,您需要删除您的not运算符。     ,
error_reporting(E_ALL ^ E_NOTICE);
:) 我认为您应该将
isset
更改为
!empty
...
!empty($_POST[\"user\"])
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...