Como validar con una función todos los datos recibidos por POST con empy y isset?

Como puedo validar todos los datos enviados al servidor por medio de una función que compruebe si existe y no este vacios y que me retorne true o false ya que son demacias datos que envía un formulario he realizado esta función pero no me funciona en el ultimó valor ingresado.

public function validatePost($array){
$error=false;
foreach ($array as $value) {
  if (isset($value) && !empty($value)) {
    $error=true;
  }
}
return $error;

}

public function register(){

if(@$_POST){

  foreach($_POST as $campo => $valor){
    $asig = "$" . $campo . "='" . Htmlspecialchars($valor,ENT_QUOTES) . "';";
    eval($asig);
  }
  $array = array($name,$last);
  if ($this->validatePost($array)) {
    echo "<h3>Todos los datos fueron recibidos</h3>";
  }
  else {
    echo "<h3>Error:faltaron datos para realizar el registro</h3>";;
  }

}

1 respuesta

Respuesta
1

La función validatePost parece que es correcta,, pero no es nada eficiente, supón que tienes 10 millones de elementos, y el primero ya falla, ¿para qué vas a seguir procesando todos los demás?, no esta bien, seria mejor hacer return false directamente.

Como no sabemos que elementos hay en el array, no te puedo decir que pasa, pero seguro que es en la otra función. ¿Por qué no mandas POST directamente?

Acabo de reeler la función, y esta mal, estas haciendo la comprobación al revés, estas comprobando ... si esta definido y no es vacío... entonces error=true, pero eso no tiene sentido, debería ser al revés, ¿no?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas