Foros del Web » Creando para Internet » Diseño web »

problema con formulario

Estas en el tema de problema con formulario en el foro de Diseño web en Foros del Web. Hace algunos meses pude acceder a un formulario a través de esta web, con el que se enviaba cierta información a través de un correo ...
  #1 (permalink)  
Antiguo 20/04/2007, 11:46
 
Fecha de Ingreso: julio-2006
Mensajes: 226
Antigüedad: 17 años, 9 meses
Puntos: 0
problema con formulario

Hace algunos meses pude acceder a un formulario a través de esta web, con el que se enviaba cierta información a través de un correo predeterminado. Dicha tabla tenía 3 campos, y he de decir que funcionaba perféctamente

El caso es que ahora necesito, y casi diría que con urgencia, ese mismo formulario, pero con un total de 6 campos. Lo he modificado, pero al parecer hay algo que hago mal, porque no se me envía, sino que se me queda la pantalla en blanco.

El formulario consta de tres archivos, 2 html (uno el del formulario y otro de agradecimiento una vez es enviado) y uno html.

Os pongo aquí el código de la página html del formulario y el del archivo php, para que intentéis echarme un cable. Lo necesitaría a ser posible este fin de semana, pues me urge bastante. Es pera la inscripción en un certamen de pintura en la que colaboro.

Un saludo y gracias anticipadas.

Código formulario

_________

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nombre</title>
</head>

<body background="../../border_background.jpg">

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table border="1" width="100%" id="table1">
<tr>
<td>&nbsp;</td>
<td width="479">
<table width="343" border="0" id="table5" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: 20px; font-size: 8pt; font-family: Verdana, Arial, Helvetica, sans-serif"> <tr> <td>
<form name="form1" method="post" action="enviar.php">
<table width="444" border="0" id="table6" style="font-style: normal; font-variant: normal; font-weight: normal; line-height: 20px; font-size: 8pt; font-family: Verdana, Arial, Helvetica, sans-serif">
<tr>
<td><b><font color="#FFFFFF" size="2">Nombre</font></b></td>
<td><input name="nombre" type="text" id="nombre" size="38"></td>
</tr>
<tr>
<td><b><font color="#FFFFFF" size="2">Apellidos</font></b></td>
<td><input name="apellidos" type="text" id="apellidos" size="38"></td>
</tr>
<tr>
<td><b><font color="#FFFFFF" size="2">Dirección</font></b></td>
<td><input name="dirección" type="text" id="dirección" size="38"></td>
</tr>
<tr>
<td><b><font color="#FFFFFF" size="2">Email</font></b></td>
<td><input name="email" type="text" id="email" size="38"></td>
</tr>
<tr>
<td><b><font color="#FFFFFF" size="2">Teléfono</font></b></td>
<td><input name="teléfono" type="text" id="teléfono" size="38"></td>
</tr>

<td height="60"><b><font color="#FFFFFF" size="2">Observaciones</font></b></td>
<td height="60">
<textarea name="observaciones" id="observaciones" rows="18" cols="32"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Enviar"></td>
<td>&nbsp;</td>
</tr>
</table>
</form></td>
</tr> </table>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="479">&nbsp;</td>
</tr>
</table>

</body>

</html>

____





Código php
____

<?php

$mail='[email protected]';


$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$dirección = $_POST['dirección'];
$email = $_POST['email'];
$teléfono = $_POST['teléfono'];
$observaciones = $_POST['observaciones'];

$thank="enviado.htm";

$message = "
nombre:".$nombre."
apellidos:".$apellidos."
dirección:".$dirección."
email:".$email."
teléfono:".$teléfono."
observaciones:".$observaciones."";

if (mail($mail,"consulta",$message))
Header ("Location: $thank");

?>

_____


Cuando he rellenado una prueba y le he dado a enviar, me ha salido la pantalla en blanco, con esta dirección:

http://.../archivos/formularios/pintura/enviar.php

