0

同じページでフォームとデータ処理を行う PHP 接続スクリプトを実行しようとしていますが、コードを試すと常に 2 つのエラーが発生します。

Notice: Undefined index: password in 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 は、すべてのカスタム エラー メッセージを保存し、ページの下部に表示するために使用されることを知っておく必要があります。

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 に答える