当用户按下“注册”按钮时,它会不断向数据库添加值(MYSQL+PHP)

当用户按下“注册”按钮时,它会不断向数据库添加值(MYSQL+PHP),php,mysql,Php,Mysql,我开始学习PHP。我只是尝试创建一个signup.php页面,其中的用户是我,他填写表单并按下注册按钮,然后值保存在数据库中 这段代码在XAMPP中工作得非常好。如果电子邮件已经存在,它会清楚地表明该电子邮件已经存在,用户需要选择一个新用户名。 然而,当我将所有内容上传到我网站上的cPanel并尝试测试它时,我可以一直按注册按钮,它会一直显示成功。当我检查PhpMyAdmin时,由于多次单击按钮,有5个相同的值 所以我真的不知道这里有什么问题。非常感谢您的帮助 我当前的代码: <form

我开始学习PHP。我只是尝试创建一个signup.php页面,其中的用户是我,他填写表单并按下注册按钮,然后值保存在数据库中

这段代码在XAMPP中工作得非常好。如果电子邮件已经存在,它会清楚地表明该电子邮件已经存在,用户需要选择一个新用户名。 然而,当我将所有内容上传到我网站上的cPanel并尝试测试它时,我可以一直按注册按钮,它会一直显示成功。当我检查PhpMyAdmin时,由于多次单击按钮,有5个相同的值

所以我真的不知道这里有什么问题。非常感谢您的帮助

我当前的代码:

<form  method='POST' class="form-login">
<?php



if(isset($_POST['submit'])){
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $username = $_POST['username'];
    $password = $_POST['password'];
    $email = $_POST['email'];
    $IP = $_SERVER['REMOTE_ADDR'];
    $fields = array(
    'Username' => $username,
    'Email' => $email
);

$dup = false;
foreach ($fields as $field => $value) {
    $value = mysql_real_escape_string($value);
    $query = mysql_query("SELECT COUNT({$field}) AS n FROM Users WHERE {$field}='{$value}';");
    $tuple = mysql_fetch_assoc($query);
    if ($tuple['n'] > 0) {
        $dup = true;
        break;
    }
    }



   if ($dup) {
        echo "<p><b><center> <font color=\"red\">{$field} already exists.<br> </b>If you already have an account, please<a href = 'login.php'> click here </a> to login.</font></center></p>"; 
    }

else {

        $regdate=date("Y-m-d H:i:s");

mysql_query("INSERT INTO users VALUES ('', '$first_name', '$last_name', '$username', '$password', '$email', '1', '0', '2', '$IP', '$regdate', '', 'active')");

<label>First Name:</label>
    <input type="text" name="first_name" id="first_name" value="<?=(isset($first_name) ? $first_name : "")?>"/>
    <label>Last Name:</label>
    <input type="text" name="last_name" id="last_name" value="<?=(isset($last_name) ? $last_name : "")?>"/>



<label>Username:</label>
        <input type="text" name="username" id="username" value="<?=(isset($username) ? $username : "")?>"/>

<label for="email">
    Email:</label>
    <input type="email" id="email" name="email" value="<?=(isset($email) ? $email :"")?>"/>

 <label>Password:</label>
        <input type="password" name="password" id="password" value="<?=(isset($password) ? $password : "")?>"/>
        <button type="submit" name="submit"  value="Register">Register</button>

</form>

您可以根据用户名和电子邮件列创建唯一密钥。我更喜欢检查数据库中是否已经存在数据。为什么要循环字段数组。。你能不能在这样一个查询中实现这一点:从username='{$username}或email='{$email}的用户中选择countid。你能检查你是否得到了任何东西吗$\u POST['submit']…因为它不在if部分中…还可以尝试替换。。具有