我认为您正在寻找的是一个名为 Model-View-Controller (MVC) 的框架。在您的情况下,您的表单是“视图”,处理数据的脚本是“控制器”,然后控制器可以选择向用户(视图)显示什么,这是带有错误消息的表单或带有成功消息的其他页面。但是 MVC 比这要复杂一些。如果您想学习 MVC,请阅读一些文章并选择使用 MVC 框架,例如 CakePHP、CodeIgniter、Zend 框架等。
如果您正在学习 PHP 的基础知识,您可能不想开始使用框架,在这种情况下,您可以执行以下操作(登录示例):
登录.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>
上面的代码是这样的:
1)用户访问登录页面。login.php 将检测到所使用的方法是 GET——点击链接、打开书签或输入 URL 到地址栏。login.php 然后将包含包含表单的登录视图。
2)用户输入他的用户名和密码,然后单击提交按钮。login.php 将检测到请求是 POST,然后验证用户名和密码,并在必要时提供错误消息。如果有效,则重定向到主页,如果无效,则包括 login-view.php(表单),这次包含错误消息和之前输入的用户名。