Valencia, 21/06/2011, G.B.
Por una extraña razón que todavía no he averiguado, dejó de funcionarme la página de contacto de los directorios Webcontenidos.es e INDAGA.net, ambos realizados con el script de directorios de enlaces PHP Link Directory (php LD). Eso fue desde el cambio de servidor.
Bien, como no he podido solucionarlo por ahora – tampoco lo he intentado demasiado ni tengo los conocimientos sobre php LD necesarios, debo confesar- he buscado en la Red una solución y la he encontrado. Para crear un formulario de contacto en php, simplemente necesitas un archivo HTML (en mi caso contacta.html) y un archivo en php que realice la acción. He encontrado el código en la siguiente dirección:http://paratupagina.com/topic/21-como-crear-un-formulario-de-contacto-en-php/ Desde aquí, muchas gracias. Envío también trackback.
Sólo he tenido que hacer unos pequeños cambios y una pequeñísima corrección en el enlace de retorno a la página. Desde luego, tengo que personalizarlo mucho más todavía, pero hoy no. Os dejo el código:
Los archivos necesarios:
1.- Página contacta.html, en donde estará el formulario de contacto propiamente dicho.
2.- Archivo PHP enviar_correo.php, en donde está la lógica o programación, incluyendo el control de errores.
<body><div align=”center”><form action=”enviar_correo.php” method=”post”><p><br /><br /><br /><br /><b>Tu Nombre:<b><input name=”name” type=”text” id=”name” size=”40″ /></p><p><b>Tu email:</b><input name=”email” type=”text” id=”email” size=”42″ /></p><br /><p><b> Escribe tu mensaje o consulta:</b></p><textarea name=”query” cols=”46″ rows=”20″ id=”query”></textarea><p><input name=”submit” type=”submit” value=”Enviar mensaje” /></p></form><br /><br /><p align=”center”> Si el correo se ha enviado correctamente, <br />volverás a la página principal del directorio</p><br /><br /><p><a href=”http://webcontenidos.es/directorio/” alt=”LO QUE SEA”>LA URL DE TU WEB</a></div></body>
2) enviar_correo.php
<?
/* Para tu página web */$mailto = ‘tucorreo@tudominio.com’; // insert the email address you want the form sent to
/* Inserta la dirección de email en donde quieras recibir el mensaje enviado desde tu página */$returnpage = ‘/’; // insert the name of the page/location you want the user to be returned to
/* Inserta la dirección en dnde quieras que el usuario regrese tras el envío del mensaje. Crearé una página simple en html de “envío correcto” */$sitename = ‘[EL NOMBRE DE TU PÁGINA]‘; // insert the site name here, it will appear in the subject of your email
/* Inserta el nombre de tu sitio. Aparecerá en el asunto del email que recibas*//* Do not edit below this line unless you know what you’re doing */
/* NO edites el código que sigue a menos que no sepas lo que haces*/
$name = $_POST['name'];$email = $_POST['email'];$enquiry = stripslashes($_POST['query']);
if (!$name) {print(“<strong>Error:</strong> Escribe tu nombre.<br/><br/><a href=’javascript:history.go(-1)’>Volver</a>”);exit;}if (!$email) {print(“<strong>Error:</strong> Por favor, escribe tu dirección de e-mail.<br/><br/><a href=’javascript:history.go(-1)’>Volver</a>”);exit;}if (!$enquiry) {print(“<strong>Error:</strong> Por favor, escribe un mensaje.<br/><br/><a href=’javascript:history.go(-1)’>Volver</a>”);exit;}if (!eregi(“^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}”, $email)){print(“<strong>Error:</strong> Este email no es válido, por favor escribe una dirección de e-mail válida<br/><br/><a href=’javascript:history.go(-1)’>Volver</a>”);exit;}$message = “\n$name te ha enviado el siguiente mensaje:\n\n$enquiry\n\n Sus datos son:\n\nNombre: $name\nCorreo: $email\n\n”;mail($mailto, “$sitename Contact Form Enquiry from $name”, $message, “From: $email”);header(“Location: ” . $returnpage);?>
Funciona perfectamente. Puedes verlo aquí: http://webcontenidos.es/directorio/contacta.html
En breve cambiaré también el de INDAGA.net.
Posts relacionados:
Tags (etiquetas): crear formulario contacto php, formulario contacto php, PHP, php LD
Hosting recomendado


Información Bitacoras.com…
Valora en Bitacoras.com: No hay resumen disponible para esta anotación…
Hola buenas tardes,
estoy intentando realizar el formulario de contacto con el código que indicas y siempre me devuelve el mismo error:
Parse error: syntax error, unexpected ‘@’ in /home/rentingh/public_html/club/enviar_correo.php on line 5
¿Me podrías indicar a que es debido?, te lo agradeceré eternamente.
Saludos,
Manel.
Buenas noches. Parece ser que el código o no está bien copiado o hay algún tipo de error en el servidor. Creo más bien que es por el código: hay algo incorrecto en la llínea 5 de l código que has utilizado. El mío funciona correctamente .Copia y pega este en un editor de texto plano, como el bloc de notas en Windows o gedit en Linux (o el que prefieras). cambiando el texto en mayúsculas por tu configuración (correo, página de retorno, etc.). Luego salva el archivo como lo que quieras .php y súbelo al servidor. Prueba y me dices. Te adjunto el código, pero date cuenta que donde aparecen enlaces, como Volver, es Javascript que WordPress está interpretando, sería a href=’history.go(-1)’ rel=”nofollow” entre las etiquetas < y >. Aquí va:
<?
/* Para PON_AQUI_EL_ASUNTO o nada, es sólo un comentario, no se visualizará */
$mailto = 'PON_TU_DIRECCION_DE_CORREO_AQUI'; // insert the email address you want the form sent to
$returnpage = 'PON_AQUI_LA_PAGINA_A_LA_QUE_QUIERAS_VOLVER'; // insert the name of the page/location you want the user to be returned to
$sitename = '[PON_AQUI_EL_TITULO_DE_LA_PAGINA]'; // insert the site name here, it will appear in the subject of your email
/* Do not edit below this line unless you know what you're doing */
$name = $_POST['name'];
$email = $_POST['email'];
$enquiry = stripslashes($_POST['query']);
if (!$name) {
print("Error: Escribe tu nombre.Volver“);
exit;
}
if (!$email) {
print(“Error: Por favor, escribe tu dirección de e-mail.Volver“);
exit;
}
if (!$enquiry) {
print(“Error: Por favor, escribe un mensaje.Volver“);
exit;
}
if (!eregi(“^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}”, $email)){
print(“Error: Este email no es válido, por favor escribe una dirección de e-mail válidaVolver“);
exit;
}
$message = “\n$name te ha enviado el siguiente mensaje:\n\n$enquiry\n\n Sus datos son:\n\nNombre: $name\nCorreo: $email\n\n”;
mail($mailto, “$sitename Contact Form Enquiry from $name”, $message, “From: $email”);
header(“Location: ” . $returnpage);
?>
Espero que te sirva,. En caso contrario, dímelo y veremos qué es lo que está pasando.
Salu2,
Guillermo