Остановка повторяющихся записей в форме PHP - PullRequest
0 голосов
/ 01 июля 2018

изо всех сил пытаясь реализовать способ остановить повторяющиеся записи в этом коде, я пробовал несколько способов, используя оператор if и else, но я не могу заставить его работать. Кто-нибудь может предложить решение?

<?php
require('db.php');
// If form submitted, insert values into the database.


if (isset($_REQUEST['username'])){
        // removes backslashes
    $username = stripslashes($_REQUEST['username']);
        //escapes special characters in a string
    $username = mysqli_real_escape_string($con,$username); 
    $email = stripslashes($_REQUEST['email']);
    $email = mysqli_real_escape_string($con,$email);
    $password = stripslashes($_REQUEST['password']);
    $password = mysqli_real_escape_string($con,$password);
    $signupdate = date("Y-m-d H:i:s");
        $query = "INSERT into `users` (username, password, email, signupdate)
VALUES ('$username', '".md5($password)."', '$email', '$signupdate')";
        $result = mysqli_query($con,$query);
        if($result){
            echo "<div class='form'>
<h3>You are registered successfully.</h3>
<br/>Click here to <a href='login.php'>Login</a></div>";
        }
    }else{
?>
<div class="form">
<form name="registration" action="" method="post">
<input type="text" name="username" placeholder="Username" required />
<input type="email" name="email" placeholder="Email" required />
<input type="password" name="password" placeholder="Password" required />
<input type="submit" name="submit" value="Register" />
</form>
</div>
<?php } ?>      

Ответы [ 2 ]

0 голосов
/ 02 июля 2018
<?php 
If(isset($_POST[‘submit]))
{
   $username = stripslashes($_REQUEST['username']);
    $username = mysqli_real_escape_string($con,$username); 
    $email = stripslashes($_REQUEST ['email']);
    $email = mysqli_real_escape_string($con,$email);
    $password = stripslashes($_REQUEST ['password']);
    $password = mysqli_real_escape_string($con,$password);
    $password =  md5($password)
    $signupdate = date("Y-m-d H:i:s");

$Check_username_indb_query = "select * from users where username = ‘$username’ ";
$result_check = mysqli_query($con,$query);
If(mysqli_fetch_rows($result_check)==1)
{
               echo "Registration failed, this username is already taken please chose another one";
}
Else
{
$query = "INSERT into `users` (username, password, email, signupdate)
VALUES ('$username', '$password', '$email', '$signupdate')";
        $result = mysqli_query($con,$query);
        if($result)
         {
            echo "<div class='form'>
         <h3>You are registered successfully.</h3>
        <br/>
        Click here to <a href='login.php'>Login</a></div>";

   }

   ?>
0 голосов
/ 01 июля 2018
  1. Заменить
echo "<div class='form'>
<h3>You are registered successfully.</h3>
<br/>Click here to <a href='login.php'>Login</a></div>";

с

header("location:thankyou.php");

и добавьте текст на новую страницу.

  1. Отключить кнопку отправки после нажатия

изменение

<input type="submit" name="submit" value="Register" />

с

<input type="submit" name="submit" value="Register" onClick="this.disabled=true; this.value='Processing…'";>

3. Измените поле электронной почты в вашей базе данных на уникальное

ALTER TABLE users ADD UNIQUE (email);
  1. Добавить еще к проверке результата $:
if($result){
     header("location:thankyou.php");
}
else{
     echo "Registration failed, Make sure to use an email address that was not used before";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...