php创建帐户页面,而不重定向到index.html

时间:2018-10-19 20:01:00

标签: php database html5 redirect header

此网站是针对船运公司的,用户可以在该船运公司中创建配件并获得  在另一个国家的虚拟邮箱。当用户创建一个帐户时,应该将他的信息发送到数据库,并且应该将其重定向到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. 

1 个答案:

答案 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等。

相关问题