Problema al enviar un formulario de contacto por email
Hola a todos, gracias por tomaros vuestro tiempo en ayudarme.
He realizado un formulario de contacto que se envíe a un email, lo he hecho siguiendo indicaciones de tutoriales, pues no conozco mucho php. El problema es que cuando lo subo al servidor, primero, en los campos a introducir aparece texto (por ej: <?=$nombre;?>), segundo, no aparecen las opciones de una lista para elegir una, y tercero, al pulsar enviar vuelve a la misma página sin enviarse el mail o a veces me dice que hay algún error como si no hubiese introducido el nombre o el email, cuando sí lo he introducido.
Les copio todo el código, para que puedan revisarlo y avisarme de cualquier error que puedan ver. Siento la larga extensión, pero es necesaria.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>contacto php</title>
</head>
<body>
<script type="text/javascript">
function validarForm(formulario) {
if(formulario.nombre.value.length==0) {
formulario.nombre.focus();
alert('No has escrito tu nombre');
return false; }
if(formulario.email1.value.length==0) {
formulario.email1.focus();
alert('No has escrito tu e-Mail');
return false; }
if(formulario.email1.value!=formulario.email2.value) {
formulario.email1.focus();
alert('Los e-Mails no coinciden');
return false; }
if(formulario.comentarios.value.length==0) {
formulario.comentarios.focus();
alert('No has escrito ninguna consulta');
return false; }
return true; }
</script>
<h1>Contacto</h1>
<?php
function recogeDato ($campo) {
return isset($_REQUEST[$campo]) ? $_REQUEST[$campo] : '';
}
$email1 = recogeDato('email1');
$email2 = recogeDato('email2');
$localidad = recogeDato('localidad');
$provincia = recogeDato('provincia');
$teléfono = recogeDato('teléfono');
$nombre = recogeDato('nombre');
$consulta = recogeDato('consulta');
$algunerror = FALSE;
$error_nombre = "";
$error_comentarios = "";
$error_email1 = "";
$error_email2 = "";
if (isset($_REQUEST['enviado'])){ if ($nombre=='') {
$algunerror = TRUE;
$error_nombre = '<span class="erróneo">Requerido</span>'; }
if ($consulta=='') {
$algunerror = TRUE;
$error_consulta = '<span class="erróneo">Requerido</span>'; }
if ($email1=='') {
$algunerror = TRUE;
$error_email1 = '<span class="erróneo">Requerido</span>'; }
elseif ($email1!=email2) {
$algunerror = TRUE; $error_email2 = '<span class="erróneo">No coinciden</span>'; } }
if (isset($_REQUEST['enviado'])&&!$algunerror){
$para ="[email protected]";
$asunto ="Contacto web";
$mensaje = "Datos del formulario de contacto:\n";
"Nombre: ".$nombre."\n"; "eMail: ".$eMail."\n";
"Pregunta: ".$consulta."\n";
mail($para, $asunto, $mensaje);
echo "<p>Tu mensaje se ha enviado correctamente. Gracias por contactar con nosotros.</p>";
echo "<p>Nos pondremos en contacto lo antes posible.</p>\n"; }
else { if (isset($_REQUEST['enviado'])){
echo '<p>Por favor, corrige los siguientes errores:</p>'; }
else { echo '<p>Para ponerte en contacto con la Cofradía, rellena el siguiente formulario:</p>'; } ?>
<form method="post" action="contacto.php" onsubmit="return validarForm(this);">
<table id="contacto" width="100%" cellpadding="8" rules="rows" style="text-align:left; width=100%;">
<tbody>
<tr>
<td width="30%">Nombre:</td> <td width="70%"><input type="text" name="nombre" id="nombre" size="50" class="texto_form" value="<?=$nombre;?>" /><?=$error_nombre;?></td>
</tr>
<tr>
<td>Correo electrónico:</td> <td><input type="text" name="email1" id="email1" size="50" class="texto_form" value="<?=$email1;?>" /><?=$error_email1;?></td>
</tr>
<tr>
<td>Repite tu correo:</td> <td><input type="text" name="email2" id="email2" size="50" class="texto_form" value="<?=$email2;?>" /><?=$error_email2;?></td>
</tr>
<tr>
<td>Localidad:</td> <td><input type="text" name="localidad" id="localidad" size="30" class="texto_form" /></td>
</tr>
<tr>
<td>Provincia:</td> <td><select name="provincia" size="30" id="provincia" class="texto_form">
<option<?=($provincia=="")?' selected="seleted"':'';?>>Selec. Provincia</option><option<?=($provincia=="Álava")?' selected="seleted"':'';?>>Álava</option> <option<?=($provincia=="Albacete")?' selected="seleted"':'';?>>Albacete</option> <option<?=($provincia=="Alicante")?' selected="seleted"':'';?>>Alicante</option> </select></td>
</tr>
<tr>
<td>Teléfono:</td> <td><input type="text" name="teléfono" id="teléfono" size="30" class="texto_form" /></td>
</tr>
<td colspan="2">Comentarios:<br/><br/> <p class="centrado"><textarea cols="60" rows="8" name="comentarios" ><?=$comentarios?></textarea><?=$error_comentarios?></p><br/></td>
</tr>
<tr>...