1

重複の可能性:
PHP: 「通知: 未定義の変数」および「通知: 未定義のインデックス」

警告が表示されます。大事にしたいと思います。これが問題のコードです

if ($_REQUEST['login']) $user = $_REQUEST['login'];
elseif ($_COOKIE['user']) $user = $_COOKIE['user'];

if ($_REQUEST['encpas']) $pass = $_REQUEST['encpas'];
elseif ($_COOKIE['pass']) $pass = $_COOKIE['pass'];

if ($_REQUEST['randsess']) $sess = $_REQUEST['randsess'];
elseif ($_COOKIE['sess']) $sess= $_COOKIE['sess'];

それらを取り除く方法がわかりません。

ありがとう

4

3 に答える 3

6

変数をチェックして、値が設定されているかどうかを確認します。

if ( isset($_REQUEST['login']) ) { 
    $user = $_REQUEST['login'];
} elseif ( isset($_COOKIE['user']) ) {
    $user = $_COOKIE['user'];
}
于 2012-08-10T19:38:26.057 に答える
0

isset() を使用して、インデックスが true かどうかを確認する前に、インデックスが初期化されているかどうかを確認してください。 http://au.php.net/manual/en/function.isset.php

于 2012-08-10T19:40:01.903 に答える
0

array_key_exists または isset を使用する必要があります。いくつかのベンチマークによると、最後の方が高速です。

if( isset( $_REQUEST['login'] ) ) {
  $user = $_REQUEST['login'];
}

isset は NULL を値としてカウントしません。

次の理由から、これには注意してください。

index.php?login=&otherstuff

空の値でログインを設定します。しかし、それは設定されます。

于 2012-08-10T19:40:25.010 に答える