Я не могу проверить форму, используя приведенный выше код в PHP (PHP FORM VALIDATION) - PullRequest
0 голосов
/ 16 мая 2019

Я хотел проверить форму в PHP, но она не дает никакого вывода из validate.php

этот код PHP не дал никакого вывода после отправки формы помогите мне с проверкой формы

validate.php

    function validate($data, $reg_exp = "") {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      if (empty($data) == true) {
        $Err = "EMT_FLD";
        return false;
      } else{
        if ($reg_exp != "") {
          if (preg_match($reg_exp, $data) !== true) {
            $Err = "PRG_MTH_ERR";
            return false;
          } else {
             return true ;
            return $data;
          }
        }else {
          return true ;
          return $data;
        }
      }
    }

register.php

      include 'validate.php';

          if ($_SERVER['REQUEST_METHOD'] == 'POST') {
              $fnErr = $lnErr = $unErr = $emErr = $psErr = $cpErr = "";
              $submit = false;

              if ($val = validate($_POST['firstname'],"/^['a-zA-Z']+$/")) {
                  if ($val == false) {
                    if($Err == "EMT_FLD"){
                      $fnErr = "<span class = 'error'>First Name Required</span>";
                    }
                    if($Err == "PRG_MTH_ERR") {
                      $fnErr = "<span class = 'error'>Invalid First Name, Only Letters Are Allowed (A-Z and a-z)</span>";
                    }
                  }elseif($val == true){
                    $firstname = $_POST['firstname'];
                  }
              }
          }

     echo $fnErr."<br>"; 

Ожидаемое: должно вернуть $fnErr, но ничего не возвращается

1 Ответ

0 голосов
/ 16 мая 2019

у вас есть проблемы в вашей логике.

return остановите выполнение функции.Таким образом, ваша validate функция всегда возвращает логическое значение, а не ваш код ошибки.Вы должны вернуть строку ошибки и проверить, является ли она пустой или нет.

Я предлагаю:

validate.php

    function validate($data, $reg_exp = "") {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      if (empty($data) == true) {
        return  "EMT_FLD";
      } else{
        if ($reg_exp != "") {
          if (preg_match($reg_exp, $data) !== true) {
            return "PRG_MTH_ERR";
          } else {
             return '';
          }
        }else {
          return '';
        }
      }
    }

register.php

      include 'validate.php';

          if ($_SERVER['REQUEST_METHOD'] == 'POST') {
              $fnErr = $lnErr = $unErr = $emErr = $psErr = $cpErr = "";
              $submit = false;

              if ($val = validate($_POST['firstname'],"/^['a-zA-Z']+$/")) {
                  if ($val !== '') {
                    if($val == "EMT_FLD"){
                      $fnErr = "<span class = 'error'>First Name Required</span>";
                    }
                    if($val == "PRG_MTH_ERR") {
                      $fnErr = "<span class = 'error'>Invalid First Name, Only Letters Are Allowed (A-Z and a-z)</span>";
                    }
                  }elseif($val === ''){
                    $firstname = $_POST['firstname'];
                  }
              }
          }

     echo $fnErr."<br>"; 
...