我编写了一个注册表单,在每个输入都经过验证后,它会将一些数据发送到数据库并重定向到登录页面。
我想在登录页面上显示一条消息:注册成功 - 登录
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
答案 0 :(得分:2)
您执行header("Location")
重定向页面。这是可能的,但你想要添加一个参数,你可以检测到注册是否成功。类似的东西:
header( 'Location: ../login.php?action=success' );
而不是在你的文件中这样做:
if( $_GET['action'] == 'success' ) {
echo "thanks for you registration, log in here";
}
因为如果您重定向,当前的请求变量将无法在重定向的页面中使用。所以你需要将它们传递给下一个。
答案 1 :(得分:2)
显示输出后,您无法重定向到文件。您有两种备用解决方案:
在超时后刷新页面,同时使用<meta>
标记显示消息:
<meta http-equiv="refresh" content="5; url=../login.php">
重定向后输出消息:
<?php
header('Location: ../login.php?registered=true');
在login.php中:
<?php
if (@$_GET['registered'] == 'true')
echo 'You have registered successfully.'