2009-08-28 18 views
5

¿Es posible que exista por cualquier tipo de valor en $_GET o $_POST que es no una matriz o cadena?

Para aquellos que leen el código mejor, es del todo posible para ejecutar este script simple de un servidor web y conseguir que se lance la excepción?

// crash-me.php 
<?php 

function must_be_array_or_string($value) { 
    if(is_string($value)) 
     return; 
    if(is_array($value)) { 
     foreach($value as $subValue) 
      must_be_array_or_string($subValue); 
     return; 
    } 
    throw new Exception("Value is " . gettype($value)); 
} 

if(isset($_GET)) 
    must_be_array_or_string($_GET); 

if(isset($_POST)) 
    must_be_array_or_string($_POST); 

Respuesta

1

Creo en el caso de la carga de archivos, los 'error' y 'size' campos serían ints.

7

Con excepción de las cargas de archivos, los valores son siempre cadenas o matrices.

+0

Las cargas de archivos no están presentes en '$ _POST' o' $ _GET', debe verificar '$ _FILES' para obtener información sobre la carga de archivos (y aun así el contenido sigue siendo matrices y cadenas). – dcousineau

+0

@dcousineau: ¿Estás seguro? Creo que el índice 'error' en' $ _FILES' contiene enteros, como 'UPLOAD_ERR_OK'. –

Cuestiones relacionadas