Debería pasar a la página de "enviado", que es como se llama la otra página html.

Gracias por vuestro tiempo
  #2 (permalink)  
Antiguo 20/04/2007, 12:08
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Re: problema con formulario

La función header() tiene que ser lo primero que se ejecute al cargarse la pagina php. Ves a php.net y busca esta función. Si te sirve de ayuda yo en su día tuve un problema con esta función que no funcionaba bién y al quitarle los espacios en blanco entre lineas me funcionó. Pruebalo.
  #3 (permalink)  
Antiguo 20/04/2007, 17:24
 
Fecha de Ingreso: julio-2006
Mensajes: 226
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con formulario

Te refieres a ponerlo así??

_________


<?php

$mail='[email protected]';


$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$dirección = $_POST['dirección'];
$email = $_POST['email'];
$teléfono = $_POST['teléfono'];
$observaciones = $_POST['observaciones'];

$thank="enviado.htm";

$message = "
nombre:".$nombre."
apellidos:".$apellidos."
dirección:".$dirección."
email:".$email."
teléfono:".$teléfono."
observaciones:".$observaciones."";

if (mail($mail,"consulta",$message))
Header ("Location:$thank");

?>
  #4 (permalink)  
Antiguo 20/04/2007, 17:27
 
Fecha de Ingreso: julio-2006
Mensajes: 226
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con formulario

Lo he intentado como dices, pero continúa dándome el mismo problema. Sigue apareciendo la página en blanco con la terminación en la url enviar.php

Es como si no lograra enlazar bien con la otra página html...

Alguien tiene alguna solución?? Muchas gracias

PD. Si no puede ser con este código, agradecería se me facilitara cualquier otro que me sirviera de igual forma. Repito, LO NECESITO CON URGENCIA.
Gracias
  #5 (permalink)  
Antiguo 21/04/2007, 01:30
 
Fecha de Ingreso: julio-2006
Mensajes: 226
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con formulario

Echadme un cable, porfis
  #6 (permalink)  
Antiguo 21/04/2007, 13:02
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Re: problema con formulario

Me refería así

<?php
$mail='[email protected]';
$nombre = $_POST['nombre'];
$apellidos = $_POST['apellidos'];
$dirección = $_POST['dirección'];
$email = $_POST['email'];
$teléfono = $_POST['teléfono'];
$observaciones = $_POST['observaciones'];
$thank="enviado.htm";
$message = "
nombre:".$nombre."
apellidos:".$apellidos."
dirección:".$dirección."
email:".$email."
teléfono:".$teléfono."
observaciones:".$observaciones."";
if (mail($mail,"consulta",$message))
Header ("Location:$thank");
?>

No se si te irá bién, como ya te dije la función header es muy "especial" y hasta con los saltos de linea deja de funcionar.

Suerte
  #7 (permalink)  
Antiguo 21/04/2007, 23:33
 
Fecha de Ingreso: agosto-2006
Ubicación: Monterrey, N.L.
Mensajes: 67
Antigüedad: 17 años, 8 meses
Puntos: 2
Re: problema con formulario

Cita:
Iniciado por issos Ver Mensaje
Te refieres a ponerlo así??

if (mail($mail,"consulta",$message))
Header ("Location:$thank");

?>
Hola, de casualidad no le falta esto?

if (mail($mail,"consulta",$message)) {
Header ("Location:$thank");
}

Yo he visto esto en los if, pero no se mucho de php.

Saludos.
  #8 (permalink)  
Antiguo 22/04/2007, 07:49
 
Fecha de Ingreso: julio-2006
Mensajes: 226
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con formulario

Al final he conseguido un código php que me funciona. Ahora el problema que tengo es que quiero que en lugar de una pantalla en blanco con el mensaje, tal y como me sale, me pase, una vez enviado el formulario, a una página html previamente definida (en mi caso se llama enviado.htm).
A ver si podéis decirme que he de quitar y qué poner en el siguiente código. Os agradecería me pusiérais el código tal cual habría de aparecer en el archivo php, porque ya habéis visto que no soy muy "ducho" en esto de la programación. Muchas gracias a todos por vuestra paciencia. Este es el código:

