Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/09/2011, 20:29
Avatar de hasdpk
hasdpk
 
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 8 meses
Puntos: 297
Respuesta: mi primer formulario php opiniones y como validar campos

Voy a ser la única alma caritativa que te va a responder XD

Te voy a dar desde mi punto de vista, los fallos que has cometido, y después te paso el script siguiendo ese guión.

HTML
- No tienes la etiqueta Doctype.
- No tienes la etiqueta HTML.
- No tienes las etiquetas head y body.
- Si vas a procesar el formulario en la misma página, no hace falta que declares un "action" en el form.
- El method está mal declarado.
- No te aconsejo el uso de tablas. Úsalas cuando vayas a crear una tabla de verdad.
- La etiqueta <font> no se usa practicamente, se hace con CSS.
- La etiqueta <b>, se ha reemplazo por <strong>.
- Si un input no tiene un valor, no declares "value".
- La etiqueta <br>, se ha reemplazado por <br />.
- La etiqueta <center> está condenada a desaparecer (HTML5).

PHP
- En el $header no hace falta que pongas \r\n, ya que no vas a introducir más parámetros.
- Puedes meter $_POST dentro de la cadena usando llaves "{$_POST}".

La forma en la que lo haría yo es la siguiente, que no quiere decir que sea la mejor:

Código PHP:
Ver original
  1. <?
  2.  
  3.     if ($_POST) {
  4.    
  5.         //cuerpo del formulario
  6.         $cuerpo  = "Formulario enviado desde la web:\n";
  7.         $cuerpo .= "Nombre: {$_POST['nombre']}\n";
  8.         $cuerpo .= "Email: {$_POST['email']}\n";
  9.         $cuerpo .= "Telefono: {$_POST['telefono']}";
  10.  
  11.         // nombre de quien envia
  12.         $cabeza = "From: $_POST['nombre'] <{$_POST['email']}>";
  13.  
  14.         //envio correo...
  15.         if (mail("[email protected]", "Formulario recibido", $cuerpo, $cabeza)) {
  16.        
  17.             //Agradecimiento.
  18.             echo "<p style='text-align: center;'><strong>Gracias por tu solicitud. En breve recibiras nuestras noticias.</strong><br /><br /><img src=images/ok.png></p>";
  19.        
  20.             //Paramos todo lo que hay apartir de aquí.
  21.             exit;
  22.            
  23.         }
  24.        
  25.     }
  26.  
  27. ?>
  28.  
  29. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  30. <html xmlns="http://www.w3.org/1999/xhtml">
  31.  
  32.     <head>
  33.    
  34.         <meta http-equiv="Content-Type" content="text/html; charset=latin1;">
  35.    
  36.     </head>
  37.    
  38.     <body>
  39.    
  40.         <form method="POST">
  41.        
  42.             <label for="nombre"><strong>Nombre:</strong></label><br />
  43.             <input type="text" name="nombre" id="nombre">
  44.            
  45.             <br /><br />
  46.            
  47.             <label for="email"><strong>Email:</strong></label><br />
  48.             <input type="text" name="email" id="email">
  49.            
  50.             <br /><br />
  51.            
  52.             <label for="telefono"><strong>Teléfono:</strong></label><br />
  53.             <input type="text" name="telefono" id="telefono">
  54.            
  55.             <br /><br />
  56.  
  57.             <input type="image" src="images/button.png" alt="Solicitar más información ahora">
  58.            
  59.         </form>    
  60.    
  61.     </body>
  62.    
  63. </html>