Validación de campos en un formulario – PHP/HTML – php html formularios

Pregunta:


Tengo este código php para validar un formulario html. El caso es que no se como hacer que para el campo ‘paginas’ que es un <input type="text" name="paginas" value="" maxlength="3"> sólo se admitan números.

Había buscado como hacerlo y encontré is_numeric y lo aplique de esta forma is_numeric(isset($_POST['paginas']))===false pero no me funciona correctamente.

Si alguno de vosotros sabe como funciona el is_numeric o sabe alguna otra forma de hacerlo lo agradecería.
‘Muchas gracias y un saludo!

PHP

if(isset($_POST['submit'])) {

  if (isset($_POST['autor'])==null || isset($_POST['titulo'])==null ||
      isset($_POST['paginas'])==null || is_numeric(isset($_POST['paginas']))===false || isset($_POST['sinopsis'])==null ) {

    echo "ERROR! Todos los campos han de estar rellenados.";
    exit;
  }else {
    echo "<strong>Autor:  </strong>"; echo $_POST['autor']; echo "<br/>";
    echo "<strong>Titulo:  </strong>"; echo $_POST['titulo']; echo "<br/>";
    echo "<strong>Paginas:  </strong>"; echo $_POST['paginas']; echo "<br/><br/>";
    echo "<strong>Sinopsis:  </strong>";echo $_POST['sinopsis'];echo "<br/>";

}
}

Preguntado por:

Bender

Una forma fácil y sencilla de lograr lo que quieres es utilizar las mismas herramientas que nos ofrece HTML, cambiando el input de tipo text a tipo number

<input type="number" name="paginas" value="">

`

Aun que puedes utilizar el type="number" en el input de tu formulario esto no garantiza que solo se puedan enviar números, la recomendación es que igualmente valides siempre los datos de lado servidor.

Pongamos tu código un poco más legible:

if(isset($_POST['submit'])) {

    if ( isset($_POST['autor']) 
         AND isset($_POST['titulo']) 
         AND isset($_POST['paginas'])
         AND is_numeric($_POST['paginas'])
         AND isset($_POST['sinopsis']) 
        ) 
    {
        echo "<strong>Autor:  </strong>".$_POST['autor']."<br/>";
        echo "<strong>Título:  </strong>".$_POST['titulo']."<br/>";
        echo "<strong>Páginas:  </strong>".$_POST['paginas']."<br/><br/>";
        echo "<strong>Sinopsis:  </strong>".$_POST['sinopsis']."<br/>";
    }
    else
    {
        echo "ERROR! Todos los campos han de estar rellenados.";
        exit;
    }
}

No tiene sentido igualar a null, tanto isset() como is_numeric() devuelven true o false nunca van a devolver null, tampoco tiene sentido anidar isset() dentro de is_numeric() ya que esto retornara siempre FALSE ya que isset() devuelve un boleano.

Fuente

Related Posts:

array push con keys php – php array
Pregunta: Buen día. Estoy tratando de crear un array con valores agrupados por categorías, mediante AJAX recibo dos variables una contiene un string con el nombre ...
Actualizar información con ajax php mysql – php jquery mysql
Pregunta: Tengo esta simple consulta que lo que simplemente me muestra las visitas de la web, pero quisiera que fuera automático con ajax ya que ...
¿Cómo insertar código en las entradas de WordPress? – php wordpress plugin
Pregunta: En algunos blogs de programación he visto algo como esto en las entradas: Me gustaría poder hacer lo mismo. Sin embargo, no solo quiero que ...
Como validar array checkbox – javascript php jquery
Pregunta: Que tal buen dia, alguien me podria decir como se puede hacer para que cuando presione el boton "BAJAR DATOS" si este esta vacio ...
Problema con UTF_8 – php sql sql-server
Pregunta: Buen día, mi problema es el siguiente, Php me lanza el siguiente Warning Warning: utf8_decode() expects parameter 1 to be string, object given ...
Obtener las fechas de los días Lunes dependiendo de un rango de fechas PHP – php datetime time
Pregunta: Dependiendo de un rango de fechas quiero obtener sólo las fechas de los días Lunes, tengo la siguiente función que funciona pero me trae ...
¿Como eliminar espacio en los bordes con bootstrap? – html css bootstrap
Pregunta: Estoy intentando hacer un login con bootstrap y me surgió un problema con los bordes, cuando intento insertar un borde en el formulario se ...
Como cambiar una propiedad html dependiendo del valor de un perfil recogido de clase java – javascript jquery html
Pregunta: Tengo una caja de texto en la que me gustaría poder escribir o no dependiendo del perfil que utilice la aplicación. Esta caja de ...
Usar variable en otra función con javascript – javascript html app
Pregunta: Primero que todo voy a dejar un enlace donde pueden ver el ejemplo funcionando de manera completa. Enlace a la pagina AQUI El valor elegido en ...
Customizar rutas de Login en Laravel 5.3 – php laravel laravel-5
Pregunta: Hola tengo un problema con el enrutado de Login con el metodo php artisan make:auth que te genera todo lo que se necesita Desde vamos ...
¿Cómo rellenar cada circulo al pasar el mouse encima? – javascript jquery html
Pregunta: ¡Hola! Estoy practicando jQuery, y me gustaría poder hacer como un ranking. A lo que quiero llegar es que cada vez que el mouse ...
¿Cómo utilizar `count` para contabilizar la cantidad de registros para distintos valores de un campo en mysql? – php mysql sql
Pregunta: Resulta que tengo un campo llamado ESTADO en mi tabla. En este campo hay varias estados de pedido que son: LOGÍSTICA, PACKING, PICKING, CARTERA, ...
Precargar SOAP en PHP – php webservice soap
Pregunta: Estoy usando un webservice en el cual realizo la conexión por SOAP en PHP. El problema viene cuando en la primera llamada, a veces, no ...
Xampp no carga proyecto laravel – php laravel apache
Pregunta: Tengo el proyecto laravel en un mac con OSX el capitán con php artisan. El proyecto se ejecuta sin problema, pero por motivos personales ...
¿Código html antes del anchor text? ¿Tendrían problemas los motores de búsqueda? – html seo
Pregunta: ¿Es posible incluír código html antes del anchor text y si perjudicaría que los pueda leer el crawler del buscador? Es que necesito que ...

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *