注册成功后,我的用户将被重定向到主页:
echo
"<script type=\"text/javascript\">
window.location.href='../index.php';
</script>";
我需要遵循这个吗?
exit();
或者正在重定向用户?
[编辑]帮助解决如何在同一个php文件中使用die()/ exit()和javascript
jQuery的:
$(document).ready(function() {
$("form").submit(function(event) {
event.preventDefault();
var username = $("#register-username").val();
var email = $("#register-email").val();
var password = $("#register-password").val();
var confirmPassword = $("#register-confirm-password").val();
var submit = $("#register-submit").val();
$(".form-message").load("../shared/_registerAccount.php", {
username: username,
email: email,
password: password,
confirmPassword: confirmPassword,
submit: submit
});
});
});
PHP脚本结束(成功路径):
else
{
$errorEmpty = $errorUsername = $errorEmail = $errorPassword = $errorConfirmPassword = false;
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($statement, "sss", $username, $email, $hashedPassword);
mysqli_stmt_execute($statement);
session_start();
$_SESSION['register-success'] = 'You have successfully registered! Please verify your email before logging in.';
$registrationSuccessful = true;
die('<script type="text/javascript">location.assign("../index.php")</script><a href="../index.php">Home</a>');
}
在同一个文件中跟随PHP脚本的jQuery:
<script type="text/javascript">
var registrationSuccessful = "<?php echo $registrationSuccessful; ?>";
if (registrationSuccessful)
{
$("#register-username, #register-email, #register-password,
#register-confirm-password").val("");
}
</script>
您假设JavaScript将始终在所有用户浏览器上可用(或启用)。我会建议使用本机header
PHP函数:
die(header("Location: ../index.php"));
或者,如果这不可能(无论出于何种原因),至少在未启用JavaScript的情况下为用户提供替代方法:
die('<script type="text/javascript">location.assign("../index.php")</script><a href="../index.php">Home</a>');
我推荐exit()
,如果重定向后还有其他代码。如果你没有任何代码,那么你不必。如果你在exit
之前使用任何警报,那么使用refresh
保持页面,否则警告消息在几分之一秒。