PHP错误:未定义的索引($ _POST变量)

时间:2013-09-29 17:04:05

标签: php post

我正在尝试使用同一页面中的表单和数据处理来创建PHP连接脚本,但是当我尝试使用我的代码时,我总是会遇到2个错误:

  

注意:未定义的索引:C:\ Users \ Simon \ Documents \ Site FTM \ connexion.php中的密码> 7

     

致命错误:在第18行的C:\ Users \ Simon \ Documents \ Site FTM \ connexion.php中的非对象上调用成员函数fetch()

据我所知,PHP在$ _POST中找不到名为'password'的索引,但我确信该表单是通向同一页面的(#)...有人可以帮助我吗?以下是PasteBin上的整个代码:http://pastebin.com/A9z1HHvf

抱歉,错误消息是法语,但所有其他变量名都是英文的。您只需要知道$ errDisplay用于存储我的所有自定义错误消息并将其显示在我的页面底部。

2 个答案:

答案 0 :(得分:4)

这一行存在问题:

$isFormOK = isset($_POST['username']) AND isset($_POST['password']);

ANDlower precedence而不是=,这就是为什么这一行的内容如下:

( $isFormOK = isset($_POST['username']) )
  AND isset($_POST['password']);

换句话说,无论$_POST['password']是否在脚本中,它的工作方式都相同 - 仅根据$isFormOk存在设置$_POST['username']值。

您应该做的是使用&&形式的布尔and(它的优先级高于=):

$isFormOK = isset($_POST['username']) && isset($_POST['password']);

......或者更好的是,只使用isset可以使用多个参数的事实:

$isFormOK = isset($_POST['username'], $_POST['password']);

引用the doc

  

如果提供了多个参数,则isset()将仅返回TRUE   如果设置了所有参数。评估从左到右   并在遇到未设置的变量时立即停止。

答案 1 :(得分:-1)

if(isset($_REQUEST['password'])){
$pass = $_REQUEST['password'];
}

现在您可以使用$pass,因为它包含要发布的值。

相关问题