Tengo una página (index.php) que toma una variable GET
de la URL y la comprueba por motivos de seguridad. Esta variable GET
solo debe ser un número entero. Estoy usando el siguiente código para verificar esto, pero en todos los casos, entero o no, obtengo la página index.php. El encabezado nunca aparece. Después de este código, el resto de la página aparece comenzando con la etiqueta html
.PHP is_int no funciona como se esperaba
PHP:
<?php ob_start(); session_start();
$q=trim($_GET['q']);
if (!is_numeric($q)){
header("HTTP/1.0 404 Not Found");
}
?>
No sé si ya lo sabe, pero debería agregar un 'exit();' después del 'encabezado (..)'. De lo contrario, el script continuará imprimiendo el contenido de la página. – laher
Leer [la documentación] (http://php.net/manual/en/function.is-int.php) le mostrará que 'is_int()' verifica el tipo de la variable, por lo que la cadena con "' 123 '" into 'is_int()' no devolverá 'true', ya que es una cadena. ¿Por qué etiquetó su publicación con 'http-status-code-404'? – Tadeck
etiqueta @Tadeck eliminada. gracias por esa documentación. Ahora estoy usando is_numeric y todavía no está funcionando – kirby