Foros del Web » Programando para Internet » PHP »

Duda sobre formulario

Estas en el tema de Duda sobre formulario en el foro de PHP en Foros del Web. Hola a todos! Bueno antes de nada decir que acabo de empezar a utilizar php y estoy algo perdida. Necesitaba hacer un formulario en mi ...
  #1 (permalink)  
Antiguo 29/10/2008, 08:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Duda sobre formulario

Hola a todos! Bueno antes de nada decir que acabo de empezar a utilizar php y estoy algo perdida.
Necesitaba hacer un formulario en mi pagina web, donde los usuarios me enviaran sus datos para realizar unas gestiones. Despues de mucho investigar, consegui que funcionase. Os lo dejo a continuacion para que me corrijais posibles errores:


Código PHP:
<?php 
$nombre 
$_POST['nombre'];
$direccion $_POST['direccion'];
$poblacion $_POST['poblacion'];
$provincia $_POST['provincia'];
$codigopostal $_POST['codigopostal'];
$email $_POST['email'];
$articulos $_POST['articulos'];
$refarticulo $_POST['refarticulo'];
$cantidad $_POST['cantidad'];
$observaciones $_POST['observaciones'];

$header 'From: ' $email " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";


$mensaje .= "Nombre: " $nombre .  "\r\n";
$mensaje .= "Direccion: " $direccion " \r\n";
$mensaje .= "Poblacion: " $poblacion " \r\n";
$mensaje .= "Provincia: " $provincia " \r\n";
$mensaje .= "Codigo Postal: " $codigopostal " \r\n";
$mensaje .= "E-Mail de Contacto: " $email " \r\n";
$mensaje .= "Articulos: " $articulos " \r\n";
$mensaje .= "Ref. Articulo: " $refarticulo " \r\n";
$mensaje .= "Cantidad: " $cantidad " \r\n";
$mensaje .= "Observaciones: " $observaciones " \r\n";


$para '[email protected]';
$asunto 'Compra de artículo';
mail($para$asuntoutf8_decode($mensaje), $header);

echo 
"Mensaje enviado correctamente.";

?>
Ahora va mi pregunta. Mi formulario va insertado en un iframe de mi web, de manera que al enviarse, en el iframe aparece una pagina en blanco con el mensaje que puse: "Mensaje enviado correctamente". Pero me gustaria que eso no fuese asi. Es decir, que la pagina en vez de aparecer en blanco y en formato cutre, pudiera ser como el resto, con el formato que yo elija y con un boton o hipervinculo para volver a la pagina anterior.

Se puede hacer? Muchas gracias a todos!
  #2 (permalink)  
Antiguo 29/10/2008, 08:41
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años
Puntos: 16
Respuesta: Duda sobre formulario

hola Xeng bienvenida, lo que pasa es que vos estas poniendo que se diga
echo "Mensaje enviado correctamente."; en el archivo donde procesa los datos, ese archivo no tienen ningun tag html que le de estilo, por eso aparece en blanco, podes hacer varias cosas, una es aplicarle una estructura html antes de enviar el echo por ejemplo:

Código PHP:
//[...]



$para '[email protected]';
$asunto 'Compra de artículo';
mail($para$asuntoutf8_decode($mensaje), $header); 

$html .= '
               <html>
                 <head> 
                      <title>Sistema de Comunicacion</title>
                  </head>
                  <body>
                        <div class="mensaje">
                               <b> El mensaje se envio correctamente</b>'
;
// [...] 
o podes enviar un parametro por get a una pagina que te muestre un mensaje por ejemplo
mipagina/out.php?msj=ok

recibis en out.php el ok o le parametro que pases y mostras el mensaje
  #3 (permalink)  
Antiguo 29/10/2008, 08:51
 
Fecha de Ingreso: octubre-2008
Mensajes: 15
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda sobre formulario

Otra recomendación sería meter una validación, es un tema muy amplio, ya que lo puedes hacer en el lado del cliente (javascript o ajax) y del lado del servidor, busca en google validar formulario en php y validar formulario en ajax y puedes encontrar scripts útiles y los puedes adaptar a lo que necesitas, si quieres una validación simple puedes usar un if, por ejemplo

<? if($nombre!=''&&$email!=''): ?>mandas el form<? else: ?>No lo mandas<? endif; ?>

del lado de javascript es un poco mas largos pero como te comento hay muchos en google.

También puedes incorporar un captcha (imagen para que no manden mensajes los spambot)

Saludos
  #4 (permalink)  
Antiguo 29/10/2008, 14:52
 
Fecha de Ingreso: octubre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Duda sobre formulario

Hola de nuevo y gracias por responder. Finalmente consegui hacerme con lo del formato. Simplemente use las propiedades de la pagina y añadi un estilo css dentro de la pagina que contiene el php.
No se si es lo mas correcto pero me funciono jajaja.

Con respecto a la validacion, lei algo por ahi, pero me parecio bastante dificil y decidi dejarlo. Aunque ahora que lo mencionas no me vendria nada mal.
El problema es que de javascript si que no tengo ni idea, y no se como seria. Por eso mismo tendria que hacerlo tambien en php y de manera sencilla.
Solo tendria que asegurarme de que todos los campos han sido rellenados, y que en el caso del email, contenga una arroba y cosas asi. ¿Me podrias poner un ejemplo donde, de no ser rellenado un campo, llevase de nuevo al formulario avisando que hay que rellenarlo?

Ah! Y otra cosa. lo del captcha es una excelente idea, no se me habia ocurrido, muchisimas gracias ;) investigare mas sobre eso.
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 04:15.