____

<?php
if(isset($_POST["nombre"]) && isset($_POST["apellidos"]) && isset($_POST["direccion"]) && isset($_POST["localidad"]) && isset($_POST["codigopostal"]) && isset($_POST["tfno"]) && isset($_POST["email"]) && isset($_POST["antparticipaciones"]) && isset($_POST["mensaje"]) ){
$fecha = date("d-M-y H:i");
$mymail = "[email protected]";
$subject = "[web form] ".$nombre;
$contenido = $nombre." ( ".$apellidos." ) escribio :\n\n";
$contenido .= $email."\n\n";
$contenido .= $direccion."\n\n";
$contenido .= $localidad."\n\n";
$contenido .= $codigopostal."\n\n";
$contenido .= $provincia."\n\n";
$contenido .= $tfno."\n\n";
$contenido .= $antparticipaciones."\n\n";
$contenido .= $mensaje."\n\n";
$contenido .= "---------------------------------------------------\n El mensaje fue escrito el ".$fecha;
$contenido .= "\nLa ip del remitente del email es : ".$_SERVER["REMOTE_ADDR"];
$header = "From:".$mail."\nReply-To:".$mail."\n";
$header .= "X-Mailer:PHP/".phpversion()."\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/plain";
mail($mymail, $subject, utf8_decode($contenido) );
echo "
Su inscripción ha sido realizada con éxito. ";
}
?>
  #9 (permalink)  
Antiguo 22/04/2007, 10:42
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Re: problema con formulario

Puedes hacerlo de dos maneras:

En tu página php lo primero que tiene que aparecer el script de php y despues el html normal y entre <head> y </head> poner esto
<meta HTTP-EQUIV="Refresh" CONTENT="1; URL=tupagina.htm">

CONTENT es el tiempo en segundos que tardará en redireccionar.

Tambien lo puedes hacer con Javascript. Lo mismo que antes pero entre <body> y </body> pones esto

<script LANGUAGE="JavaScript">
var pagina="tupagina.htm"
function redireccionar()
{
location.href=pagina
}
setTimeout ("redireccionar()", 1000);
</script>

Donde pone 1000 es el tiempo en milisegunso, o sea, 1000=1 segundo. setTimeout es opcional.

Espero que te funcione.

chujalt.com
  #10 (permalink)  
Antiguo 22/04/2007, 11:01
 
Fecha de Ingreso: julio-2006
Mensajes: 226
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con formulario

Si pongo este código, de acuerdo con tus instrucciones
¬¬¬¬<?php
if(isset($_POST["nombre"]) && isset($_POST["apellidos"]) && isset($_POST["direccion"]) && isset($_POST["localidad"]) && isset($_POST["codigopostal"]) && isset($_POST["tfno"]) && isset($_POST["email"]) && isset($_POST["antparticipaciones"]) && isset($_POST["mensaje"]) ){
$fecha = date("d-M-y H:i");
$mymail = "[email protected]";
$subject = "[web form] ".$nombre;
$contenido = $nombre." ( ".$apellidos." ) escribio :\n\n";
$contenido .= $email."\n\n";
$contenido .= $direccion."\n\n";
$contenido .= $localidad."\n\n";
$contenido .= $codigopostal."\n\n";
$contenido .= $provincia."\n\n";
$contenido .= $tfno."\n\n";
$contenido .= $antparticipaciones."\n\n";
$contenido .= $mensaje."\n\n";
$contenido .= "---------------------------------------------------\n El mensaje fue escrito el ".$fecha;
$contenido .= "\nLa ip del remitente del email es : ".$_SERVER["REMOTE_ADDR"];
$header = "From:".$mail."\nReply-To:".$mail."\n";
$header .= "X-Mailer:PHP/".phpversion()."\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/plain";
mail($mymail, $subject, utf8_decode($contenido) );
echo "
<script LANGUAGE="JavaScript">
var pagina="enviado.htm"
function redireccionar()
{
location.href=pagina
}
setTimeout ("redireccionar()", 1000);
</script>
";
}
?>
Me da el siguiente error:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in D:\Inetpub\webs\castellariegoscom\pintura\formular io\e-mail.php on line 23


