Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/12/2006, 18:08
atribis
 
Fecha de Ingreso: abril-2006
Ubicación: De vuelta en Asturias
Mensajes: 209
Antigüedad: 18 años
Puntos: 1
Escribo un dato y dice que faltan todos

Hola a tod@s.
He estado programando una pequeña web en php desde hace algunos días y me funcionaba todo perfectamente, así que decidí probarla en la red.
El caso es que ahi me ha pasado algo que no entiendo por más vueltas que le he dado y esperaba si alguién podía indicarme donde está el error, pues la verdad no se mucho de php y lo más probable es que sea un fallo tonto.

El caso es que tengo un formulario con una serie de datos obligatorios. Si el usuario deja de insertar alguno, debe aparecer un mensaje diciendo cuales faltan.
El caso es que, ingreso datos sin nada escrito y funciona, ingreso el nombre y me detalla el resto de campos, inserto el apellido e igual peeeeero... en cuanto ingreso un correo electrónico me dice que faltan todos los campos sin importar que haya algo escrito o no
En local me funciona perfectamente pero en la red no

Dejo el código del formulario:

Código HTML:
<FORM METHOD="post" NAME="new_cliente" ACTION="new_client2.php">
		<TABLE ALIGN="center" WIDTH=800  CLASS="fondo">
			<TR>
				<TD COLSPAN=2 CLASS="titulo" ALIGN="right"><P>REGISTRO NUEVO CLIENTE</P></TD>
			</TR>
			<TR><TD COLSPAN=2><IMG SRC="img/1px.gif" HEIGHT=15 BORDER=0></TD></TR>
			<TR>
				<TD COLSPAN=2><P ALIGN="center"><A HREF="new_client.php" TARGET="conte" CLASS="enl">Nuevo Usuario</A> | <A HREF="recordar.php" TARGET="conte" CLASS="enl">Recordar Contraseña</A> | <A HREF="cambio.php" TARGET="conte" CLASS="enl">Cambiar Datos</A> | <A HREF="presup.php" TARGET="conte" CLASS="enl">Solicitar Presupuesto</A> | <A HREF="pedido.php" TARGET="conte" CLASS="enl">Hacer Pedido</A></P></TD>
			</TR>
			<TR><TD COLSPAN=2><IMG SRC="img/1px.gif" HEIGHT=15 BORDER=0></TD></TR>
			<TR>
				<TD ALIGN="right">Nombre<SUP>*</SUP>:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="nombre" SIZE=50 VALUE=""></TD>
			</TR>
			<TR>
				<TD ALIGN="right">Primer Apellido<SUP>*</SUP>:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="ape1" SIZE=50 VALUE=""></TD>
			</TR>
			<TR>
				<TD ALIGN="right" VALIGN="top">Segundo Apellido<SUP>*</SUP>:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="ape2" SIZE=50 VALUE=""><BR><BR></TD>
			</TR>
			<TR>
				<TD ALIGN="right">E-mail<SUP>*</SUP>:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="mail" SIZE=25 VALUE=""></TD>
			</TR>
			<TR>
				<TD ALIGN="right">Contraseña<SUP>*</SUP>:</TD><TD ALIGN="left"><INPUT TYPE="password" NAME="contra" SIZE=25 VALUE=""></TD>
			</TR>
			<TR>
				<TD ALIGN="right" VALIGN="top">Repetir contraseña<SUP>*</SUP>:</TD><TD ALIGN="left"><INPUT TYPE="password" NAME="rcontra" SIZE=25 VALUE=""><BR><BR></TD>
			</TR>
			<TR>
				<TD ALIGN="right">Dirección:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="direc" SIZE=50 VALUE=""></TD>
			</TR>
			<TR>
				<TD ALIGN="right">Ciudad:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="ciudad" SIZE=50 VALUE=""></TD>
			</TR>
			<TR>
				<TD ALIGN="right">Código Postal:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="cp" SIZE=10 VALUE=""></TD>
			</TR>
			<TR>
				<TD ALIGN="right">Provincia:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="provin" SIZE=50 VALUE=""></TD>
			</TR>
			<TR>
				<TD ALIGN="right" VALIGN="top">País<SUP>*</SUP>:</TD><TD ALIGN="left"><INPUT TYPE="text" NAME="pais" SIZE=50 VALUE=""><BR><BR></TD>
			</TR>
			<TR>
				<TD ALIGN="center" VALIGN="top" COLSPAN=2><INPUT TYPE="checkbox" NAME="normas" VALUE="si"><LABEL>He leido y acepto las <A HREF="normas.htm" TARGET="blanck">condiciones de uso</A></LABEL><BR><BR></TD>
			</TR>

			<TR>
				<TD ALIGN="right"></TD><TD ALIGN="left"><INPUT TYPE="submit" VALUE="Ingresar datos">&nbsp;<INPUT TYPE="reset" VALUE="Borrar todo"></TD>
			</TR>
			<TR>
				<TD COLSPAN=2><P>Los campos marcados con asterisco (*) son obligatorios.</P>
				<P>Si desea recibir copias impresas de sus fotografías, cd's o dvd's, la devolución de fotografías que nos haya enviado y/o justificante de pago físico, debe rellenar todos los datos correspondiente a la dirección postal o dichos envíos no podrán llevarse a cabo. Si no desea añadirlos ahora, podrá hacerlo más tarde desde la opción <I>"Cambiar datos"</I></P></TD>
			</TR>
		</TABLE>
	</FORM> 
