为什么我的用户注册表不能正常工作?

时间:2016-04-19 17:01:54

标签: php html mysql forms

我正在尝试使用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
} 
 ?>

表单的图片并不真正知道它是否有用但是你知道

How to get the current user's Active Directory details in C#

2 个答案:

答案 0 :(得分:1)

我猜这里你的数据库没有|V|列(似乎没有意义)所以试图插入它会产生错误。

您应该阅读MySQLi error reporting

还要在PHP文件的开头添加password2以显示PHP错误。

P.S。您的代码容易受到SQL注入攻击,您应该使用prepared statements来保护它。

答案 1 :(得分:0)

首先你可能有多个问题你没有$ password2周围的单引号。这可能会导致插入失败。

VALUES('$ fName','$ lName','$ email','$ username','$ password',$ password2)“;

另外,我会在你不做的时候回复sql错误。你可以轻松地做到这一点。测试if语句是否为true而不是false

                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
                }
相关问题