2011-07-28 262 views
0

下面的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'],就像錯誤說。經常檢查使用它們之前可能會或可能不會被設置的變量是否存在:

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

提交按鈕比我快1秒:P – DaOgre

1

這意味着,$ _ POST [「密碼」]設置不正確。我不確定爲什麼,它看起來在你的代碼中找到。我只想看看它是否先設定然後看看它是否正確。

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

其次,你應該總是關閉您的HTML標籤,無論是輸入標籤的arent關閉,關閉它們,添加「/>」結尾,而不是僅僅「>」,例如:

<input name="password" type="password" /> 
<input name="send" type="submit" value="Log in!" />