2011-07-28 14 views
0

をリダイレクト - お知らせ:未定義のインデックス:I以下は、パスワードPHPログインし、次のPHPコードが間違ったパスワードを入力する前にエラーをエコーし​​ています

<?php 
    //Specify password here 
    $pass='pass'; 
    if($_POST['password']!=$pass) 
    { 
     echo ("<div class='errmg'>Error</div>"); 
    } 
    else 
    { 
     header('Location: admin.php') ; 
    } 
?> 

を助けてください、次のHTML

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
      Enter password: 
      <input name="password" type="password"> 
      <input name="send" type="submit" value="Log in!"> 
     </form> 

をしましたこれらのエラーを修復してこのログインリダイレクトを改善するには

答えて

4

フォームを提出していない場合、$_POSTは空ですので、$_POST['password']はありません。エラーは言う。これは、$ _POSTは、[「パスワードは」]正しく設定されていないことを意味

if (isset($_POST['password'])) { 
    if ($_POST['password'] == $pass) { 
     header(…); 
    } else { 
     // error 
    } 
} 
+0

送信ボタンの1秒間が私より速い:P – DaOgre

1

:常にか設定してもしなくてもよいの変数は、それらを使用する前に存在するかどうかを確認してください。私はなぜあなたのコード内に見えるか分からない。私はそれが最初に設定されているかどうかを確認し、それが正しいかどうかを確認します。

if(isset($_POST['password']) { 
    if($_POST['password'] != $pass) { 
     echo "<div class='errmg'>Error</div>"; 
    } else { 
     header('Location: admin.php'); 
    } 
} 

第二に、あなたは常にあなたのhtmlタグを閉じる必要があり、両方のあなたのinputタグは「/>」終わりではなく、単なるを追加し、それらを閉じるために、閉じアレント「>」そうのような:

<input name="password" type="password" /> 
<input name="send" type="submit" value="Log in!" /> 
関連する問題