Как мне показать сообщение об ошибке php вверху формы регистрации? - PullRequest
0 голосов
/ 06 августа 2020

Я хочу сообщить пользователю, что адрес электронной почты, на который он пытается зарегистрироваться, уже занят. Поэтому, как мне показать сообщение об ошибке PHP «Пользователь уже существует» в верхней части моей формы регистрации?

Что происходит в настоящее время, когда я ввожу уже зарегистрированный адрес электронной почты, он перенаправляет обратно на регистрацию форма без сообщения об ошибке.

<?php
    
    if( $_SERVER['REQUEST_METHOD']=='POST' && isset( 
        $_POST['fullname'], 
        $_POST['email'], 
        $_POST['mobilenumber'] 
    )){
        
        $fullname = $_POST['fullname'];
        $email = $_POST['email'];
        $mobilenumber = $_POST['mobilenumber'];
        
        
        
        $dbport =   '';
        $dbhost =   '';
        $dbuser =   '';
        $dbpwd  =   '';
        $dbname =   '';
        
        
        
        error_reporting( E_ALL );
        mysqli_report( MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT );
        $conn = new mysqli("","","","");

        try{
        
            #check email before insert
            $sql='select `email` from `reg` where `email`=?';
            $stmt=$conn->prepare( $sql );
            $stmt->bind_param('s',$email);
            $stmt->execute();
            $stmt->store_result();
            
            if( $stmt->num_rows==0 ){
                /* email does not exist - perform insert */
                $sql='insert into `reg` ( `fullname`, `email`, `mobilenumber` ) values ( ?, ?, ? )';
                $stmt=$conn->prepare( $sql );
                $stmt->bind_param('sss', $fullname, $email, $mobilenumber );
                $stmt->execute();
                $stmt->close();
                $conn->close();
                
                exit( header('Location: thankyou.html') );
                
            }else{
                /* email does exist - tell user */
                $stmt->free_result();
                $stmt->close();

                $msg = "User already exists.";
                header("Location:signup.html");
                exit;
   
            }
            
        }catch( mysqli_sql_exception $e ){
            exit( $e->getMessage() );
        }
    }
?>

Вот подписка HTML КОД формы;

 <div class="col-md-5 py-5 border">
                <h4 class="pb-4">Please fill your details</h4>
                 
                <form name="contact form" action="registration.php" method="post">
                    <div class="form-row">
                        <div class="form-group col-md-9">
                          <input id="Full Name" name="fullname" placeholder="Full Name *" class="form-control" type="text">
                        </div>
                      </div><br>

                        <div class="form-row">
                        <div class="form-group col-md-9">
                          <input type="email" name="email" class="form-control" placeholder="Email *">
                        </div>
                      </div><br>

                    <div class="form-row">
                        <div class="form-group col-md-9">
                            <input id="Mobile No." name="mobilenumber" placeholder="Mobile No. *" class="form-control" required="required" type="text">
                        </div>
                    </div><br>
                    <div class="form-row">
                    <button type="submit" id="btnSubmit" class="btn btn-primary">Submit</button>
                    </div>
                </form>
            </div>
        </div>

1 Ответ

0 голосов
/ 06 августа 2020

Вы можете сохранить сообщение об ошибке в переменной SESSION, а затем условно отобразить эту переменную SESSION на странице регистрации (если SESSION не пуст и установлен).

$_SESSION['msg'] = "User Already exist";

Также , измените имя файла на signup.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...