注册后重定向至主页


Redirect to homepage after registration

注意:这个问题并不像标题所说的那么简单。然而,由于我想不出更好的东西,我键入了我认为最接近我的问题的内容

我有一个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();