Hola amigos, necesito vuestra ayuda.
Hace tres días que peleo con mi formulario y antes de desistir de ponerlo en mi web recurro a este foro que siempre aporta soluciones.
Encontré un formulario en http://www.yomaster.com/formularios.htm, lo puse en mi web y funciona correctamente:
http://www.bibliopos.es/contactar.htm
El caso es que ahora le estoy haciendo la web a un amigo y he colocado el mismo formulario, con algunas modificaciones en los campos, y no hay forma de que se abra la página de respuesta, ni de que me llegue mensaje alguno al correo. Mejor que veáis vosotros mismos cuál es el comportamiento del formulario cuando intentas enviarlo:
http://www.finimer.com/contactar.htm
¿Podríais decirme qué es lo que puede pasar? :cry:
Os pego los códigos por si encontráis algún error que yo no veo. De antemano, mil gracias. :wink:
En contactar.htm entre las etiquetas <body> y </body>
<form METHOD="GET" action="envio.php">
<center>
<table border="0" width="100%" id="table246" cellspacing="0" cellpadding="0" style="border-width: 0">
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Nombre:</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<input TYPE="text" NAME="nombre" SIZE="33"></p></td>
</tr>
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Empresa:</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<input TYPE="text" NAME="empresa" SIZE="33"></p></td>
</tr>
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Email:</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<input TYPE="text" NAME="email" SIZE="33" value="@"></p></td>
</tr>
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Teléfono</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<input TYPE="text" NAME="telefono" SIZE="40"></p></td>
</tr>
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Comentarios:</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<textarea rows="2" name="comentarios" cols="56"></textarea></p></td>
</tr>
</table>
</center>
<p align="center"><input TYPE="submit" VALUE="ENVIAR"> <input TYPE="reset" VALUE="LIMPIAR">
</p>
</form>
En envio.php entre las etiquetas <body> y </body>
<?
/* aqui se incializan variables de PHP */
if (phpversion() >= "4.2.0") {
if ( ini_get('register_globals') != 1 ) {
$supers = array('_REQUEST',
'_ENV',
'_SERVER',
'_POST',
'_GET',
'_COOKIE',
'_SESSION',
'_FILES',
'_GLOBALS' );
foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
} else {
if ( ini_get('register_globals') != 1 ) {
$supers = array('HTTP_POST_VARS',
'HTTP_GET_VARS',
'HTTP_COOKIE_VARS',
'GLOBALS',
'HTTP_SESSION_VARS',
'HTTP_SERVER_VARS',
'HTTP_ENV_VARS'
);
foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
}
/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */
if($email=="")
{
/* reclama si no se ha rellenado el campo email en el formulario */
echo "No ha puesto su dirección de correo electrónico";
exit();
}
/* aquí se especifica la pagina de respuesta en caso de envío exitoso */
$respuesta="respuesta.htm";
// la respuesta puede ser otro archivo, en incluso estar en otro servidor
/* AQUÍ ESPECIFICAS EL CORREO AL CUAL QUEREIS QUE SE ENVÍEN LOS DATOS
DEL FORMULARIO, SI QUIERES ENVIAR LOS DATOS A MÁS DE UN CORREO,
LOS PUEDES SEPARAR POR COMAS */
$para ="[correo eliminado]";
/* AQUI ESPECIFICAS EL SUJETO DEL EMAIL */
$sujeto = "Formulario";
/* aquí se construye el encabezado del correo*/
$encabezado = "From: $nombre <$email>";
$encabezado .= "\nReply-To: $email";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();
/* con esto se captura la IP del que envío el mensaje */
$ip=$REMOTE_ADDR;
/* las siguientes líneas arman el mensaje */
$mensaje .= "NOMBRE = $nombre\n";
$mensaje .= "EMPRESA = $empresa\n";
$mensaje .= "EMAIL = $email\n";
$mensaje .= "TELÉFONO= $telefono\n";
$mensaje .= "COMENTARIOS = $comentarios\n";
$mensaje .= "TU DIRECCION IP = $ip\n";
/* aqui se intenta enviar el correo, si no se
tiene éxito se da un mensaje de error */
if(!mail($para, $sujeto, $mensaje, $encabezado))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
/* aqui redireccionamos a la pagina de respuesta */
echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>";
}
?>
--------------------------------------
Para la respuesta he creado otra página: respuesta.htm
Saludos, Lía.
Hace tres días que peleo con mi formulario y antes de desistir de ponerlo en mi web recurro a este foro que siempre aporta soluciones.
Encontré un formulario en http://www.yomaster.com/formularios.htm, lo puse en mi web y funciona correctamente:
http://www.bibliopos.es/contactar.htm
El caso es que ahora le estoy haciendo la web a un amigo y he colocado el mismo formulario, con algunas modificaciones en los campos, y no hay forma de que se abra la página de respuesta, ni de que me llegue mensaje alguno al correo. Mejor que veáis vosotros mismos cuál es el comportamiento del formulario cuando intentas enviarlo:
http://www.finimer.com/contactar.htm
¿Podríais decirme qué es lo que puede pasar? :cry:
Os pego los códigos por si encontráis algún error que yo no veo. De antemano, mil gracias. :wink:
En contactar.htm entre las etiquetas <body> y </body>
<form METHOD="GET" action="envio.php">
<center>
<table border="0" width="100%" id="table246" cellspacing="0" cellpadding="0" style="border-width: 0">
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Nombre:</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<input TYPE="text" NAME="nombre" SIZE="33"></p></td>
</tr>
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Empresa:</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<input TYPE="text" NAME="empresa" SIZE="33"></p></td>
</tr>
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Email:</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<input TYPE="text" NAME="email" SIZE="33" value="@"></p></td>
</tr>
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Teléfono</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<input TYPE="text" NAME="telefono" SIZE="40"></p></td>
</tr>
<tr>
<td>
<p style="margin-top: 0; margin-bottom: 5px">Comentarios:</p>
<p style="margin-top: 5px; margin-bottom: 5px">
<textarea rows="2" name="comentarios" cols="56"></textarea></p></td>
</tr>
</table>
</center>
<p align="center"><input TYPE="submit" VALUE="ENVIAR"> <input TYPE="reset" VALUE="LIMPIAR">
</p>
</form>
En envio.php entre las etiquetas <body> y </body>
<?
/* aqui se incializan variables de PHP */
if (phpversion() >= "4.2.0") {
if ( ini_get('register_globals') != 1 ) {
$supers = array('_REQUEST',
'_ENV',
'_SERVER',
'_POST',
'_GET',
'_COOKIE',
'_SESSION',
'_FILES',
'_GLOBALS' );
foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
} else {
if ( ini_get('register_globals') != 1 ) {
$supers = array('HTTP_POST_VARS',
'HTTP_GET_VARS',
'HTTP_COOKIE_VARS',
'GLOBALS',
'HTTP_SESSION_VARS',
'HTTP_SERVER_VARS',
'HTTP_ENV_VARS'
);
foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
}
/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */
if($email=="")
{
/* reclama si no se ha rellenado el campo email en el formulario */
echo "No ha puesto su dirección de correo electrónico";
exit();
}
/* aquí se especifica la pagina de respuesta en caso de envío exitoso */
$respuesta="respuesta.htm";
// la respuesta puede ser otro archivo, en incluso estar en otro servidor
/* AQUÍ ESPECIFICAS EL CORREO AL CUAL QUEREIS QUE SE ENVÍEN LOS DATOS
DEL FORMULARIO, SI QUIERES ENVIAR LOS DATOS A MÁS DE UN CORREO,
LOS PUEDES SEPARAR POR COMAS */
$para ="[correo eliminado]";
/* AQUI ESPECIFICAS EL SUJETO DEL EMAIL */
$sujeto = "Formulario";
/* aquí se construye el encabezado del correo*/
$encabezado = "From: $nombre <$email>";
$encabezado .= "\nReply-To: $email";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();
/* con esto se captura la IP del que envío el mensaje */
$ip=$REMOTE_ADDR;
/* las siguientes líneas arman el mensaje */
$mensaje .= "NOMBRE = $nombre\n";
$mensaje .= "EMPRESA = $empresa\n";
$mensaje .= "EMAIL = $email\n";
$mensaje .= "TELÉFONO= $telefono\n";
$mensaje .= "COMENTARIOS = $comentarios\n";
$mensaje .= "TU DIRECCION IP = $ip\n";
/* aqui se intenta enviar el correo, si no se
tiene éxito se da un mensaje de error */
if(!mail($para, $sujeto, $mensaje, $encabezado))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
/* aqui redireccionamos a la pagina de respuesta */
echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>";
}
?>
--------------------------------------
Para la respuesta he creado otra página: respuesta.htm
Saludos, Lía.