0

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

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

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

我知道 PHP 在 $_POST 中找不到名为“密码”的索引,但我确定该表单会指向同一页面 (#)... somebosy 可以帮助我吗?这是 PasteBin 上的完整代码:http: //pastebin.com/A9z1HHvf

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

4

2 回答 2

4

这条线是有问题的:

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

AND优先级低于=,这就是为什么这一行如下所示:

( $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']);

引用文档

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

于 2013-09-29T17:09:12.900 回答
-1
if(isset($_REQUEST['password'])){
$pass = $_REQUEST['password'];
}

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

于 2013-09-29T17:06:38.340 回答