Cómo crear un formulario HTML para colgarlo en mi web

Quisiera hacer un formulario con 5 campos (Nombre, Empresa, E-mail, asunto y Mensaje) con 2 botones (Enviar formulario y Limpiar formulario) que me permita recibir por mail las consultas de los visitadores. Me gustaría poder mostrar cualquier cartel que diga "se ha enviado su consulta exitosamente" o algo parecido. Estoy trabajando con el iWeb que me permite colgar fragmentos HTML sin problema y mi página web los soporta.
He probado un código anteriormente todo en HTML sin necesidad de copiar otros archivos al servidos y han funcionado bien, salvo que los formatos no eran lo que yo quería y sinceramente de programación no entiendo un pomo.

1 respuesta

Respuesta
1
El mejor sitio que he utilizado para esas formas esta en http://www.bravenet.com/
Donde tienen la opción 'Email Forms' que puedes utilizar.
Suerte!
Fernando.
Hola,
Estuve probando con algunos formularios para no tener que redirigirme a una página externa
y coneguí lo siguiente.
El único problema lo tengo con el contact.php porque al enviar el formulario me sale una página con códigos raros.
El servidor soporta php.
Agradeceré resolver este problema, desde ya mil gracias!
Archivo html:
<html>
<body>
<font face=Arial size=2> 
<form method="post" action="contact.php"> 
<table bgcolor=#ffffcc align=center>
<tr>
<td colspan=2><strong>Formulario de contacto:</strong></td>
</tr>
<tr>
<td><font color=red>*</font> Nombre:</td>
<td><input size=25 name="Nombre"></td>
</tr>
<tr>
<td><font color=red>*</font> Email:</td>
<td><input size=25 name="Email"></td>
</tr>
<tr>
<td>Empresa:</td>
<td><input size=25 name="Empresa"></td>
</tr>
<tr>
<td>Asunto:</td>
<td><input size=25 name="Asunto"></td>
</tr>
<tr>
<td colspan=2>Mensaje:</td>
</tr>
<tr>
<td colspan=2 align=left><textarea name="Mensaje" rows=7 cols=32></textarea></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit name="send" value=" Enviar "> <input type=reset name="borrar" value=" Borrar "></td>
</tr>
<tr>
<td colspan=2 align=center><small><font color=red>*</font> campo requerido</small></td>
</tr>
</table>
</form> 
</body>
</html>
archivo contact.php:
<?php
// get posted data into local variables
$EmailTo = "[email protected]";
$Subject = "Website Contact Form";
$Nombre = Trim(stripslashes($_POST['Nombre'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Empresa = Trim(stripslashes($_POST['Empresa'])); 
$Asunto = Trim(stripslashes($_POST['Asunto'])); 
$Mensaje = Trim(stripslashes($_POST['Mensaje'])); 
// validation
$validationOK=true;
if (Trim($Nombre)=="") $validationOK=false;
if (Trim($Email)=="") $validationOK=false;
if (!$validationOK) {
  print "
<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">
";
  exit;
}
// prepare email body text
$Body = "";
$Body .= "Nombre: ";
$Body .= $Nombre;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Empresa: ";
$Body .= $Empresa;
$Body .= "\n";
$Body .= "Asunto: ";
$Body .= $Asunto;
$Body .= "\n";
$Body .= "Mensaje: ";
$Body .= $Mensaje;
$Body .= "\n";
// send email 
$success = mail($EmailTo, $Subject, $Body);
// redirect to success page 
if ($success){
  print "
<meta http-equiv=\"refresh\" content=\"0;URL=http://www.diriperu.com/DIRIPERU/Contacto.html\">
";
}
else{
echo "
<script>"; 
echo "alert('El formulario no ha sido enviado correctamente');"; 
echo "</script>
";
}  
}
?>
Esta pregunta se la debe hacer a los Administradores en aqphost.com
El código se ve bien, pero ellos tienen que determinar porque es que el formulario esta respondiendo con el archivo en...
http://www.diriperu.com/DIRIPERU//Contacto_files/contact.php
que incluye el codigo en contact.php
A sus ordenes,
Fernando Doylet Auson
http://resume.doylet.org
Pude por fin arreglar el archivo php. Ahora anda perfecto. El único problema es que manda sólo mail a una casilla.
¿Cómo puedo agregar otro destino para recibir el formulario?
Muchas gracias!
<?php
// get posted data into local variables
$EmailTo = "[email protected]";
$Subject = "Website Contact Form";
$Nombre = Trim(stripslashes($_POST['Nombre'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Empresa = Trim(stripslashes($_POST['Empresa'])); 
$Asunto = Trim(stripslashes($_POST['Asunto'])); 
$Mensaje = Trim(stripslashes($_POST['Mensaje'])); 
// validation
$validationOK=true;
if (Trim($Nombre)=="") $validationOK=false;
if (Trim($Email)=="") $validationOK=false;
if (!$validationOK) {
  print "
<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">
";
  exit;
}
// prepare email body text
$Body = "";
$Body .= "Nombre: ";
$Body .= $Nombre;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Empresa: ";
$Body .= $Empresa;
$Body .= "\n";
$Body .= "Asunto: ";
$Body .= $Asunto;
$Body .= "\n";
$Body .= "Mensaje: ";
$Body .= $Mensaje;
$Body .= "\n";
// send email 
$success = mail($EmailTo, $Subject, $Body);
// redirect to success page 
if ($success){
  print "
<meta http-equiv=\"refresh\" content=\"0;URL=http://www.diriperu.com/DIRIPERU/Contacto.html\">
";
}
else{
echo "
<script>"; 
echo "alert('El formulario no ha sido enviado correctamente');"; 
echo "</script>
";
}  
?>
Para enviarlo a otro email hay dos opciones:
1. Copiando las siguientes lineas despues de: if ($success){
    $EmailTo = "[email protected]";
    $success = mail($EmailTo, $Subject, $Body);
    Y cambiando la dirección de email por la segunda dirección a la que desean que vaya.
2. Cambiando el seteado de la casilla del primer email, para que identifique los emails provenientes de la forma, y les haga un reenvío automático a la segunda dirección de email.
Suerte!
Fernando.
Gracias Fernando.
¿Podrías confirmarme si el código final está bien así?
<?php
// get posted data into local variables
$EmailTo = "[email protected]";
$Subject = "Website Contact Form";
$Nombre = Trim(stripslashes($_POST['Nombre']));
$Email = Trim(stripslashes($_POST['Email']));
$Empresa = Trim(stripslashes($_POST['Empresa']));
$Asunto = Trim(stripslashes($_POST['Asunto']));
$Mensaje = Trim(stripslashes($_POST['Mensaje']));
// validation
$validationOK=true;
if (Trim($Nombre)=="") $validationOK=false;
if (Trim($Email)=="") $validationOK=false;
if (!$validationOK) {
print "
<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">
";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Nombre: ";
$Body .= $Nombre;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Empresa: ";
$Body .= $Empresa;
$Body .= "\n";
$Body .= "Asunto: ";
$Body .= $Asunto;
$Body .= "\n";
$Body .= "Mensaje: ";
$Body .= $Mensaje;
$Body .= "\n";
// send email
$success = mail($EmailTo, $Subject, $Body);
// redirect to success page
if ($success){
$EmailTo = "[email protected]";
$success = mail($EmailTo, $Subject, $Body);
print "
<meta http-equiv=\"refresh\" content=\"0;URL=http://www.diriperu.com/DIRIPERU/Contacto.html\">
";
}
else{
echo "
<script>";
echo "alert('El formulario no ha sido enviado correctamente');";
echo "</script>
";
}
?>
Se ve bien así,
Fernando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas