Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/06/2008, 23:10
otto1303
 
Fecha de Ingreso: noviembre-2006
Ubicación: Evergreen Street
Mensajes: 239
Antigüedad: 18 años
Puntos: 2
Respuesta: Como Puedo Hacer Que Mi Formulario Funcione

Hola Víctor me he tomado libertad de hacer unas modificaciones a tu formulario y si me lo permites hacerte algunas sugerencias.

Sugerencias:
  • Primero, al escribir en mayúsculas en un foro significa gritar y no ha todos nos gusta que nos griten.
  • El action que estás usando del sitio del Ingeniero Sergio Cabrera (www.leccionweb.org) es un script en pearl que ya no está vigente en el sitio, ya lo probé y no funciona.
  • Te cambio el action script por medio de un archivo PHP, una ventaja es que tu mail queda escondido en el PHP y así evitas que te manden Spam.
  • El botón Borrar ya no se usa, pues si alguien comete un error no borra todos los datos sino solo el dato incorrecto.
  • Hay otras cosas en el formulario por modificar, pero creo que es suficente por hoy.

Le quité los archivos ocultos y cambié el action por formulario.php que será el que procese al formulario.htm. siguiente:

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Formulario</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</head>
<table border="1" width="85%" height="100%" align="center" bordercolor="orange">
<tbody>
<tr>

<td align="center" height="400">
<center>
<br>
COMENTARIOS SUGERENCIAS Y PREGUNTAS </center>
<form action="formulario.php" method="Post" name="formulario1" id="formulario1">
  <br>
<center>
<table border="1" cols="1" width="95%">
<tbody>
<tr>
<td valign="top" align="center">
<div align="center"><font face="Arial, Helvetica, sans-serif"><br>
NOMBRE:
<input type="text" name="realname" size="30" maxlength="40">
&nbsp;&nbsp;EMAIL:</font><font face="Arial, Helvetica, sans-serif">
<input type="text" name="email" size="30" maxlength="40">
<br>
</font> </div>
<hr width="95%">
<font face="Arial, Helvetica, sans-serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMENTARIOS:</font>
<font face="Arial, Helvetica, sans-serif"><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<textarea name="comentarios" cols="60" rows="10" id="comentarios"></textarea>
</font>
<center>
<table>
<tbody> 
<tr>
<td> 
<input type="submit" value="ENVIAR">
</td>
</tr>
</tbody> 
</table>
</center>
</td>
</tr>
</tbody>
</table>
</center>
</form>
</td>
</tr>
<tr>
<td valign="Bottom" height="1%">
<center><font size="-2">&copy;</font><br>
<font size="-2" color="blue">Victor de la Rosa</a>
</font></center>
</td>
</tr>
</tbody>
</table>

</body>
</html>
Luego he creado el archivo formulario.php (He utilizado un programa que lo valida, se llama PHP-Form Wizard 1.2.5)

Código:
<?php
// Receiving variables
@$pfw_ip= $_SERVER['REMOTE_ADDR'];
@$realname = addslashes($_POST['realname']);
@$email = addslashes($_POST['email']);
@$comentarios = addslashes($_POST['comentarios']);

// Validation
if (strlen($realname) <5)
{
die("<p align='center'><b><font face='Verdana' size='5' color='#FF0000'>Por favor ingrese nombre y apellido.</font></b></p>");
}
if (strlen($realname) >30)
{
die("<p align='center'><b><font face='Verdana' size='5' color='#FF0000'>Por favor ingrese nombre y apellido.</font></b></p>");
}

if (strlen($realname) == 0 )
{
die("<p align='center'><b><font face='Verdana' size='5' color='#FF0000'>Por favor ingrese nombre y apellido.</font></b></p>");
}

if (! ereg('[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+', $email))
{
die("<p align='center'><b><font face='Verdana' size='5' color='#FF0000'>Ingrese una direcci&oacute;n de Email v&aacute;lida.</font></b></p>");
}

if (strlen($email) == 0 )
{
die("<p align='center'><b><font face='Verdana' size='5' color='#FF0000'>Ingrese una direcci&oacute;n de Email v&aacute;lida.</font></b></p>");
}

if (strlen($comentarios) <5)
{
die("<p align='center'><b><font face='Verdana' size='5' color='#FF0000'>El m&iacute;nimo de caracteres es 5, el m&aacute;ximo es 200 o no ha escrito comentarios.</font></b></p>");
}
if (strlen($comentarios) >200)
{
die("<p align='center'><b><font face='Verdana' size='5' color='#FF0000'>El m&iacute;nimo de caracteres es 5, el m&aacute;ximo es 200 o no ha escrito comentarios.</font></b></p>");
}

if (strlen($comentarios) == 0 )
{
die("<p align='center'><b><font face='Verdana' size='5' color='#FF0000'>El m&iacute;nimo de caracteres es 5, el m&aacute;ximo es 200 o no ha escrito comentarios.</font></b></p>");
}

//Sending Email to form owner
$pfw_header = "From: $email\n"
  . "Reply-To: $email\n";
$pfw_subject = "Datos enviados desde la Pagina";
$pfw_email_to = "[email protected]";
$pfw_message = "IP del visitante: $pfw_ip\n"
. "Nombre: $realname\n"
. "E-mail: $email\n"
. "Comentarios: $comentarios\n";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

//Sending auto respond Email to visitor
$pfw_header = "From: [email protected]\n"
  . "Reply-To: [email protected]\n";
$pfw_subject = "Mensaje recibido";
$pfw_email_to = "$email";
$pfw_message = "$realname:\n"
. "Su mensaje ha sido recibido satisfactoriamente. \n"
. "Si necesita respuesta la recibrá lo antes posible a su dirección: $email";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header ) ;

 echo("<p align='center'><b><font face='Verdana' size='5' color='#008000'>El mensaje ha sido enviado con éxito.</font></b></p>");
?>
Por supuesto, es necesario que tu servidor pueda ejectuar PHP y que la funcion(mail) esté activada.

Última edición por otto1303; 20/06/2008 a las 23:16