Foros del Web » Programando para Internet » PHP »

Ayuda con Formulario PHP

Estas en el tema de Ayuda con Formulario PHP en el foro de PHP en Foros del Web. Hola gente... bueno tengo el siguiente problema, estoy siguiendo los pasos de un formulario que me pasaron (esta aca: http://www.ibdhost.com/contact/) pero me surgio un problema ...
  #1 (permalink)  
Antiguo 19/02/2008, 13:00
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Ayuda con Formulario PHP

Hola gente... bueno tengo el siguiente problema, estoy siguiendo los pasos de un formulario que me pasaron (esta aca: http://www.ibdhost.com/contact/) pero me surgio un problema con los mensajes de error...
Pasa lo siguiente:
Cuando el mensaje esta bien enviado, o sea que no quedan campos vacios ni nada, seria esto lo que queda:


Lo que quiero mostrar es que esta el borde de abajo (seria donde dice "resolucion recomendada...etc), este borde es una DIV.

Pero cuando por ejemplo queda algun campo vacio, el mensaje de error sale normalmente, solo que el borde de abajo no aparece.


Cuando termina el mensaje desde ahi para abajo es todo negro (color de fondo) y esto no tendria que ser asi ya que me arruina el diseño.

La parte del codigo de este mensaje seria esta:
Código:
if(empty($visitor) || empty($visitormail) || empty($notes )) {
echo "Uno o mas campos quedaron incompletos\n";<br>
die ("Volve y llenalos!");
}
Y lo que hace que el borde de abajo no se vea es la sentencia "die ()", pero si le saco eso sale el mensaje de error junto con el mensaje de "enviado" (primera imagen)...

La verdad que no se como pueda solucionar esto ya que son mis primeros pasos en PHP, agradeceria una solucion o por lo menos una pista (asi seria mas interesante jeje) para poder terminar con la web a tiempo...
Desde Muchisimas gracias!

Última edición por -sata-; 19/02/2008 a las 13:40
  #2 (permalink)  
Antiguo 19/02/2008, 13:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ayuda con Formulario PHP

Deberías de publicar el código completo, ya que por lo que pones, el die esta evitando que muestre el resto de la pagina y por eso se ve incompleta.

Saludos.
  #3 (permalink)  
Antiguo 19/02/2008, 13:13
 
Fecha de Ingreso: marzo-2005
Mensajes: 68
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Ayuda con Formulario PHP

Podrias enviar la secuencia completa del codigo, ya que, en primera instancia, tambien pense que fuera la funcion die(), que utilizaste, pero, según tu comentario, no es eso.

Si gustas envias completa la secuencia de codigo, para asi analizar el posible erroe que cometiste.

Saludos
__________________
:adios: Janyta
  #4 (permalink)  
Antiguo 19/02/2008, 13:13
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Re: Ayuda con Formulario PHP

Podrias quitar el die y agregas un else al if y la parte del mensaje de "enviado" lo pones en dentro del else >_>
  #5 (permalink)  
Antiguo 19/02/2008, 13:35
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con Formulario PHP

Esto seria la parte del PHP

Cita:
<?php

$ip = $_POST['ip'];
$httpref = $_POST['httpref'];
$httpagent = $_POST['httpagent'];
$visitor = $_POST['visitor'];
$visitormail = $_POST['visitormail'];
$notes = $_POST['notes'];
$attn = $_POST['attn'];

if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,".")))
{
echo "Escribi bien tu mail.\n";
$badinput = "Lo pusiste mal\n";
echo $badinput;
die ("Volve atras!");
}

if(empty($visitor) || empty($visitormail) || empty($notes )) {
echo "Uno o mas campos quedaron incompletos, \n";
die ("Volve y llenalos!");
}

$todayis = date("j / n");

$attn = $attn ;
$subject = $attn;

$notes = stripcslashes($notes);

$message = "Fecha: $todayis\n
De: $visitor ($visitormail)\n
Mensaje: $notes \n
";

$from = "De: $visitormail\r\n";


mail("[email protected]", $subject, $message, $from);

?>
Y la parte del mensaje de enviado esta afuera del php...Seria esto:

Cita:
Gracias <span class="TextoSend"><?php echo $visitor ?></span> por mandarnos tu mensaje...Tu mail es <span class="TextoSend"><?php echo $visitormail ?></span> y tu mensaje fue: <span class="TextoSend"><?php $notesout = str_replace("\r", "<br/>", $notes);
echo $notesout; ?>.</span><div class="EspacioContenido"></div>
Si alguno de los datos esta mal volv&eacute; <a href="contacto.php">atr&aacute;s</a> y mandalo devuelta.
</div>
</div></div>
<div class="EspacioContenido"></div>
</div>
<div class="BordeInferior">resoluci&oacute;n recomendada 1024 x 768</div>
Esta hasta la DIV del borde inferior