Si elimino desde donde pone echo y pongo directamente el codigo script, me da este error

Parse error: syntax error, unexpected '<' in D:\Inetpub\webs\castellariegoscom\pintura\formular io\e-mail.php on line 22

En cuanto a head y /head, no aparece dicho comando en el código php… Lamento ser tan pesado, pero no tengo muchas nociones de códigos o de programación y necesito que el formulario me envie los datos y que me redireccione a los que se inscriben a otra página html, que llamaré enviado.htm

Te agradecería de todo corazón revisaras el código, hicieras todos los cambios que creas habrían de hacerse para que funcionara, y me lo enviaras. Los campos que necesito son nombre, apellidos, direccion, localidad, codigo postal, provincia, teléfono, email, antparticipaciones y mensaje

Muchas gracias por tu paciencia
  #11 (permalink)  
Antiguo 22/04/2007, 12:18
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Re: problema con formulario

Creo que me entendiste mal....
Primero debes poner el codigo php que manda el e-mail, el tuyo, el que dices que funciona... y luego poner el JavaScript que te pasé.
Sería así, mas o menos

<?php
if(isset($_POST["nombre"]) && isset($_POST["apellidos"]) && isset($_POST["direccion"]) && isset($_POST["localidad"]) && isset($_POST["codigopostal"]) && isset($_POST["tfno"]) && isset($_POST["email"]) && isset($_POST["antparticipaciones"]) && isset($_POST["mensaje"]) ){
$fecha = date("d-M-y H:i");
$mymail = "[email protected]";
$subject = "[web form] ".$nombre;
$contenido = $nombre." ( ".$apellidos." ) escribio :\n\n";
$contenido .= $email."\n\n";
$contenido .= $direccion."\n\n";
$contenido .= $localidad."\n\n";
$contenido .= $codigopostal."\n\n";
$contenido .= $provincia."\n\n";
$contenido .= $tfno."\n\n";
$contenido .= $antparticipaciones."\n\n";
$contenido .= $mensaje."\n\n";
$contenido .= "---------------------------------------------------\n El mensaje fue escrito el ".$fecha;
$contenido .= "\nLa ip del remitente del email es : ".$_SERVER["REMOTE_ADDR"];
$header = "From:".$mail."\nReply-To:".$mail."\n";
$header .= "X-Mailer:PHP/".phpversion()."\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/plain";
mail($mymail, $subject, utf8_decode($contenido) );
echo "
Su inscripción ha sido realizada con éxito. ";
}
?>

<html>
<head>
</head>
<body>

<script LANGUAGE="JavaScript">
var pagina="tupagina.htm"
function redireccionar()
{
location.href=pagina
}
setTimeout ("redireccionar()", 1000);
</script>

</body>
</html>



Mira a ver si te funciona



chujalt.com
  #12 (permalink)  
Antiguo 22/04/2007, 12:43
 
Fecha de Ingreso: julio-2006
Mensajes: 226
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: problema con formulario

Muchas gracias, sobre todo por tu paciencia. Todo funciona perfectamente. No sabes del apuro del que me has sacado.

GRACIAS
  #13 (permalink)  
Antiguo 22/04/2007, 12:49
Avatar de Jilti  
Fecha de Ingreso: abril-2007
Mensajes: 47
Antigüedad: 17 años
Puntos: 4
Re: problema con formulario

Nada a mandar.... Hoy por ti, mañana por mi

chujalt.com
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 10:18.