Альтернатива функции эха в контроллере, когда в форму вставлена ​​неверная информация - PullRequest
0 голосов
/ 18 декабря 2018

Я кодирую сайт, и у меня есть форма.Например, когда пользователь пишет электронное письмо в поле ввода электронной почты и пишет «Бенджамин», автоматически появляется окно, в котором говорится, что оно недействительно (даже до отправки), если он пишет «Бенджамин @».Однако, если он вставит «benjamin @ gmail», окно не отобразится, и пользователь сможет отправить форму.Проблема заключается в том, что «benjamin @ gmail» не является действительным почтовым адресом, поэтому контроллер не принимает его, и пользователь перенаправляется на пустую страницу, на которой отображается «недействительная электронная почта» из-за функции эха контроллера.Как я могу найти альтернативу, чтобы пользователь не перенаправлялся на эту страницу?

Вот как это выглядит в html-файле:

 <div>
      <label for="email">Adresse mail :</label>
      <input type="email" name="email" id="email" placeholder="josephine.dupont@gmail.com" required/>
    </div>

, а вот часть контроллера:

function pageInscription2() {
    if ($_POST["nom"] && $_POST["prenom"] && $_POST["email"] && $_POST["telephone"] 
      && $_POST["cle"] && $_POST["adresse"] 
      && $_POST["code_postal"] && $_POST["pays"] 
      && $_POST["mdp"] && $_POST["mdp2"])
    {

        $nom = htmlspecialchars($_POST["nom"]);
        $prenom = htmlspecialchars($_POST["prenom"]);
        $email = htmlspecialchars($_POST["email"]);
        $telephone = htmlspecialchars($_POST["telephone"]);
        $cle = htmlspecialchars($_POST["cle"]);
        $adresse = htmlspecialchars($_POST["adresse"]);
        $code_postal = htmlspecialchars($_POST["code_postal"]);
        $pays = htmlspecialchars($_POST["pays"]);
        $mdp = htmlspecialchars($_POST["mdp"]);
        $mdp2 = htmlspecialchars($_POST["mdp2"]);

        if (filter_var($email, FILTER_VALIDATE_EMAIL))
        {

          if ($mdp==$mdp2)
          {

         insererUtilisateur($nom, $prenom, $email, $telephone, $cle, $adresse, $code_postal, $pays, $mdp);

        require "vues/inscription2.php";

      } 
      else {
          echo "Vous n'avez pas saisi les mêmes mot de passe";
    } }
    else {
        echo "Email invalide";
    } }
  else {
    $erreur = "Tous les champs doivent être complétés"; } 
  }

1 Ответ

0 голосов
/ 18 декабря 2018

Вы пытаетесь регулировать выражение:

       <script>
            function testemail(email) {
              var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
              return re.test(email);
            }


        $("form").submit(function(e){

        var email=$('#email').val();
           var check=testemail(email);
         if(check != true){
          alert('wrong email');
            e.preventDefault()
                }


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