2013-02-05 84 views
0

我正在尋找一種方法來檢查用戶是否輸入了某些內容到登錄腳本中。我試過 if (!empty($_POST)) 但這種方法失敗。由於我是PHP新手,我不確定使用其他乾淨的方法。登錄帖子錯誤

<?php 
    if (!empty($post)){ 
    header("Location:login.php"); 
    echo"Invalid Username or Password"; 
    } 
?> 
<html> 
    <head> 
     <title>Administrator Login Page</title> 
     <style type="text/css"> 
      @import "style.css"; 
     </style> 
    </head> 
    <body> 
     <h1>Administrator Login Page</h1> 
     </br></br></br></br></br></br></br> 
     <form action="admin_verify.php" method="post"> 
      User Name: 
      <input type="text" name="admin_name" /> 
      </br></br> 
      Password:&nbsp;&nbsp; 
      <input type="password" name="admin_password" /> 
      </br></br> 
      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      <input type="submit" value="Login"/> 
      <input type="reset" value="Reset"/> 
     </form> 
    </body> 
</html> 

回答

0

而不是簡單地檢查表單是否填寫,您也可以檢查此頁面上的用戶名和密碼。如果您想將其保留至login.php,請將$_POST中的內容保存到$_SESSION

<?php 
if (!empty($_POST)){ 
    if (strlen($_POST["admin_name"]) > 0 && strlen($_POST["admin_password"]) > 0) { 
     header("Location:login.php"); 
     exit; 
    } else { 
     $not_filled = true; 
    } 
} 
?> 
<html> 
<head> 
<title>Administrator Login Page</title> 
<style type="text/css"> 
@import "style.css"; 
</style> 
</head> 
<body> 
<h1>Administrator Login Page</h1> 
</br></br></br></br></br></br></br> 
<?php if ($not_filled) echo"Invalid Username or Password"; ?> 
<form action="admin_verify.php" method="post"> 
User Name: <input type="text" name="admin_name" /> 
</br></br> 
Password:&nbsp;&nbsp; <input type="password" name="admin_password" /> 
</br></br> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <input type="submit" value="Login"/> 
    <input type="reset" value="Reset"/> 
</form> 
</body> 
</html> 
2

你應該把這個代碼admin_verify.phplogin.php

<?php 
    if (!empty($post)){ 
     header("Location:login.php"); 
     exit;   
    } 
?> 

更好的,你應該檢查所有字段中輸入或不

if(!isset($_POST['admin_name'], $_POST['admin_password'])) { 
    header("Location:login.php"); 
    exit; 
} 

,如果你想發送一些消息回登錄頁面,您可以發送該參數或使用會話

header("Location:login.php?msg=Invalid Username or Password"); 
exit; 
+0

謝謝VENU今天我就檢查了這一點,我喜歡消息部分將實現肯定 – user2033464

0

嘗試

if((isset($_POST['admin_name']) && isset($_POST['admin_password'])) 
{ 
    //INSTRUCTION 
} 
+1

可以簡化爲:isset(第一,第二)。也就是說,isset接受一個關於參數的變量。 – Aleph