尝试注册示例用户时出现 pdo 注册页面错误

pdo registration page error when trying to register a sample user

您好,我正在创建用户注册页面。我相信我已经尝试了一切,当我尝试测试注册页面时,它只是重新加载同一页面。当我点击提交 按钮,不会进入我的数据库,也不会显示 "your account has been created"。我什至尝试过使用已弃用的 MySQL 代码,但它也失败了。请记住,这只是一组简单的代码,根本没有使用 CSS 进行样式化。 这是代码...

<?php
include("/scripts/connectionfile.php");

if(isset($_POST['submit'])) {
$email = $_POST ['email'];
$username = $_POST['username'];
$password = md5($_POST['password']."ALS52KAO089");
$confpassword = md5($_POST['conpassword']."ALS52KAO089");
}
    if(isset($email, $username, $password, $confPassword)){
        if(strstr($email, "@")){
            if($password == $confPassword){
                $query = $dbc->prepare("SELECT * FROM users WHERE username = ? OR email = ?");
                $query = $query->execute(array(
                    $username,
                    $email
                ));
                $count = mysql_num_rows($query);
                if($count == '0'){
                    $query = $dbc->prepare("INSERT INTO users SET username = ?, email = ?, password = ?");
                    $query = $query->execute(array(
                        $username,
                        $email,
                        $password
                        ));
                    if($query){
                            echo "Your account has been created, you may now login!";

                        }

                }else{  
                    echo "A user already exist with that name."; 
                }
            }else{
                echo "Your passwords do not match!";
            }   
            }else{
                echo "Invalid email address!";
            }
        }


?>
<form action="" method="POST">
    <table>

<tr>
    <td>Username:</td>
    <td><input type="text" name="username"></td>
</tr>

<tr>
    <td>Email:</td>
    <td><Input type="text" name="email"></td>
</tr>

<tr>
    <td>Password:</td>
    <td><Input type="password" name="password"></td>
</tr>

<tr>
    <td>Confirm Password:</td>
    <td><Input type="password" name="conpassword"></td>
</tr>
</table>
<input type="submit" name="submit" value="Register">
</form>

这是我的连接码

        <?php
$user ="root";
$pass = "";
$dbc = new PDO("mysql:host=localhost;dbname=users", $user, $pass);


?>

尝试我在下面概述的更改:

<?php
include("/scripts/connectionfile.php");

if(isset($_POST['submit'])) {
        function get_user_count($username = false,$email = false,$con = false)
            {
                if($username != false && $email != false && $con != false) {
                        $query  =   $con->prepare("SELECT COUNT(*) as count FROM users WHERE username = ? OR email = ?");
                        $query->execute(array($username,$email));
                        $result =   $query->fetch(PDO::FETCH_ASSOC);

                        if($result['count'] == 1)
                            return true;
                    }

                return false;
            }

        // Use a better validate
        $creds['email']         =   (filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))? $_POST['email']:false;
        // Check it's not empty
        $creds['username']      =   (!empty($_POST['username']))? $_POST['username']:false;
        // You should be using a proper encryption. md5 is not good enough, even with a salt
        $creds['password']      =   (!empty($_POST['password']))? md5($_POST['password']."ALS52KAO089"):false;
        $creds['conpassword']   =   (!empty($_POST['conpassword']))? md5($_POST['conpassword']."ALS52KAO089"):false;

        if(!in_array(false,$creds)) {
                // You were trying to match $conpassword and $conPassword
                // Notice the P in confp and confP
                if($creds['password'] == $creds['conpassword']){
                    if(get_user_count($creds['username'],$creds['email'],$dbc) == false){
                        // Your statement is a mix of insert and update
                        $query  =   $dbc->prepare("INSERT INTO users (`username`,`email`,`password`) VALUES (?,?,?)");
                        // Swicht $query to $result
                        $result =   $query->execute(array($creds['username'],$creds['email'],$creds['password']));

                        if($result)
                            $error  =   "Your account has been created, you may now login!";

                    }else  
                        $error  =   "A user already exist with that name."; 
                }else
                    $error  =   "Your passwords do not match!";

        }else
            $error  =   "Invalid email address!";

        echo $error;
    }
?>

<form action="" method="POST">
    <table>
        <tr>
            <td>Username:</td>
            <td><input type="text" name="username"></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><Input type="text" name="email"></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><Input type="password" name="password"></td>
        </tr>
        <tr>
            <td>Confirm Password:</td>
            <td><Input type="password" name="conpassword"></td>
        </tr>
    </table>
    <input type="submit" name="submit" value="Register">
</form>