你好,希望有人能帮忙。
我正在尝试一个项目,这将是一个注册页面,当所有输入都填写完毕后,它就可以工作并插入并转到新页面 home.php 但是在执行空字段检查或使用电子邮件时检查我得到的是一个白页,错误报告已打开但没有显示错误。
谢谢。
if (isset($_POST["signup_submit"])) {
$email = mysqli_real_escape_string($conn, $_POST['email']);
$pwd = mysqli_real_escape_string($conn, $_POST["pwd"]);
$pwdRepeat = mysqli_real_escape_string($conn, $_POST["pwdRepeat"]);
$message = "";
if(empty($email) || empty($pwd) || empty($pwdRepeat)) {
$message = "All fields are required!";
exit();
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$message = "Please use a valid email!";
exit();
}
if ($pwd !== $pwdRepeat) {
$message = "Passwords do not match";
exit();
}
$sql = "SELECT email FROM Accounts WHERE email = ?;";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
$message = "stmt failed!";
exit();
}
mysqli_stmt_bind_param($stmt, "s", $email);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_num_rows($result);
if($row !== 0){
$message = "Email already used!";
exit();
}else{
$sql = "INSERT INTO Accounts (email, password, account_reg) VALUES (?, ?, ?);";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
$message = "stmt failed!";
exit();
}
$hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, "sss", $email, $hashedPwd, $time);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
header("location: home.php");
exit();
}
}
答案 0 :(得分:-1)
不要调用 exit();
方法。它只是终止了进程,这就是您看到空白页面的原因。如果您想显示错误消息然后终止进程,请改用 die('Error message');
。
答案 1 :(得分:-1)
您将 $message
设置为错误字符串,但没有显示它,即 echo $message;