登入頁帳號密碼錯誤提示


<?
session_start();

//判斷$_SESSION['member']是否存在或者為空值
if (!isset($_SESSION['member']) || ($_SESSION['member'] == ' ') ){

//判斷帳號密碼是否存在
if(isset($_POST['account']) && isset($_POST['password']) ){
//預設帳號密碼
$account = 'test';
$password = '123';

//判斷輸入的帳號密碼是否符合預設,符合則將account存入$_SESSION[member]中
if( ($_POST['account'] == $account) && ($_POST['password'] == $password) ){
$_SESSION['member'] = $account;
//轉入管理頁
header ('Location: admin.php');
}
}
}

//執行登出
//如果$_GET['logout']存在且有值,則刪除session並轉回首頁
if(isset($_GET['logout']) && ($_GET['logout'] == 'true') ){
unset($_SESSION['member']);
//轉回登入頁
header ('Location: login.php');
}

?>

<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
<title> login</title>
</head>
<body>
<h1>login</h1><br>
<h3>Q5:登入頁</h3>

<?
//判斷session是否存在
if (!isset($_SESSION['member']) || ($_SESSION['member'] == ' ') ){
?>
<!-- 帳號密碼登入表單 Start -->
<form id=\"form1\" name=\"form1\" method=\"POST\" action=\"admin.php\">
<table width=\"300\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\" bgcolor=\"#F2F2F2\">
<tr>
<td colspan=\"2\" align=\"center\" bgcolor=\"#CCCCCC\"><font color=\"#FFFFFF\">新聞管理系統</font></td>
</tr>
<tr>
<td width=\"80\" align=\"center\" valign=\"baseline\">帳號</td>
<td valign=\"baseline\"><input type=\"text\" name=\"account\" id=\"account\" ></td>
</tr>
<tr>
<td width=\"80\" align=\"center\" valign=\"baseline\">密碼</td>
<td valign=\"baseline\"><input type=\"password\" name=\"password\" id=\"password\" ></td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\" bgcolor=\"#CCCCCC\">
<input type=\"submit\" name=\"button\" id=\"button\" value=\"登入\" >
<input type=\"reset\" name=\"button2\" id=\"button2\" value=\"重設\" ></td>
</tr>
</table>
</form>
<!-- 帳號密碼登入表單 End -->
<?
}else if($_POST[\"account\"]!=$account || $_POST[\"password\"]!=$password){
?>
<form id=\"form1\" name=\"form1\" method=\"POST\" action=\"admin.php\">
<table width=\"300\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\" bgcolor=\"#F2F2F2\">
<tr>
<td colspan=\"2\" align=\"center\" bgcolor=\"#CCCCCC\"><font color=\"#FFFFFF\">新聞管理系統</font></td>
</tr>
<tr>
<td width=\"80\" align=\"center\" valign=\"baseline\">帳號</td>
<td valign=\"baseline\"><input type=\"text\" name=\"account\" id=\"account\" ></td>
</tr>
<tr>
<td width=\"80\" align=\"center\" valign=\"baseline\">密碼</td>
<td valign=\"baseline\"><input type=\"password\" name=\"password\" id=\"password\" ></td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\" bgcolor=\"#FFCCCC\">
<font color=\"red\">帳號或密碼錯誤,請重新輸入!</font>
</td>
</tr>
<tr>
<td colspan=\"2\" align=\"center\" bgcolor=\"#CCCCCC\">
<input type=\"submit\" name=\"button\" id=\"button\" value=\"登入\" >
<input type=\"reset\" name=\"button2\" id=\"button2\" value=\"重設\" ></td>
</tr>
</table>
</form>
<?
}else{
//轉入管理頁
header ('Location: admin.php');
}
?>


</body>
</html>


登入頁面判斷帳號密碼正確可以直接轉入admin頁面
但是帳號密碼輸入錯誤時的提示訊息試了好幾種方法都不行
包含將帳號密碼錯誤也存為session=no,if判斷session=no就顯示提示帳號密碼錯誤的登入表單頁
但是沒有反應,完全不會去呼叫帳號密碼錯誤的登入表單頁

其他阿哩阿雜的方法也試過很多,但是都一樣有各種問題
不知到這個部分到底該怎麼改呢?

評論


  • //判斷輸入的帳號密碼是否符合預設,符合則將account存入$_SESSION[member]中
    if( ($_POST['account'] == $account) && ($_POST['password'] == $password) ){
    $_SESSION['member'] = $account;
    //轉入管理頁
    header ('Location: admin.php');
    }

    當帳號密碼 (有輸入) 且 (正確) 時, 才會有$_SESSION['member']這個參數
    當帳號密碼 (有輸入) 且 (錯誤) 時, 不會有$_SESSION['member']這個參數


    if (!isset($_SESSION['member']) || ($_SESSION['member'] == ' ') ){

    }else if($_POST[\\"account\\"]!=$account || $_POST[\\"password\\"]!=$password){

    }

    所以, 只會進入到第一個if條件式裡面, 不會跳到第二個if條件式, 這邊的條件式做修改即可
  • 謝謝大大的回覆,抱歉現在才看到^^"

    使用session是否存在來判斷該顯示哪個登入畫面的方法,其實我之前也有試過了
    但還是一樣的情況

    大大提供的方法,我剛才也試過,還是一樣....
    即使帳號或密碼錯誤,也不會出現提示帳號密碼錯誤的訊息.....
  • 邏輯問題,列出你的邏輯順序
    1. session 不存在 =>登入頁
    2. session 不存在 and 帳密不正確 => 錯誤訊息+登入頁
    3. 以上都不是登入

    看到你的問題了嗎?
Sign In or Register to comment.