Foros del Web » Programando para Internet » PHP »

Ayuda con expediente x en php(almenos para mi)

Estas en el tema de Ayuda con expediente x en php(almenos para mi) en el foro de PHP en Foros del Web. Hola, haber estoy haciendo un script en php que recibe datos de un formulario de reservas, y comprueba que los datos sean correctos para posteriormente ...
  #1 (permalink)  
Antiguo 20/05/2009, 16:06
 
Fecha de Ingreso: marzo-2007
Mensajes: 42
Antigüedad: 17 años, 1 mes
Puntos: 0
Ayuda con expediente x en php(almenos para mi)

Hola, haber estoy haciendo un script en php que recibe datos de un formulario de reservas, y comprueba que los datos sean correctos para posteriormente volver a la pagina de reservas con error o proseguir su camino a otro archivo. el script

Código:
<? //### Abre la base de datos ###




//Comprobacion de los datos--------------------------


if($HTTP_POST_VARS["nombre"]==null ){ header("Location:../index.php?page=6&error=1");}

if($HTTP_POST_VARS["Email"]==null && $HTTP_POST_VARS["telefono"]==null){ header("Location:../index.php?page=6&error=2");}

else {

 
header("Location:../index.php");
}

?>
El codigo es este, el problema es que el primer if, me lo salta aunque sea true y continua con el segundo. Por probar e cambiado el orden de los if y me pasa esactamente lo mismo, me salta el primero que ponga y continua con el segundo.

Por lo que supongo que el código esta bien, me gustaría saber por que pasa esto. Alguna Idea??

Gracias a todos
  #2 (permalink)  
Antiguo 20/05/2009, 16:17
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: Ayuda con expediente x en php(almenos para mi)

