表单提交上的空白白页

时间:2021-03-02 22:27:09

标签: php mysqli

你好,希望有人能帮忙。

我正在尝试一个项目,这将是一个注册页面,当所有输入都填写完毕后,它就可以工作并插入并转到新页面 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();

}
  
}

2 个答案:

答案 0 :(得分:-1)

不要调用 exit(); 方法。它只是终止了进程,这就是您看到空白页面的原因。如果您想显示错误消息然后终止进程,请改用 die('Error message');

答案 1 :(得分:-1)

您将 $message 设置为错误字符串,但没有显示它,即 echo $message;

相关问题