Obviamente esto se encuentra en el archivo "sendemail.php" y no en el "contacto.php"

P.D.: Yifly, si es la sentencia die () la que hace que se corte el diseño, pero si la saco aparecen los dos mensajes juntos, el de error y el de enviado =S
  #6 (permalink)  
Antiguo 19/02/2008, 13:54
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Re: Ayuda con Formulario PHP

Ya intentaste hacer lo que te dije?
  #7 (permalink)  
Antiguo 19/02/2008, 13:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con Formulario PHP

Estoy leyendo un poco para ver como hacerlo...Ya dije que es lo primero que hago, no se practicamente nada de PHP
  #8 (permalink)  
Antiguo 19/02/2008, 14:28
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Re: Ayuda con Formulario PHP

Hola,
Y si intentas con esto:
Código PHP:
if(empty($visitor) || empty($visitormail) || empty($notes )) {
echo 
"Uno o mas campos quedaron incompletos\n";<br>
echo 
"Volve y llenalos!";
echo 
'<div class="BordeInferior">resoluci&oacute;n recomendada 1024 x 768</div>':

__________________
Half Music - www.halfmusic.com
  #9 (permalink)  
Antiguo 19/02/2008, 14:36
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con Formulario PHP

No puedo hacerlo...Puse el mensaje de enviado dentro del else(), no el mensaje que saldria originalmente porq tiene html y no se como se hace...Puse simplemente "mensaje enviado", pero sale la pantalla en blanco, sea que deje algo vacio como si llene todos los campos.
Decime si lo hice bien, seria esto:
Cita:
if(empty($visitor) || empty($visitormail) || empty($notes )) {
echo "Uno o mas campos quedaron incompletos, \n";
else ("Mensaje enviado");
}

Última edición por -sata-; 19/02/2008 a las 14:42
  #10 (permalink)  
Antiguo 19/02/2008, 14:53
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con Formulario PHP

Pato con lo que vos decis aparece el borde pero corrido de lugar y tiene que estar en su lugar para que quede alineado con los bordes laterales de la etiqueta del contenido (la anterior)...Pero gracias igual
  #11 (permalink)  
Antiguo 19/02/2008, 16:28
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con Formulario PHP

Bueno despues de mucho intentar solucione el problema.

La solucion fue reemplazar la sentencia die() por un else(), y la sentencia echo por print y dentro del else() puse el mensaje de "enviado", como me dijo darkasecas.
Tambien unifique el mensaje cuando el email era incorrecto (no cuando el mail no existe, porq no comprueba eso...tal ves mas adelante lo haga).

El codigo seria este:
Cita:
if(empty($visitor) || empty($visitormail) || empty($notes ) || !strstr($visitormail,"@") || !strstr($visitormail,".")) {
print "Uno o mas campos quedaron incompletos o el mail es incorrecto, volve atras y arreglalos.\n"; }
else { print "Gracias $visitor por mandarnos tu mensaje...Tu mail es $visitormail y tu mensaje fue $notes";
}
Me siento feliz! jajajaj es mi primer pequeño paso con PHP...

Pero...(siempre hay un pero ¬¬) se puede insertar algo como seria la etiqueta span en html dentro de esto???
Cita:
else { print "Gracias $visitor por mandarnos tu mensaje...Tu mail es $visitormail y tu mensaje fue $notes";}
Seria para diferenciar los datos de la variable con otro color y en negrita, lo tengo en un CSS, por eso lo de la span

P.D.: Perdon por mis Post seguidos =(
  #12 (permalink)  
Antiguo 19/02/2008, 16:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ayuda con Formulario PHP

Así:
Código PHP:
else { print "<span class=\"miclase\">Gracias $visitor por mandarnos tu mensaje...Tu mail es $visitormail y tu mensaje fue $notes</span>";} 
Saludos.
  #13 (permalink)  
Antiguo 19/02/2008, 16:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Ayuda con Formulario PHP

Bueno gracias GatorV...lo voy a probar...
Tambien me acabo de dar cuenta de que si el que envia el mensaje ingresa mal el mail (por ejemplo se olvida de poner el arrova o pone cualquier cosa) el mensaje de error sale, pero el mensaje llega igual =S
  #14 (permalink)  
Antiguo 19/02/2008, 16:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Ayuda con Formulario PHP

Te recomiendo usar expresiones regulares para verificar que el email sea correcto.

Saludos.
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 13:29.