Hola, porque no pruebas con
Código PHP:
if(! isset($_POST['nombre'])){ //error
 
...

__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #3 (permalink)  
Antiguo 20/05/2009, 16:24
 
Fecha de Ingreso: marzo-2007
Mensajes: 42
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda con expediente x en php(almenos para mi)

No me vale, por que el campo si existe y se recibe bien, lo que necesito saber es si es nulo o no.
Gracias de todas formas, sigo probando.
Saludos
  #4 (permalink)  
Antiguo 20/05/2009, 16:27
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Ayuda con expediente x en php(almenos para mi)

Podrias indicarme cuando un dato es correcto e incorrecto para ayudarte
  #5 (permalink)  
Antiguo 20/05/2009, 16:41
 
Fecha de Ingreso: marzo-2007
Mensajes: 42
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda con expediente x en php(almenos para mi)

Cita:
Iniciado por acoevil Ver Mensaje
Podrias indicarme cuando un dato es correcto e incorrecto para ayudarte
haber, los datos los recibo por post, las variables llegan, solo que si ese campo no se relleno, es null.

El problema viene, que solo me ejecuta el segundo if, sea cual sea de los dos, es decir, si corto y pego el segundo if y lo pongo el primero este deja de funcionar y el otro si me funciona.
  #6 (permalink)  
Antiguo 20/05/2009, 16:46
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Ayuda con expediente x en php(almenos para mi)

y que tal si utlizas funciones de php como empty

if(empty($_POST['nombre']))
{
echo "Nombre esta vacio";
}else{
echo "tiene algo";
}


leete esto que encontre sobre la utlizacion de $HTTP_POST_VARS y $_POST


Las variables $HTTP_POST_VARS y $_POST NO SON IGUALES, y $_POST no es una "simple abreviación" de la otra.

La variable $HTTP_POST_VARS no es superglobal.

$HTTP_POST_VARS contiene la misma información inicial de $_POST, pero si quisiéramos utilizar $HTTP_POST_VARS dentro de una función deberíamos definirla como global, en cambio $_POST esta disponible en cualquier contexto dentro de un script.

PHP trata estas dos variables de formas diferentes.

Además vale aclarar que el uso de $HTTP_POST_VARS esta quedando en muchísimos servidores Web y, al parecer, PHP 6 las elimina totalmente.
  #7 (permalink)  
Antiguo 20/05/2009, 16:53
 
Fecha de Ingreso: marzo-2007
Mensajes: 42
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda con expediente x en php(almenos para mi)

He probado lo de la función empty y se me queda colgado directamente.

He cambiado los $http_post por $_POST y me pasa lo mismo que al principio.

Gracias por vuestra ayuda.
  #8 (permalink)  
Antiguo 20/05/2009, 16:56
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: Ayuda con expediente x en php(almenos para mi)

Podrias colocar tus formularios
  #9 (permalink)  
Antiguo 20/05/2009, 16:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 42
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Ayuda con expediente x en php(almenos para mi)

Este seria el formulario

Código:
<?
//###variables###
$dia= date("j");
$mes= date("m");
$ano= date("Y");
?>


<div class='post'>

					<h3>Formulario de Contacto o Reservas</h3><br><br>
					<?//###errores de formulario##
							if(isset($_GET['error'])){
														 $error=$_GET['error'];
														if($error==1) {echo "<font size='2' color='red'>Debe introducir su nombre y apellidos</font>";}
														if($error==2) {echo "<font size='2' color='red'>Debe introducir su telefono o email para que nos pongamos en contacto con usted</font>";}
														
																}

					?>
					<div class='contentarea'>
					<div align='right'>*Campos requeridos</div>
					<form name='form1' method='post' action='adminmod/enviar.php'>

     					   <table width='100%' border='0' cellspacing='4' cellpadding='0'>

    						<tr> <td>Indique si quirere contactar o reservar:<br></td>

                        <td width='63%' align='left'><font size='2'><input type='radio' name='tipocontacto' value='0' checked>   Contacto   <input type='radio' name='tipocontacto' value='1'>    Reserva    </td>

          </tr>      
						<tr> 

          						  <td width='37%'><font size='2'>Nombre y Apellidos*:</font></td>

     							       <td width='63%'>

     							         <input type='text' name='nombre' size='30'>

         					     </td>

    						      </tr>

  						        <tr> 

  					          <td width='37%'><font size='2'>Direcci&oacute;n:</font></td>

   					         <td width='63%'><font size='2'>

   					           <input type='text' name='Direccion' size='30'>

					              </font></td>

					          </tr>

  					        <tr> 

					            <td width='37%'><font size='2'>Localidad:</font></td>

 					           <td width='63%'><font size='2'>

 					             <input type='text' name='Localidad' size='30'>

				              </font></td>

					          </tr>

					          <tr> 

						            <td width='37%'><font size='2'>Provincia:</font></td>

						            <td width='63%'><font size='2'>

					              <input type='text' name='Provincia' size='30'>

 					             </font></td>

 					         </tr>

  					        <tr> 

     							       <td width='37%'><font size='2'>CP:</font></td>

     							       <td width='63%'><font size='2'>

      							        <input type='text' name='CP' size='10'>

    							          </font></td>

    					      </tr>

						 <tr> 

						  		          <td width='37%'><font size='2'>Tel&eacute;fono:</font></td>

 								           <td width='63%'>

								              <input type='text' name='Telefono' size='15'>

 								             </td>

 					         </tr>

  					          <tr> 

						            <td width='37%'><font size='2'>E-mail:</font></td>

    						        <td width='63%'><font size='2'>

     					         <input type='text' name='Email' size='30'>

    					          </td>

     					     </tr>
			<tr> 

            <td width='37%' align='left'><font size='2' >Por favor, contacten conmigo a trav&eacute;s 

              de:</font></td>

            <td width='63%' align='left'><font size='2'><input type='radio' name='formacontacto' value='Email' checked>  E-mail  <input type='radio' name='formacontacto' value='telefono' >  Telefono  <br>(Por favor, indique el telefono o email para contactar) </td>

          </tr>

  					        <tr> 

            <td width='37%'><font size='2'>Fecha de llegada:</font></td>

            <td width='63%'><font size='2'> 

              <select name='Fechadiallegada'>

                <option value='01' <? if($dia==1) {echo "selected";} ?> >1</option>

                <option value='02' <? if($dia==2) {echo "selected";} ?> >2</option>

                .....
              </select>  

              <select name='Fechamesllegada'>

                <option value='01' <? if($mes==01) {echo "selected";} ?> >Enero</option>

                <option value='02' <? if($mes==02) {echo "selected";} ?> >Febrero</option>

                <option value='03' <? if($mes==03) {echo "selected";} ?> >Marzo</option>

                <option value='04' <? if($mes==04) {echo "selected";} ?> >Abril</option>

                <option value='05' <? if($mes==05) {echo "selected";} ?> >Mayo</option>

                <option value='06' <? if($mes==06) {echo "selected";} ?> >Junio</option>

                <option value='07' <? if($mes==07) {echo "selected";} ?> >Julio</option>

                <option value='08' <? if($mes==08) {echo "selected";} ?> >Agosto</option>

                <option value='09' <? if($mes==09) {echo "selected";} ?> >Septiembre</option>

                <option value='10' <? if($mes==10) {echo "selected";} ?> >Octubre</option>

                <option value='11' <? if($mes==11) {echo "selected";} ?> >Noviembre</option>

                <option value='12' <? if($mes==12) {echo "selected";} ?> >Diciembre</option>

              </select>

              <select name='Fechaanollegada'>

		<option value=' <? echo $ano;?> ' selected><font size='2'><? echo $ano;?></font></option>
		<option value=' <? echo $ano+1;?> '><font size='2'><? echo $ano+1;?></font></option>

              </select>

              </font></td>

          </tr>

          <tr> 

            <td width='37%'><font size='2'>Fecha de salida:</font></td>

            <td width='63%'><font size='2'> 

              <select name='Fechadiasalida'>

               <option value='01' <? if($dia==1) {echo "selected";} ?> >1</option>

                <option value='02' <? if($dia==2) {echo "selected";} ?> >2</option>

                <option value='03' <? if($dia==3) {echo "selected";} ?> >3</option>

               ....

              </select>

              <select name='Fechamessalida'>

                <option value='01' <? if($mes==01) {echo "selected";} ?> >Enero</option>

                <option value='02' <? if($mes==02) {echo "selected";} ?> >Febrero</option>

                <option value='03' <? if($mes==03) {echo "selected";} ?> >Marzo</option>

                <option value='04' <? if($mes==04) {echo "selected";} ?> >Abril</option>

                <option value='05' <? if($mes==05) {echo "selected";} ?> >Mayo</option>

                <option value='06' <? if($mes==06) {echo "selected";} ?> >Junio</option>

                <option value='07' <? if($mes==07) {echo "selected";} ?> >Julio</option>

                <option value='08' <? if($mes==08) {echo "selected";} ?> >Agosto</option>

                <option value='09' <? if($mes==09) {echo "selected";} ?> >Septiembre</option>

                <option value='10' <? if($mes==10) {echo "selected";} ?> >Octubre</option>

                <option value='11' <? if($mes==11) {echo "selected";} ?> >Noviembre</option>

                <option value='12' <? if($mes==12) {echo "selected";} ?> >Diciembre</option>

              </select>

              <select name='Fechaanosalida'>

		<option value= ' <? echo  $ano ;?> ' selected><font size='2'><? echo $ano;?></font></option>
		<option value=' <? echo $ano+1;?> '><font size='2'><? echo $ano+1;?></font></option>

              </select>

              </font></td>

          </tr>

          <tr> 

            <td width='37%'><font size='2'>Numero de personas:</font></td>

            <td width='63%'><font size='2'>

              <input type='text' name='NumeroDePersonas' size='5'>

              </font></td>

          </tr>

    

          <tr> 

            <td width='37%'><font size='2'>Solicitud de contacto o informacion sobre reserva:</font></td>

            <td width='63%'><font size='2'>

		   <textarea rows='10' name='otrosdatos' cols='38'></textarea></td>

              </font></td>

          </tr>

          

        </table>

        <div align='right'><br>

          <input type='submit' name='Submit' value='Enviar'>

          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>

      </form></div></div>
Este seria el que recibe:
Código:
<? //### Abre la base de datos ###




//Comprobacion de los datos--------------------------
if($_POST["nombre"]==null ){ header("Location:../index.php?page=6&error=1");}
if($_POST["Email"]==null && $_POST["telefono"]==null){ header("Location:../index.php?page=6&error=2");}






else {

 
header("Location:../index.php");
}

?>
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 15:41.