我正在尝试使用同一页面中的表单和数据处理来创建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用于存储我的所有自定义错误消息并将其显示在我的页面底部。
答案 0 :(得分:4)
这一行存在问题:
$isFormOK = isset($_POST['username']) AND isset($_POST['password']);
AND
有lower 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
,因为它包含要发布的值。