Y del archivo que recoje los datos
Código PHP:
<?

    
// Llamamos la librería que contiene las funciones de correo electrónico
    
require('includes/libre_mail.php');

    
//recogemos todos los datos enviados por el formulario en variables
    
$contra=$_POST["contra"];
    
$rcontra=$_POST["rcontra"];
    
$nombre=$_POST["nombre"];
    
$ape1=$_POST["ape1"];
    
$ape2=$_POST["ape2"];
    
$mail=$_POST["mail"];
    
$email=strtolower($mail);
    
$direc=$_POST["direc"];
    
$ciudad=$_POST["ciudad"];
    
$cp=$_POST["cp"];
    
$provin=$_POST["provin"];
    
$pais=$_POST["pais"];
    
$normas=$_POST["normas"];
    
$fecha=date('j/n/Y');

    
$mensaje=false;
    
$mensaje2=false;
    
$contras=false;
    
$texto;

    
//hacemos un control de lo que el cliente ha ingresado. Si no ha ingresado alguno de los campos obligatorios lo indicamos con la variable $mensaje y añadimos el nombre del campo a una variable de texto
    
if ($nombre==null){ $mensaje=true$texto=$texto."Nombre<BR>";}
    if (
$ape1==null){ $mensaje=true$texto=$texto."Primer apellido<BR>";}
    if (
$ape2==null){ $mensaje=true$texto=$texto."Segundo apellido<BR>";}
//Aquí es donde supongo que debe estar el fallo pero no lo veo
    
if ($email==null){ $mensaje=true$texto=$texto."Dirección de correo electrónico<BR>";}
    if (
$contra==null){ $mensaje=true$texto=$texto."Contraseña<BR>";}
    if (
$rcontra==null){ $mensaje=true$texto=$texto."Repetición de contraseña<BR>";}
    if (
$pais==null){ $mensaje=true$texto=$texto."País<BR>";}
    if (
$normas===null){ $mensaje=true$texto=$texto."Aceptar las condiciones de uso<BR>";}

    if (
$direc==null || $ciudad==null || $cp==null || $provin==null){$mensaje2=true;} //Si falta alguno de los datos no obligatorios lo indicamos con la variable mensaje2 para recordarle más adelante que pueden serle necesarios.

    
if ($contra<>$rcontra){$contras=true;} // si la contraseña y su repetición no coinciden lo indicamos con la contraseña contras.

    
if ($mensaje){ //si la variable que indica que algun campo obligatorio no se ha introducido está en verdadero, mostramos un mensaje de error para que vuelva y los introduzca
        
echo '<P CLASS="mensaje">Para llevar a cabo el registro correctamente debe introducir los siguientes datos:<BR><BR>'.$texto.'<BR>Por favor, retroceda para solucionarlo.</P>';
    }
Este código continúa, pero siempre sale este mensaje aunque haya rellenado todo por culpa de los del correo que comento.
Seguro que hay mil fallos en cuanto a cosas que se podrían hacer mejor de otra forma, pero por ser novata no me masacren mucho :P

Muchas gracias por adelantado