Foros del Web » Programando para Internet » PHP »

una pequeña duda

Estas en el tema de una pequeña duda en el foro de PHP en Foros del Web. Buenas noches a todos tengo uma pregunta por que al enviar un valor de un formulario a otra pagina y compararlo en un if no ...
  #1 (permalink)  
Antiguo 01/06/2012, 03:51
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 12 años, 5 meses
Puntos: 7
una pequeña duda

Buenas noches a todos tengo uma pregunta por que al enviar un valor de un formulario a otra pagina y compararlo en un if no es necesario poner $_POST['buscar'] lo estoy haciendo de esta forma y detodos modos sale :s
Saludos!


Código PHP:
  if (is_numeric($buscar) || ($buscar==null)){ 
  #2 (permalink)  
Antiguo 01/06/2012, 04:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 61
Antigüedad: 11 años, 11 meses
Puntos: 23
Respuesta: una pequeña duda

ese condicional esta funcionando porque $buscar vale null ya que no la creastes.

Saludos!
  #3 (permalink)  
Antiguo 01/06/2012, 06:17
 
Fecha de Ingreso: diciembre-2008
Mensajes: 21
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: una pequeña duda

Tiene que llevar el $_POST también.

Ocurre lo siguiente:

En la sentencia if (is_numeric($buscar) || $buscar==null), la función is_numeric($buscar) devuelve 0 porque $buscar no está declarado, por lo tanto no puede ser numérico. En la segunda parte de la sentencia: $buscar==null devuelve 1 porque $buscar no está declarado, por lo tanto es igual a null, entonces $buscar==null se cumple.

Tras esto, nos queda una sentencia del tipo if(0 || 1), que es básicamente lo que entiende PHP, y esa sentencia se cumple siempre ya que 0 or 1 = 1, por eso se está cumpliendo. Ten cuidado, no es como pensabas.

Saludos.
  #4 (permalink)  
Antiguo 01/06/2012, 07:48
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: una pequeña duda

En adición a las respuestas de @pfranco y @idiviro, para saber cual es tipo de la variable y su contenido existe la funcion llamada var_dump() que te puede ser muy util para entender tu problema, proba haciendo antes y despues del condicional

Código PHP:
Ver original
  1. var_dump($buscar);

para asi terminas de enteder lo que te respondieron los compañeros.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 01/06/2012, 21:31
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 12 años, 5 meses
Puntos: 7
Respuesta: una pequeña duda

gracias a los 3, probare! pero una cosa hago esto y detodos modos me imprime lo que escribo por que ?


PAG1
<form id="form1" name="form1" method="post" action="index.php?accion=Enviar">
<label for="buscar"></label>
<input style="width:250px; height:20px; font-size:15px;type="text" name="buscar" id="buscar" />
</td>
<td width="51"> <input type="image" src="imagenes/Search-32.png" width="25" height="25"name="enviar" id="enviar" value="Enviar" /></td>
</form>


PAG2

<?php

echo $buscar;


?>

Última edición por echo_; 01/06/2012 a las 21:38

Etiquetas: formulario, pequeña
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:24.