Foros del Web » Creando para Internet » HTML »

quisiera saber si mi formulario que hize en PHP esta bien hecho

Estas en el tema de quisiera saber si mi formulario que hize en PHP esta bien hecho en el foro de HTML en Foros del Web. <title>Formulario</title> </head> <body> <table width="343" border="0" align="center"> <tr> <td><form name="form1" method="post" action="enviar.php"> <table width="338" border="0"> <tr> <td>Nombre:</td> <td><input name="nombre" type="text" id="nombre"></td> </tr> <tr> <td>Email:</td> <td><input ...
  #1 (permalink)  
Antiguo 21/11/2011, 14:05
 
Fecha de Ingreso: noviembre-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
quisiera saber si mi formulario que hize en PHP esta bien hecho

<title>Formulario</title>
</head>

<body>
<table width="343" border="0" align="center">
<tr> <td><form name="form1" method="post" action="enviar.php">
<table width="338" border="0">
<tr>
<td>Nombre:</td>
<td><input name="nombre" type="text" id="nombre"></td>
</tr>
<tr>
<td>Email:</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td>Mensaje:</td>
<td><textarea name="msg" rows="10" id="msg"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Enviar" /></td>
<td>&nbsp;</td>
</tr>
</table>
</form></td>
</tr> </table>
<p><?php

$mail='[email protected]';


$nombre = $_POST['nombre'];
$email = $_POST['email'];
$msg = $_POST['msg'];

$thank="index.html";

$message = "
nombre:".$nombre."
email:".$email."
msg:".$msg."";

if (mail($mail,"consulta",$message))
Header ("Location: $thank");

?> &nbsp;</p>
</body>
</html>
  #2 (permalink)  
Antiguo 21/11/2011, 15:16
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: quisiera saber si mi formulario que hize en PHP esta bien hecho

Funciona?

Pues en teoría debería estar bien. Solo habría que poner el código PHP hasta arriba y cambiar el nombre del archivo a enviar.php

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 21/11/2011, 16:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: quisiera saber si mi formulario que hize en PHP esta bien hecho

sabrina_avella:

Eso asi como está no te va a funcionar, el php para enviar el email, está correcto, aunque es muy básico, yo vería de hacerle algunas mejoras, pero el problema es otro ya que pusiste el form y el php que procesa en una misma página y no hay ningún tipo de condición de cuando debe procesarce el form. vale decir que cualquier persona que entre a enviar.php automáticamente provocará que tu email sea despachado y se redirija al index.html, y te va a llegar esto

asunto: consulta
cuerpo del mensaje
nombre:
email:
msg:

es más ni siquiera van a ver el form, por la redirección
lo minimo que tendrias que hacer es encerrar el envio del email entre una condición como

Código PHP:
Ver original
  1. if(isset($_POST['Submit'])){
  2.  
  3. // aqui tu código
  4.  
  5. }

Pero como ya te señalé, el procesamiento es bastante precario y necesita mejoras, una validación minima, pasar headers a mail(), por citar algunas.

Te dejo 2 tutoriales

http://www.w3schools.com/php/php_mail.asp
http://www.w3schools.com/php/php_secure_mail.asp

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 21/11/2011, 23:57
 
Fecha de Ingreso: noviembre-2011
Ubicación: Morelia, Mich, México
Mensajes: 95
Antigüedad: 13 años
Puntos: 18
Respuesta: quisiera saber si mi formulario que hize en PHP esta bien hecho

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Formulario</title>
  4. </head>
  5.  
  6. <body>
  7. <table width="343" border="0" align="center">
  8. <tr> <td><form name="form1" method="post" action="enviar.php">
  9. <table width="338" border="0">
  10. <tr>
  11. <td>Nombre:</td>
  12. <td><input name="nombre" type="text" id="nombre"></td>
  13. </tr>
  14. <tr>
  15. <td>Email:</td>
  16. <td><input name="email" type="text" id="email"></td>
  17. </tr>
  18. <tr>
  19. <td>Mensaje:</td>
  20. <td><textarea name="msg" rows="10" id="msg"></textarea></td>
  21. </tr>
  22. <tr>
  23. <td><input type="submit" name="Submit" value="Enviar" /></td>
  24. <td>&nbsp;</td>
  25. </tr>
  26. </table>
  27. </form></td>
  28. </tr> </table>
  29. <p><?php
  30. if(isset($_POST['Submit'])){
  31.  
  32.  
  33. $nombre = $_POST['nombre'];
  34. $email = $_POST['email'];
  35. $msg = $_POST['msg'];
  36.  
  37. $thank="index.html";
  38.  
  39. $message = "
  40. nombre:".$nombre."
  41. email:".$email."
  42. msg:".$msg."";
  43.  
  44. if (mail($mail,"consulta",$message))
  45. Header ("Location: $thank");
  46. }
  47. ?> &nbsp;</p>
  48. </body>
  49. </html>

asi deberia quedar tu formulario para que funcione, sin embargo como dice emprear necesita muchas mejoras, saludos
__________________
Que de Cosas - Tienda En linea México

La Batalla Por tu cuerpo - Dietas|Rutinas|Entrenamientos|Salud
  #5 (permalink)  
Antiguo 22/11/2011, 00:23
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: quisiera saber si mi formulario que hize en PHP esta bien hecho

@quedecosas, Creo ese código te daría error, ya que no puedes poner un header() después de cualquier código html. Por eso le dije que debería ponerlo al principio.

Saludos
__________________
Grupo Telegram Docker en Español
  #6 (permalink)  
Antiguo 22/11/2011, 01:11
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: quisiera saber si mi formulario que hize en PHP esta bien hecho

@carlangueitor

una aclaración respecto de los headers() de php, no siempre una salida html previo al envío del header genera un error

manual php
Cita:
Nota:

Se puede usar búfer de salida para evitar este problema, procesando en el servidor todo el contenido a mostrar en el navegador antes de ser enviado. Se puede hacer esto usando ob_start() y ob_end_flush() en el script, o definiendo la directiva output_buffering en el php.ini o en los ficheros de configuración del servidor.
Y en muchos casos los servidores tienen configurado
output_buffering = 4096 en php.ini, con lo que el error no se genera.

De todas formas, la práctica correcta para evitar cualquier tipo de problema, es pasarlos al inicio del php, previos a cualquier salida html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:10.