Q:

Validación de campos en un formulario - PHP/HTML

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/>";

}
}

A:

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.

A:

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="">

`

