2016-04-19 42 views
-2

我想用php和mysql创建一个用户注册表单。当我尝试点击提交按钮时,没有新记录添加到我的数据库中。该数据库是功能性的,并已与其他形式。为什么我的用户注册表不能正常工作?

HTML/FORM

<?php 
include 'header.php'; 
?> 
    <section> 
     <div class="form"> 
      <form action="signup.php" method="post"> 
       <h1> Sign Up!</h1> 

       <p>First name: 
        <input type="text" name="fName" maxlength="15" required pattern="^[a-zA-Z]{3,20}$" placeholder="Enter Name" /> 
       </p> 

       <p>Last name: 
        <input type="text" name="lName" maxlength="15" pattern="^[a-zA-Z]{3,20}$" required placeholder="Enter Last Name" /> 
       </p> 

       <p>Email: 
        <input type="email" name="email" maxlength="40" required placeholder="Enter Email" /> 
       </p> 

       <p>Username: 
        <input type="text" name="username" maxlength="20" ^[A-Za-z0-9_]{1,15}$ required placeholder="Enter Username" /> 
       </p> 

       <p>Password: 
        <input type="password" name="password" maxlength="20" pattern="(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$" required placeholder="Enter Password" /> 
       </p> 

       <p>Re-type Password: 
        <input type="password" name="password2" maxlength="20" pattern="^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$" required placeholder="Re-type Password" /> 
       </p> 

       <p> 
        <button type="submit" name="signupbutton"> Sign up </button> 
       </p> 
      </form> 
     </div> 
    </section> 

<div class="footerspecial"> 
    <?php 
include 'footer.php'; 
?> 
</div> 

PHP/SQL

<?php 

//have they submitted at least once? 
if(isset($POST['$password2'])){ 
    $fName = $_POST['fName']; 
    $lName = $_POST['lName']; 
    $username = $_POST['username']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 
    $password2 = $_POST['password2']; 
    //do the passwords NOT match? 
     if ($password !== $password2) {//do string comparison here 
       echo'<h2>Error: passwrods don\'t match!</h2>'; 
       require ('registerform.php'); 
     } 
    else { 
      //does the username already exist? 
      $sql = mysql_query("SELECT * FROM users WHERE username=='$username'"); 
     if ($results=$con->query($sql)){ 
       echo'<h2>Error: username is already taken</h2>'; 
       require ('registerform.php'); 
     } 
     else { 

      $sql = mysql_query("SELECT * FROM users WHERE email=='$email'"); 
     if ($results=$con->query($sql)){ 
      echo'<h2>Error: email already used</h2>'; 
      require ('registerform.php'); 
      } 
      else { 
    // If the values are posted, insert them into the database. 
        $sql= "INSERT INTO users (fName, lName, email, username, password, password2) VALUES ('$fName', '$lName', '$email', '$username', '$password', $password2)"; 
        if (!$con->query($sql)){ 
         echo 'Error: coulndt do suff'; 
        } 
        else { 
         echo 'Account made'; 


        }//ENDS SUCCESSFUL INSURT 

      }//ENDS EMAIL VALIDATION 

     }//ENDS THE USERNAME VALIDATION 
    }//END PASSWORD VALIDATION 
} 
?> 

图片形式的真的不知道,如果它的帮助,但ya'know

https://gyazo.com/418b86ecb5090604a1f229e1e94fe3bf

+0

当你按下提交,会发生什么:??没有页面刷新你看到任何错误讯息 –

+0

当我提交它只是把我带到一个空白页面的形式,所以我很困惑从哪里去从这里我已经为它工作了2天 – cosmichero2025

+0

空白页通常是mea ns代码中的语法错误。 –

回答

1

我这里猜测你的数据库没有password2列(似乎有点毫无意义),所以试图插入它会给出一个错误。

你应该阅读有关MySQLi error reporting

在你的PHP文件的开始同时添加error_reporting(-1);显示PHP错误。

P.S.你的代码很容易被SQL注入,你应该使用prepared statements来保证安全。

+0

是否允许成为两个Jesters? HTTP://计算器。com/users/547981/jester –

0

首先,您可能会遇到多个问题,而您在$ password2周围没有单引号。这可能导致插入失败。

VALUES( '$ FNAME', '$ L-NAME', '$电子邮件', '$用户名', '$密码',$密码2)“;

另外我想呼应的SQL错误出如你不这样做,你可以很容易地做这个测试的if语句为真不假

   if ($con->query($sql)){ 
        //if true then runs your code; 
       } 
       else { 
        echo "Error: " . $sql . "<br>" . $con->error; // This will echo out any sql errors you may have 
       } 
+0

我添加了你提议的东西,它是说$ sql是一个未定义的变量 – cosmichero2025

+0

哦,忘记了那个......虐待工作在那个 – cosmichero2025

+0

我已经设置和它可以在我的页面上与其他表单一起正常工作此注册单据是我似乎遇到麻烦的唯一一个 – cosmichero2025