注意:这个问题并不像标题所说的那么简单。然而,由于我想不出更好的东西,我键入了我认为最接近我的问题的内容
我有一个html页面(让我们称之为firstpage
),它有两个表单(由于表单处理是通过php进行的,所以它基本上是一个php页面)。页面的php代码如下所示。一个表单用于注册用户登录,另一个表单则用于注册新用户。在多个在线教程之后,我遵循了使用method="post" action="<?php echo $_SERVER['PHP_SELF']?>"
将表单提交到页面本身的过程。然而,由于我对这两种表格都这样做,我现在有以下问题:
1.在注册期间检查新用户的各种约束的php文件在我加载firstpage
时立即执行,理想情况下,只有当用户填写表单并点击注册时才执行。因此,在加载firstpage
时总是显示一堆php消息字符串
2.我不知道如何重定向到主页,这是当新注册成功完成时以及注册用户登录时应该出现的页面。任何帮助都将非常有用。用于检查注册用户的php脚本位于此处
对于条件1
&2
,遵循此
1
替换中的if
语句
if (($_SERVER['REQUEST_METHOD'] == 'POST') && (!empty($_POST['action']))):
至
if (($_SERVER['REQUEST_METHOD'] == 'POST') && isset($_POST['action']) && (!empty($_POST['action']))):
//Assuming $_POST['action'] is the name of your submit button.
2
使用header
重定向到特定页面
像这样的
if(isset( $_SESSION['userid'] ))
{
$message = 'Users is already logged in';
header("location:profile.php");
exit;
}
对于1。绕过这一点的通常方法是使用布尔变量来跟踪每个字段(例如isEmailValid
)的有效性,这些字段在提交表单之前默认设置为true。
$isEmailValid = true;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$isEmailValid = false;
function verifyEmail($email);
}
至于你的第二个问题,在完成所有检查并将新用户的记录存储到数据库中后,你可以只进行
header('Location: index.php');
exit();