PHP表单 - 在新页面上注册成功消息

时间:2014-02-09 14:25:31

标签: php redirect login registration

我编写了一个注册表单,在每个输入都经过验证后,它会将一些数据发送到数据库并重定向到登录页面。

我想在登录页面上显示一条消息:注册成功 - 登录

if (!validated() {
    // post error messages

} else {
    echo '
       <div class="container">
        <div class="page-header">
            <h3>Registration Complete</h3>
        </div>
       </div>';

    header( 'Location: ../login.php' );
}

登录文件:

Header - Navbar

<div class="container">
   <div class="page-header">
       <h3>Login To Members Corner</h3>
   </div>

   <form>
       // login form
   </form>

Footer

2 个答案:

答案 0 :(得分:2)

您执行header("Location")重定向页面。这是可能的,但你想要添加一个参数,你可以检测到注册是否成功。类似的东西:

header( 'Location: ../login.php?action=success' );

而不是在你的文件中这样做:

if( $_GET['action'] == 'success' ) {
    echo "thanks for you registration, log in here";

}

因为如果您重定向,当前的请求变量将无法在重定向的页面中使用。所以你需要将它们传递给下一个。

答案 1 :(得分:2)

显示输出后,您无法重定向到文件。您有两种备用解决方案:

  1. 在超时后刷新页面,同时使用<meta>标记显示消息:

    <meta http-equiv="refresh" content="5; url=../login.php">
    
  2. 重定向后输出消息:

    <?php 
    header('Location: ../login.php?registered=true');
    

    在login.php中:

    <?php
    if (@$_GET['registered'] == 'true')
        echo 'You have registered successfully.'