我想你要找的是一個叫做模型 - 視圖 - 控制器(MVC)的框架。在你的情況下,你的表單是「視圖」,處理數據的腳本是「控制器」,那麼控制器可以選擇向用戶顯示哪些內容(錯誤信息或其他頁面包含成功信息)。但是MVC比這更復雜一點。如果你想學習MVC,閱讀一些文章並選擇使用CakePHP,CodeIgniter,Zend框架等等的MVC框架。
如果你正在學習PHP的基礎知識,你可能不希望開始使用一個框架,在這種情況下,你可以做這樣的事情(登錄示例):
的login.php
<?php
$error = "";
$username = "";
$password = "";
//POST method used. The user is trying to login
if(isset($_POST))
{
$username = $_POST["username"];
$password = $_POST["password"];
//process login here
//check database
if($success == true)
{
header('Location: home.php') ;
}
else
{
include "login-view.php";
$error = "Either username or password is incorrect.";
}
}
else //GET method used. The user visits the login page
{
include "login-view.php";
}
?>
登錄-view.php
<p><?php echo $error; ?></p>
<form method="post" action="login.php">
<input type="text" name="username" value="<?php echo $username ?>" />
<input type="password" name="password" />
<input type="submit" value="send" />
</form>
鱈魚e上面是這樣的:
1)用戶訪問登錄頁面。 login.php將檢測到使用的方法是GET - 鎖定鏈接,打開書籤或輸入URL到地址欄。 login.php然後將包含包含表單的登錄視圖。
2)用戶鍵入他的用戶名和密碼,然後單擊提交按鈕。 login.php會檢測到請求是POST,然後驗證用戶名和密碼,並在必要時提供錯誤消息。如果有效,則重定向到主頁,如果沒有,則包括login-view.php(表單),這次是錯誤消息和以前輸入的用戶名。
來源
2012-09-15 07:14:44
dpp
*(提示)*搜索「POST REDIRECT GET pattern」。 – Gordon
相關:http://stackoverflow.com/questions/10827242/understanding-post-redirect-get –