Foros del Web » Programando para Internet » PHP »

Código de Formulario

Estas en el tema de Código de Formulario en el foro de PHP en Foros del Web. Buenas, quería saber si este código php de mi formulario es correcto (el código me lo hizo un amigo), porque al poner "Enviar" no me ...
  #1 (permalink)  
Antiguo 23/01/2011, 20:22
Avatar de Jessi11  
Fecha de Ingreso: enero-2011
Mensajes: 29
Antigüedad: 13 años, 3 meses
Puntos: 1
Código de Formulario

Buenas, quería saber si este código php de mi formulario es correcto (el código me lo hizo un amigo), porque al poner "Enviar" no me llega el e-mail que me debería llegar :S.
Si es que el código esta bien, seguro es problema de mi hosting ya que estoy usando uno gratiuto pero igual dice que la opción de mail está activada.
El hosting que uso es este: http://www.000webhost.com (Free Hosting)

Código PHP:
<?php
error_reporting
E_ALL E_NOTICE );
if ( 
$_POST ) {
    
$message 'Nombre: '.$_POST['nombre'].'<br />';
    
$message .= 'Empresa: '.$_POST['empresa'].'<br />';
    
$message .= 'E-mail: '.$_POST['email'].'<br />';
    
$message .= 'Pais: '.$_POST['pais'].'<br />';
    
$message .= 'Mensaje: '.$_POST['mensaje'].'<br />';
    
mail'[email protected]''Web Contact'$message );
}


?>

<!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>
<title> Formulario de Contacto </title>
</head>

<body>


<!-- FORMULARIO -->
<form method="post" action="contacto.php">
  <table>
        <tr>
            <td width="200"><strong>Nombre:</strong></td>
            <td width="313"><input id="nombre" name="nombre" value="" size="55" type="text" /></td>
        </tr>

        <tr>
            <td height="30"><strong>Empresa:</strong></td>
            <td><input id="empresa" name="empresa" value="" size="55" type="text" /></td>
        </tr>

        <tr>
            <td height="30"><strong>E-mail:</strong></td>
            <td><input id="e-mail" name="email" value="" size="55" type="text" /></td>
        </tr>

        <tr>
            <td height="32"><strong>País:</strong></td>
            <td><input id="pais" name="pais" value="" size="55" type="text" /></td>
        </tr>

        <tr>
            <td height="43"><strong>Mensaje:</strong></td>
            <td rowspan="2"><textarea id="mensaje" name="mensaje" cols="50" rows="6"></textarea></td>
        </tr>

        <tr>
            <td></td>
        </tr>
        <tr>
          <td></td>
          <td><input type="submit" style="width:60%" value="Enviar" />
          <br />
  <?php if ( $_POST ) : ?>
Formulario Enviado Correctamente
  <?php endif; ?>
</td>
</tr>
</table>
</form>

</body>
</html>
Muchas Gracias.
  #2 (permalink)  
Antiguo 23/01/2011, 20:56
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Código de Formulario

Pues puede que el host no te permita enviar mensajes al correo pero por si las dudas prueba agregandole la cabezera a tu sistema:

Antes de la primera variable $message

Código PHP:
Ver original
  1. $headers  = "MIME-Version: 1.0\r\n";
  2.  $headers .= "From: ".$_POST['email']."\n";
  3.  $headers .= "To: ".$TU_MAIL_AQUI."\n";
  4.  $headers .= "Reply-To: ".$_POST['email']."\n";
  5.  $headers .= "Return-Path: ".$_POST['email']."\n";
  6.  $headers .= "X-Priority: 1\n";
  7.  $headers .= "X-Mailer:PHP ".phpversion()."\n";
  8.  $headers .= "Content-type: text/html; charset=ISO-8859-1 \r\n";

La función quedaría algo asi

Código PHP:
Ver original
  1. mail( '[email protected]', 'Web Contact', $message, $headers)

Suerte!
  #3 (permalink)  
Antiguo 24/01/2011, 07:48
 
Fecha de Ingreso: febrero-2005
Mensajes: 187
Antigüedad: 19 años, 2 meses
Puntos: 2
Respuesta: Código de Formulario

