2016-04-29 72 views
0

注册人员时出现问题。我已经尝试登录,它完美的工作。未将数据插入到XAMPP数据库中

脚本数据库

 
CREATE TABLE userinfor (
    userid INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    name VARCHAR(25) NOT NULL, 
    password VARCHAR(15) NOT NULL, 
    email VARCHAR(35) NOT NULL 
); 

PHP代码

$emailErr = $passMismatch = ""; 
if(isset($_POST['submit'])){ 
    if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     $name = $_REQUEST['name']; 
     $pwd = $_REQUEST['password']; 
     $cpwd = $_REQUEST['cpassword']; 
     $email = $_REQUEST['email']; 

     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
      $emailErr = "ERROR::Invalid E-Mail Format"; 
     } else $emailErr = ""; 

     if ($pwd != $cpwd) { 
      $passMismatch = "ERROR::Passwords Don't Match"; 
     } else $passMismatch = ""; 

     $host = "localhost"; 
     $username = "root"; 
     $password = ""; 
     $database = "ontheway"; 

     $conn = mysqli_connect($host, $username, $password, $database); 

     if (empty($emailErr) && empty($passMismatch)) { 
      $sql = "INSERT INTO userinfo (userid, name, password, email) 
        VALUES (NULL, $name', $pwd', '$email')"; 


      $result = mysqli_query($conn, $sql); 
      if (!$result) { 
       echo "chala nahi query"; 
      } 

      if ($result) { 
       session_start(); 
       $_SESSION['name'] = $name; 
       $_SESSION['pass'] = $pass; 

       header("location: home.php");  
      } 
     } 
    } 
} 

我想呼应的问题,但我无法找到任何,$名称,$ PWD,$ CPWD,$电子邮件都得到回应。即使这些错误也正在完美地显示在表格上。数据库也正在连接。什么似乎是问题?请帮助:)

我总是得到“chala nahi查询”,这意味着查询SQL不会工作,每次我运行这个。

表单代码

名称:

      <input type="text" name="name" /> <br /> 

          <p>Password: </p> 
          <input type="password" name="password" /> <br /> 
          <?php echo '<h1>'.$passMismatch.'</h1>'; ?> 

          <p>Confirm Password: </p> 
          <input type="password" name="cpassword" /> <br /> 

          <p>Email: </p> 
          <input type="email" name="email" /> <br /> 
          <?php echo '<h1>'.$emailErr.'</h1>'; ?> 

          <input type="submit" name="submit" /> 

回答

1

周围的变量还缺少引号无需插入userid,因为它已经是autoincremented

$sql = "INSERT INTO userinfo (`name`, `password`, `email`) 
        VALUES ('".$name."', '".$pwd."', '".$email."')"; 
+0

耶第一,我没有插入的用户ID,但由于它不工作我想也许这可能是问题。队友的欢呼声 :) –

1

你缺少围绕$名称查询和$ PWRD变量在查询 - 它应该是一个单引号;

$sql = "INSERT INTO userinfo (userid, name, password, email) 
        VALUES (NULL, '$name', '$pwd', '$email')"; 

您应该研究PDO和绑定参数 - 更安全。此外 - 你应该消毒输入,你应该只有一个H1元素在你的页面上。