php - 如何防止php/mysql中的重复用户名

标签 php mysql duplicates registration

<分区>

(这是我第一次尝试使用 php)

我有一个非常基本的注册页面。 http://graves-incorporated.com/test_sites/member_test/register/register.php

* 我只记得 PHP 代码没有出现在源代码中,所以这里是:

enter code here
<?php
include('connection.php');

if(isset($_POST['form'])){
    if(empty($_POST['username']) || empty($_POST['password']) || empty($_POST['conf_pass']) || empty($_POST['email'])){
        echo '<b>Please fill out all fields.</b>';

    }elseif($_POST['password'] != $_POST['conf_pass']){
        echo '<b>Your Passwords do not match.</b>';
    }else{
        $url = 'http://graves-incorporated.com/test_sites/plantation_park_2012/';
        echo '<META HTTP-EQUIV=Refresh CONTENT="2; URL='.$url.'">';
        echo '<b>Congrats, You are now Registered.</b>';
        mysql_query("INSERT INTO users VALUES(NULL, '$_POST[username]', '$_POST[password]', '$_POST[email]')");     
    }
}
?>

我想确保我不会在数据库中获得重复的用户和/或电子邮件地址。我在 MySQL 中为用户名和电子邮件设置了一个唯一键,这阻止了它,但实际表单上的用户不知道,它仍然告诉他们“恭喜,你已注册”或任何它说的......哈哈

那么我可以在 php 代码中添加什么(以及代码中的什么地方)来防止这种情况发生?

感谢您帮助这位大菜鸟, 丹格雷夫斯

最佳答案

<?php
include('connection.php');

if(isset($_POST['form'])){
    if(empty($_POST['username']) || empty($_POST['password']) || empty($_POST['conf_pass']) || empty($_POST['email'])){
        echo '<b>Please fill out all fields.</b>';

    }elseif($_POST['password'] != $_POST['conf_pass']){
        echo '<b>Your Passwords do not match.</b>';
    }else{

        $dup = mysql_query("SELECT username FROM users WHERE username='".$_POST['username']."'");
        if(mysql_num_rows($dup) >0){
            echo '<b>username Already Used.</b>';
        }
        else{
            $url = 'http://graves-incorporated.com/test_sites/plantation_park_2012/';
            echo '<META HTTP-EQUIV=Refresh CONTENT="2; URL='.$url.'">';

            $sql = mysql_query("INSERT INTO users VALUES(NULL, '$_POST[username]', '$_POST[password]', '$_POST[email]')");     
            if($sql){
                 echo '<b>Congrats, You are now Registered.</b>';
            }
            else{
                echo '<b>Error Registeration.</b>';
            }
        }
    }
}
?>

关于php - 如何防止php/mysql中的重复用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9599163/

相关文章:

php - 使用 PHP 编辑 Windows 安装程序 (.msi)

php - Prestashop 1.6 设置自定义订单状态

php - 隐藏所选函数的 php mysql 约束违规警告

php - 如何插入多行,每行都有一个数组?

MySQL 数据库优化 - 我有一个包含大量重复项的消息表

带有 MySQL 的 PHP 仅对表的第一行返回正确的结果

php - 如何获取当月的时间戳,一个月的第一天,零时

mysql - CakePHP:使用bindModel向后追踪3个模型?

c - 推送到仅包含 C 中唯一值的堆栈

具有两个 INNER JOIN 的 MySQL 查询在结果中返回重复条目