Санкционировать переменную в PHP используя REGEX

Я обладаю следующим function:

function validar_nro($a){ 
    global $operador, $num_min, $db;

    selector_operador();

    if(preg_match('/'.$num_min.'/', $a))
 {
 return $a;
 } else {
 //return false;
 echo "Error";
 //unset($a);
 return $a;

}
}

Переменная $num_min смоги быть примером $num_min = "[0]{1}[4]{1}[1]{1}[2]{1}[0-9]{7}"; Однако я хочу выполнить этот function внутри другого function, который получит данные о формуляре, и то, к чему я стремлюсь, состоит в том, чтобы данные были санкционированы перед тем, как выполнять function, сохранения в моей базе данных, логически, если информация не может быть санкционированной, я стремлюсь того, чтобы оно явилось сообщением ошибки, и не выполнил решение сохранения в моей базе данных. function реестра - следующий:

//REGISTRAR RECARGA
    function registrar_recarga(){
      global $db, $nro, $op;

      @$user = $_REQUEST ['user'];
      @$operador = $_REQUEST ['operador'];
      @$nro = $_REQUEST ['nro'];
      @$monto = $_REQUEST ['monto'];
      @$accion = $_REQUEST ['accion'];
      @$id = $_REQUEST ['id'];

      selector_operador();

     validar_nro($nro);

      $tipo = $op;

      if ($accion == "insert"){



      $query = "INSERT INTO recargar (id, user, operador, tipo, nro, monto) VALUES (null, '$user', '$operador', '$tipo', '$nro', '$monto')";

      $msn = "Se ha guardado en la Base de datos una solicitud de recarga <b> $op </b> al numero <b>$nro</b> por un monto de <b>$monto Bs.</b>";

    } 
    else if ($accion == "update") {

      $query = "UPDATE recargar SET nro = '$nro', monto = '$monto', operador = '$operador', tipo = '$tipo' WHERE id = '$id'";

      $msn = "Se ha actualizado de manera correcta su solicitud de recarga <b> $op </b> al numero <b>$nro</b> por un monto de <b>$monto Bs.</b>";

    }
    else if ($accion == "eliminar") {

      $query = "DELETE FROM recargar WHERE id = '$id'";

      $msn = "Se ha eliminado de manera correcta su solicitud de recarga.";

    }

    if (mysqli_query($db, $query)) {

  $_SESSION['recarga']  = $msn;
   } else {
    $_SESSION['recarga']  .= '<i class="fa fa-exclamation-triangle"></i> Algo ha ocurrido.<br>'. mysqli_error($db);

   }
}

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

0
задан 26.02.2019, 19:06
1 ответ

Не estГЎs ничего не делая, чтобы предотвращать выполнение.

В обоих случаях, снопах один return $a и ademГЎs также ты не санкционируешь ответ вне функции.

Она funciГіn deberГ, - чтобы возвращать true / false в funciГіn, если ее funciГіn санкционирует правильно ввод или нет.

Вне ее funciГіn, - когда ты должен оценивать возвращенный результат ее funciГіn и действовать последовательно.

Например, podrГ, - чтобы быть чем-то asГ-:

if (validar_nro($nro)) {
    //todo correcto! Aqui tu codigo
} else {
    echo "error";
}

Другой более деревенский серьезный выбор вместо echo "error"; return $a; один die("error"); это закончит каждое выполнение рукописного шрифта в мгновение и imprimirГЎ сообщение ошибки

2
ответ дан 19.11.2019, 22:53