2011-05-07 9 views
8

Duplicar posible:
Check if $_POST exists

Estoy tratando de ejecutar algo si y sólo si un var $ _POST está poblada.

¿Puedo hacer if(empty($_POST[...])) { ... }? ¿O debería hacerlo de otra manera?

+0

¿Qué quiere decir por "poblada"? Si '$ _POST ['key']' contiene una cadena vacía, ¿está poblada o no? – GodsBoss

Respuesta

21

lo haría if(isset($_POST['key'])) { ... }

+0

si $ _POST ['key'] está presente sin un valor, devuelve true, que no es siempre lo que quieres. –

1

Puede consultar $_SERVER['REQUEST_METHOD'] si es POST o algo más. Ver $_SERVER.

Ooops, leí completamente su pregunta. ¿Desea probar una entrada específica en $_POST? Luego use array_key_exists($key, $_POST).

+0

¡Perfecto para usar dentro de un bucle! :) –

3

No, vacía() no es la forma correcta de hacerlo. Tienes que usar isset().

¿Por qué? ¡Porque muchas cosas se consideran vacías que probablemente no quieras perder!

Los siguientes factores son considerados como vacío:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
var $var; (a variable declared, but without a value in a class) 

See the manual!

+0

Solo el tipo de cadena puede estar presente en las matrices de entrada. – mario