No te sale ningun error?

Imprime la variabl mensaje para que veas si te envia los datos del form. Asi:

Código PHP:
<?php
error_reporting
E_ALL E_NOTICE );
if ( 
$_POST ) {
    
$message 'Nombre: '.$_POST['nombre'].'<br />';
    
$message .= 'Empresa: '.$_POST['empresa'].'<br />';
    
$message .= 'E-mail: '.$_POST['email'].'<br />';
    
$message .= 'Pais: '.$_POST['pais'].'<br />';
    
$message .= 'Mensaje: '.$_POST['mensaje'].'<br />';
    echo 
$message;
    
mail'[email protected]''Web Contact'$message );
}


?>
__________________
___________________________
Hosting y Dominios en colombia
Blog de Cubica
  #4 (permalink)  
Antiguo 24/01/2011, 10:03
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Código de Formulario

puedes intentar con esto
Código PHP:
Ver original
  1. ini_set("display_errors",1);//si no esta habilitado el despliegue de errores lo intentamos habilitar
  2. error_reporting(E_ALL);//para que nos indique los posibles errores si el ini_set tuvo exito
  3. if ($_POST) {
  4.     $message = 'Nombre: '.$_POST['nombre'].'<br />';
  5.     $message .= 'Empresa: '.$_POST['empresa'].'<br />';
  6.     $message .= 'E-mail: '.$_POST['email'].'<br />';
  7.     $message .= 'Pais: '.$_POST['pais'].'<br />';
  8.     $message .= 'Mensaje: '.$_POST['mensaje'];
  9.     if(mail( '[email protected]', 'Web Contact', $message )){
  10.         echo 'Formulario Enviado Correctamente';
  11.     else
  12.         echo 'Error de envio';
  13. }
en cuanto el html, me tomo la libertad de hacer unos cambios, espero y no te moleste
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <title> Formulario de Contacto </title>
  4. <style type="text/css" media="screen">
  5. form{
  6.     width:513px;
  7.     text-align:center;
  8. }
  9. label{
  10.     float:left;
  11.     font-weight:bold;
  12.     text-align:left;
  13.     width:200px;
  14. }
  15. .text{
  16.     margin-left:100px;
  17. }
  18. textarea{
  19.     margin-bottom:10px;
  20. }
  21. </head>
  22.  
  23. <!-- FORMULARIO -->
  24. <form method="post" action="contacto.php">
  25.     <label>Nombre:</label>
  26.     <input id="nombre" name="nombre" value="" size="55" type="text" class="text" />
  27.     <label>Empresa:</label>
  28.     <input id="empresa" name="empresa" value="" size="55" type="text" class="text" />
  29.     <label>E-mail:</label>
  30.     <input id="e-mail" name="email" value="" size="55" type="text" class="text" />
  31.     <label>País:</label>
  32.     <input id="pais" name="pais" value="" size="55" type="text" class="text" />
  33.     <label>Mensaje:</label>
  34.     <textarea id="mensaje" name="mensaje" cols="50" rows="6"></textarea>
  35.     <input type="submit" style="width:60%" value="Enviar" />
  36. </form>
  37. </body>
  38. </html>
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 24/01/2011, 19:57
Avatar de Jessi11  
Fecha de Ingreso: enero-2011
Mensajes: 29
Antigüedad: 13 años, 3 meses
Puntos: 1
Mensaje Respuesta: Código de Formulario

Gracias a los que contestaron! En este momento estoy realizando el cambio de hosting (me cambié a uno pago llamado Hostgator), ya que necesito uno que tenga la opción de enviar e-mail. Cuando ya lo tenga pruebo bien los códigos que me pasaron aver cual anda bien.

Apropósito, hay algún servidor tipo Appserv pero en donde funcione el php del formulario, así puedo ir probando. ??

Gracias.
  #6 (permalink)  
Antiguo 25/01/2011, 09:36
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Código de Formulario

un servidor local, sea con appserv, xamp, wamp, etc. te debería de funcionar para tus pruebas sin ningún tipo de incoveniente, claro a excepcion del mail que para este último tendrías que instalar un servidor de correo.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: formulario
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 17:30.