此网站是针对船运公司的,用户可以在该船运公司中创建配件并获得 在另一个国家的虚拟邮箱。当用户创建一个帐户时,应该将他的信息发送到数据库,并且应该将其重定向到dashboard.html。但是,当填写了创建帐户表单并按下提交按钮时,应该将用户重定向到索引.html,但页面不会重定向。并且即使有php错误报告也没有错误,请帮忙。
<?php
session_start();
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
error_reporting(E_ALL);
ini_set('display_errors', 1);
if(isset($_POST['submit'])){
//check if variables are empty
if (!empty($firstname) || !empty($lastname) || !empty($email) ||
!empty($confirmemail) ||
!empty($password) || !empty($confirmpassword) ||
!empty($phonenumber) || !empty($address) || !empty($city) ||
!empty($parish) || !empty($trn) )
{
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email= $_POST['email'];
$confirmemail = $_POST['confirmemail'];
$password = $_POST['password'];
$confirmpassword = $_POST['confirmpassword'];
$phonenumber = $_POST['phonenumber'];
$address= $_POST['address'];
$city = $_POST['city'];
$parish = $_POST['parish'];
$trn = $_POST['trn'];
$DB_NAME= "ship2yaad";
$DB_USER="root";
$DB_PASSWORD="";
$DB_HOST= "localhost";
//create connection
$conn= new mysqli("$DB_HOST", "$DB_USER", "$DB_PASSWORD","$DB_NAME");
if (mysqli_connect_error()) {
die('Connect Error('. mysqli_connect_errno().')'.mysqli_connect_error());
}
$SELECT = "SELECT email From usersdb Where email = ? Limit 1";
$INSERT = "INSERT Into usersdb (firstname , lastname , email
,confirmemail , password , confirmpassword , phonenumber, address,
city, parish ,trn)
values(?,?,?,?,?,?,?,?,?,?,?)";
//Prepare statement
# code...
$stmt = $conn->prepare($SELECT);
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->bind_result($email);
$stmt->store_result();
$rnum = $stmt->num_rows;
if ($rnum==0) {
$stmt->close();
$stmt = $conn->prepare($INSERT);
// prepare and bind
$stmt->bind_param("ssssssisssi", $firstname, $lastname, $email,
$confirmemail, $password, $confirmpassword ,$phonenumber,
$address, $city, $parish , $trn);
//binds the parameters to the SQL query and tells the database what the
parameters are
$stmt->execute();
$stmt->close();
$conn->close();
header('Location:dashboard.html');
}
?>
the database credentials are correct im 100% sure of it. PLus im not getting a sql connect error.
答案 0 :(得分:0)
您的代码中有一些问题;
1。重复定义
ini_set('display_errors', 'On'); // useless because its overwritten
error_reporting(E_ALL | E_STRICT); // uselesss again
ini_set('display_errors', 1); // repeat
error_reporting(E_ALL); // repeat
不再重复。选择一个并坚持下去。
2。循环关闭不正确
没有很多右括号,导致难以调试。
3。问题的根本原因。
错误使用代码注释。
//Prepare statement
# code...
单行注释以//
开头,顾名思义,应在同一行结束。
# code
在代码中(上面的代码段)在另一行。 br />
如果您希望使用多行注释,则正确的语法是
/* Multi
Line
Comment */
这也发生在这里
//binds the parameters to the SQL query and tells the database what the
parameters are
注意代码颜色的差异↑
我的建议 -
使用提供PHP支持并突出显示语法的IDE。
Atom,Visual Studio Code,PhpStorm等。