Foros del Web » Programando para Internet » PHP »

problema con formulario php

Estas en el tema de problema con formulario php en el foro de PHP en Foros del Web. Hola, bueno como bien dice el titulo tengo un problema con un formulario de "contacto" php. La cosa es que yo necesito un formulario para ...
  #1 (permalink)  
Antiguo 13/05/2011, 10:09
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
problema con formulario php

Hola, bueno como bien dice el titulo tengo un problema con un formulario de "contacto" php.
La cosa es que yo necesito un formulario para que la gente lo complete y me pueda llegar a mi e-mail con los datos que ellos pusieron.
Yo actualmente tengo este formulario:

contacto.html

Código PHP:
<table width="343" border="0">  <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" id="msg"></textarea></td>
    </
tr>
    <
tr>
      <
td><input type="submit" name="Submit" value="Enviar"></td>
      <
td>&nbsp;</td>
    </
tr>
  </
table>    
</
form></td>  
</
tr> </table
Y el enviar.php

Código PHP:
<?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"); 
   
 
?>
Cuando completo el formulario. Doy en el botón enviar. Y automáticamente me lleva al $thank="index.html"; , pero nunca me llega ningún e-mail.
Estoy usando el host 000webhost.com y tengo entendido que con ese funciona bien.
Espero alguna ayuda (: .
Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 13/05/2011, 12:09
Avatar de TEPO  
Fecha de Ingreso: febrero-2010
Mensajes: 235
Antigüedad: 14 años, 3 meses
Puntos: 23
Respuesta: problema con formulario php

Mira, no lei mucho el codigo php, el form esta bien, te paso el codigo php que uso siempre yo y funciona barbaro, despues vos tenes que ir completandolo con los datos correspondientes, ojo, tambien puede ser un problema de hosting, si no te funciona el codigo que te paso, yo te diria que te comuniques con tu hosting y le comentes el problema.

Código:
<?php
/*----------- INICIO DE CONFIGURACION-----------------*/
//mail del destinatario (escribirlo entre las comillas)
$destino=' tu direccion Web ';
//nombre del que envía el correo (escribirlo entre las comillas)
$origen_nombre='Contacto';
//mail del que envía el correo (escribirlo entre las comillas)
$origen_mail='Web';
//título del corrreo (escribirlo entre las comillas)
$subject='Mensaje de Consulta';
//página a la que se va luego de enviar el mail (escribirlo entre las comillas)
$adondevoy='envioForm.html';
/*----------- FIN DE LA CONFIGURACION-----------------*/
$headers = "From: $origen_nombre <$origen_mail>\r\n";
$headers .= "Reply-To: $origen_mail\r\n"; 
$headers .= "Return-Path: $origen_nombre <$origen_mail>\r\n";  
$mensaje='';
	foreach($_POST as $k => $v){
		$v=strtr($v,"\r\n\t","   ");
		if($k!='Submit' && $k!='Enviar'){
			$mensaje.=ucfirst($k).": $v\n";
		}
	}

mail($destino,$subject,$mensaje,$headers);
header("Location:$adondevoy");
?>
Luego chequea que coincida todo.
Saludos.
  #3 (permalink)  
Antiguo 13/05/2011, 12:39
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con formulario php

Mira lo reemplaze por ese y me quedo asi:
Código PHP:
 <?php
/*----------- INICIO DE CONFIGURACION-----------------*/
//mail del destinatario (escribirlo entre las comillas)
$destino='[email protected]';
//nombre del que envía el correo (escribirlo entre las comillas)
$nombre='nombre';
//mail del que envía el correo (escribirlo entre las comillas)
$email='email';
//título del corrreo (escribirlo entre las comillas)
$subject='Mensaje de Consulta';
//página a la que se va luego de enviar el mail (escribirlo entre las comillas)
$adondevoy='index.html';
/*----------- FIN DE LA CONFIGURACION-----------------*/
$headers "From: $nombre <$email>\r\n";
$headers .= "Reply-To: $email\r\n"
$headers .= "Return-Path: $nombre <$email>\r\n";  
$mensaje='';
    foreach(
$_POST as $k => $v){
        
$v=strtr($v,"\r\n\t","   ");
        if(
$k!='Submit' && $k!='Enviar'){
            
$mensaje.=ucfirst($k).": $v\n";
        }
    }

mail($destino,$subject,$mensaje,$headers);
header("Location:$adondevoy");
?>
Supongo que esta bien asi.
Pero sigue sin llegar el e-mai.
Cuando le doy al botón enviar. me manda al index.html asique supongo que esta bien. Pero nunca llega nada a mi correo :S
  #4 (permalink)  
Antiguo 14/05/2011, 13:09
Avatar de TEPO  
Fecha de Ingreso: febrero-2010
Mensajes: 235
Antigüedad: 14 años, 3 meses
Puntos: 23
Respuesta: problema con formulario php

Habla con el Hosting, seguramente es un problema de ellos, algo desabilitado.
  #5 (permalink)  
Antiguo 15/05/2011, 05:25
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

Hola.

Vamos a retocar un poco ese código... Lo primero, indiquemos el tipo de contenido que enviamos:

Código PHP:
Ver original
  1. $headers = "MIME-Version: 1.0 \r\n";
  2. $headers .= "Content-Type: text/html; charset=utf-8 \r\n";

En este caso, para el recoger el mensaje, mejor que un foreach, recoge directamente los datos y trátalos:

$mensaje = strip_tags($_POST['mensaje']); // mensaje en texto plano
$mensaje_html = preg_replace('/\n/' , '<br />' , $mensaje); // mensaje en html (el que utilizaremos)

Ahora comprobemos si realmente envía el e-mail. En el final del código, reemplaza mail() y header() por lo siguiente:

Código PHP:
Ver original
  1. if( !mail( $destino , $subject , $mensaje , $headers ) )
  2. {
  3.   echo 'el mail no se ha enviado';
  4.   exit();
  5. }
  6. else
  7. {
  8.   echo 'e-mail enviado';
  9.   exit();
  10. }


Y mezclándolo todo te quedaría lo siguiente:

Código PHP:
Ver original
  1. /*----------- FIN DE LA CONFIGURACION-----------------*/
  2. $headers = "MIME-Version: 1.0 \r\n";
  3. $headers .= "Content-Type: text/html; charset=utf-8 \r\n";
  4. $headers .= "From: $nombre <$email>\r\n";
  5. $headers .= "Reply-To: $email\r\n";
  6. $headers .= "Return-Path: $nombre <$email>\r\n";  
  7.  
  8. $mensaje = strip_tags($_POST['mensaje']);  // mensaje en texto plano
  9.   $mensaje_html = preg_replace('/\n/' , '<br />' , $mensaje); // mensaje en html (el que utilizaremos en este caso, ya que así lo hemos establecido en Content-Type)
  10.  
  11. if( !mail( $destino , $subject , $mensaje , $headers ) )
  12. {
  13.   echo 'el mail no se ha enviado';
  14.   exit();
  15. }
  16. else
  17. {
  18.   echo 'e-mail enviado';
  19.   exit();
  20. }


Podría ser que el hosting tenga inhabilitado el envío de e-mails a través de php... Pero ahora ya tienes un código un poco más optimizado. Además, si tu intención es que tus correos lleguen a la bandeja de entrada y no al correo no deseado, deberás utilizar algo un poco más complejo y al mismo tiempo sencillo: la clase PHPMailer. Así podrás enviar a través de un servidor smtp seguro. Además PHPMailer te da la posibilidad de enviar el correo en html y en texto plano (así utilizaríamos $mensaje y $mensaje_html), para clientes ftp que no soporten html o lo tengan deshabilitado.

También te recomiendo confeccionar un poco los e-mails a enviar en html, a poder ser utilizando tablas para una mayor compatibilidad.
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.
  #6 (permalink)  
Antiguo 15/05/2011, 09:37
Avatar de TEPO  
Fecha de Ingreso: febrero-2010
Mensajes: 235
Antigüedad: 14 años, 3 meses
Puntos: 23
Respuesta: problema con formulario php

Gracias KoswiDigital, voy a tener en cta. lo de optimizar el codigo php.-
  #7 (permalink)  
Antiguo 15/05/2011, 10:14
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

Cita:
Iniciado por KoswiDigital
para clientes ftp que no soporten html o lo tengan deshabilitado.
Perdón, clientes e-mail :)


No hay de qué, prueba y así sabrás si el e-mail realmente se envía o no. Saludos.
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.
  #8 (permalink)  
Antiguo 15/05/2011, 11:08
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problema con formulario php

Hola yo tambien uso ese hosting y uso la funcion mail pelada y anda de 10,
lo que si uso una cuenta gmail (aunque no es mi preferida, yo le digo bocina de avion...)
en mi firma esta el sitio
  #9 (permalink)  
Antiguo 15/05/2011, 11:31
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

Cierto, 000webhost no tiene restricción en el envío a través de mail();
Ahora acabo de ver algunos errores (las variables no están concatenadas con el texto)... Corrige el último código a lo siguiente:

Código PHP:
Ver original
  1. /*----------- FIN DE LA CONFIGURACION-----------------*/
  2. $headers = "MIME-Version: 1.0 \r\n";
  3. $headers .= "Content-Type: text/html; charset=utf-8 \r\n";
  4. $headers .= "From: ".$nombre." \r\n";
  5. $headers .= "Reply-To: ".$email." \r\n";
  6. $headers .= "Return-Path: ".$nombre." \r\n";  
  7.  
  8. $mensaje = strip_tags($_POST['mensaje']);  // mensaje en texto plano
  9.   $mensaje_html = preg_replace('/\n/' , '<br />' , $mensaje); // mensaje en html (el que utilizaremos en este caso, ya que así lo hemos establecido en Content-Type)
  10.  
  11. if( !mail( $destino , $subject , $mensaje , $headers ) )
  12. {
  13.   echo 'el mail no se ha enviado';
  14.   exit();
  15. }
  16. else
  17. {
  18.   echo 'e-mail enviado';
  19.   exit();
  20. }


Así debería de funcionar correctamente.
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.
  #10 (permalink)  
Antiguo 15/05/2011, 18:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con formulario php

En fin me quedo algo como esto :
Php:

Código PHP:
<?php 
/*----------- INICIO DE CONFIGURACION-----------------*/ 
//mail del destinatario (escribirlo entre las comillas) 
$destino='[email protected]'
//nombre del que envía el correo (escribirlo entre las comillas) 
$nombre='nombre'
//mail del que envía el correo (escribirlo entre las comillas) 
$email='email'
//título del corrreo (escribirlo entre las comillas) 
$subject='Mensaje de Consulta'
//página a la que se va luego de enviar el mail (escribirlo entre las comillas) 
$adondevoy='index.html'
/*----------- FIN DE LA CONFIGURACION-----------------*/
$headers "MIME-Version: 1.0 \r\n";
$headers .= "Content-Type: text/html; charset=utf-8 \r\n";
$headers .= "From: ".$nombre." \r\n";
$headers .= "Reply-To: ".$email." \r\n"
$headers .= "Return-Path: ".$nombre." \r\n"; *
*
$mensaje strip_tags($_POST['mensaje']); *// mensaje en texto plano
$mensaje_html preg_replace('/\n/' '<br />' $mensaje); // mensaje en html (el que utilizaremos en este caso, ya que así lo hemos establecido en Content-Type)
*
if( !
mail$destino $subject $mensaje $headers ) )
{
* echo 
'el mail no se ha enviado';
* exit();
}
else
{
* echo 
'e-mail enviado';
* exit();
}
?>
El html esta igual. Pero aun asi no me llega ningun e-mail. No importa si llega a la bandeja de entrada o a correo no deseado el tema es que llegue de algún modo.
Alguna solucion ?

PD: Cuando doy en el boton "enviar" me dice, e-mail enviado, osea supuesta mente debería andar, pero no llega nada.

Última edición por santi_64; 15/05/2011 a las 18:47
  #11 (permalink)  
Antiguo 16/05/2011, 08:52
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

Algo raro ocurre ahí. ¿Has probado a enviarlo a otra dirección de e-mail? ¿Te llega algún correo a la dirección de remitente indicando un error? Al utilizar una ip compartida, es posible que dicha ip esté en una blacklist y por eso no lleguen los correos, pero deberías recibir un correo en la dirección de remitente con un mensaje del tipo "this is a permanent error" o algo similar.

El código está bien, y si devuelve e-mail enviado es porque lo envía. Fíjate en eso que te comento. Podría ser la causa.
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.
  #12 (permalink)  
Antiguo 16/05/2011, 09:24
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problema con formulario php

hola otra vex, te habia comentado que con una gmail funciona bien,

tambien podes probar esto

if(mail(......))
echo 'mail ok';
else
echo 'algo no anduvo';
  #13 (permalink)  
Antiguo 16/05/2011, 11:03
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con formulario php

Ahora voy a probar con una cuenta de g-mail, o yahoo.
Como dice koswidigtal no probe otro e-mail por ahora, y no llega ninguno diciendo error ni nada por el estilo.
Yo tengo una ip dinamica noc si eso puede ser un problema para esto.
  #14 (permalink)  
Antiguo 16/05/2011, 12:13
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con formulario php

HTML:

Código PHP:
<form name="form1" method="post" action="enviar.php"
  <
table 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" id="msg"></textarea></td
    </
tr
    <
tr
      <
td>&nbsp;</td
      <
td><input type="submit" name="Submit" value="Enviar" /></td
    </
tr
  </
table>     
</
form></td>   
</
tr> </table
PHP:
Código PHP:
 <?php
/*----------- INICIO DE CONFIGURACION-----------------*/
//mail del destinatario (escribirlo entre las comillas)
$destino='[email protected]';
//nombre del que envía el correo (escribirlo entre las comillas)
$nombre='nombre';
//mail del que envía el correo (escribirlo entre las comillas)
$email='email';
//título del corrreo (escribirlo entre las comillas)
$subject='Mensaje de Consulta';
//página a la que se va luego de enviar el mail (escribirlo entre las comillas)
$adondevoy='index.html';
/*----------- FIN DE LA CONFIGURACION-----------------*/
$headers "MIME-Version: 1.0 \r\n";
$headers .= "Content-Type: text/html; charset=utf-8 \r\n";
$headers .= "From: ".$nombre." \r\n";
$headers .= "Reply-To: ".$email." \r\n"
$headers .= "Return-Path: ".$nombre." \r\n";  
 
$mensaje strip_tags($_POST['mensaje']);  // mensaje en texto plano
  
$mensaje_html preg_replace('/\n/' '<br />' $mensaje); // mensaje en html (el que utilizaremos en este caso, ya que así lo hemos establecido en Content-Type)
 
if( !mail$destino $subject $mensaje $headers ) )
{
  echo 
'el mail no se ha enviado';
  exit();
}
else
{
  echo 
'e-mail enviado';
  exit();
}
?>
Aun así usando hotmail o yahoo, al apretar el boton enviar, me dice que el e.mail se envió, pero no llega ningún correo, ni con error ni nada por el estilo.
  #15 (permalink)  
Antiguo 16/05/2011, 13:51
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problema con formulario php

y usate gmail???????????????????????
y porba primero sin cabeceras
  #16 (permalink)  
Antiguo 16/05/2011, 15:29
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

Aquí hay un error (no es que esté mal, es que en el php utilizamos $_POST['mensaje'] y aquí le damos como nombre "msg"):

Código HTML:
Ver original
  1. <td><textarea [B]name="msg"[/B] id="msg"></textarea></td>

Por lo que habría que cambiar la variable $mensaje a:

Código PHP:
Ver original
  1. $mensaje = strip_tags($_POST['msg']);
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.
  #17 (permalink)  
Antiguo 16/05/2011, 15:43
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con formulario php

Código PHP:
Ver original
  1. <?php
  2. /*----------- INICIO DE CONFIGURACION-----------------*/
  3. //mail del destinatario (escribirlo entre las comillas)
  4. $destino='[email protected]';
  5. //nombre del que envía el correo (escribirlo entre las comillas)
  6. $nombre='nombre';
  7. //mail del que envía el correo (escribirlo entre las comillas)
  8. $email='email';
  9. //título del corrreo (escribirlo entre las comillas)
  10. $subject='Mensaje de Consulta';
  11. //página a la que se va luego de enviar el mail (escribirlo entre las comillas)
  12. $adondevoy='index.html';
  13. /*----------- FIN DE LA CONFIGURACION-----------------*/
  14. $headers = "MIME-Version: 1.0 \r\n";
  15. $headers .= "Content-Type: text/html; charset=utf-8 \r\n";
  16. $headers .= "From: ".$nombre." \r\n";
  17. $headers .= "Reply-To: ".$email." \r\n";
  18. $headers .= "Return-Path: ".$nombre." \r\n";  
  19.  
  20. $mensaje = strip_tags($_POST['msg']);  // mensaje en texto plano
  21.   $mensaje_html = preg_replace('/\n/' , '<br />' , $mensaje); // mensaje en html (el que utilizaremos en este caso, ya que así lo hemos establecido en Content-Type)
  22.  
  23. if( !mail( $destino , $subject , $mensaje , $headers ) )
  24. {
  25.   echo 'el mail no se ha enviado';
  26.   exit();
  27. }
  28. else
  29. {
  30.   echo 'e-mail enviado';
  31.   exit();
  32. }
  33. ?>

Ya pobre gmail, yahoo, y hotmail y con ese código no sucede nada :S
  #18 (permalink)  
Antiguo 16/05/2011, 16:04
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

Otro detalle que acabo de ver. Estamos enviando el e-mail en texto plano en lugar del html... Lo correcto sería:

Código PHP:
Ver original
  1. !mail( $destino , $subject , $mensaje_html , $headers )

En todo caso esto no solucionará el problema. ¿Has pensando en utilizar la clase phpmailer? Podrías ahorrarte muchos problemas y es muy fácil de utilizar.

¿El archivo php sólo tiene ese código? Es que parece estar bien y mail() devuelve true, por lo que parece que se envía... Pero no lo hace. ¿Estás probando desde el servidor o en local?
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.
  #19 (permalink)  
Antiguo 16/05/2011, 16:50
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con formulario php

En el archivo php solo esta el codigo, sin nada mas. Yo esto lo subo a 00webhost, y de ahi entro a la web, y pruebo.
Y como es eso de utilizar la clase phpmailer?
  #20 (permalink)  
Antiguo 16/05/2011, 17:19
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

PHPMailer es una clase php para enviar e-mails, especialmente, a través de un servidor smtp. Es muy sencillo de utilizar y es cómodo incluso para enviar archivos adjuntos. Entra en su web, ahí verás muchos ejemplos, algunos sencillos y otros más complicados.

Entre tanto, voy a probar ese código a ver si a mi me funciona o si me doy cuenta de lo que falla.


edito: El código funciona correctamente. Acabo de enviar un correo a una cuenta de hotmail y ha llegado... Además he usado una cuenta en 000webhost.com. Dicho esto... No tengo ni idea de qué puede estar ocurriendo :S
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.

Última edición por KoswiDigital; 16/05/2011 a las 17:28
  #21 (permalink)  
Antiguo 16/05/2011, 17:40
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con formulario php

Ahora voy a probar el PHPMailer,


pd: Si no es mucha molestia podrías probar ese mismo código mandando un e-mail a esta dirección : [email protected] para ver si desde alli me llega a mi casilla, quien dice que el problema no esta en eso..
  #22 (permalink)  
Antiguo 16/05/2011, 19:59
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

E-mail enviado. Veamos si llega o no (aunque debería hacerlo).
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.
  #23 (permalink)  
Antiguo 17/05/2011, 00:22
Avatar de sergi_multimedia  
Fecha de Ingreso: noviembre-2010
Mensajes: 213
Antigüedad: 13 años, 5 meses
Puntos: 4
Pregunta Respuesta: problema con formulario php

Hola, yo también estoy intentando hacer lo mismo, pero no hay manera, os pongo lo que yo he puesto:

(Decir que he llamado a mi hosting 1and1, me han dicho que tengo el PHP habilitado y me han dado las instrucciones y el código substituyendo mi información obviamente)

Código HTML:
Ver original
  1. <form action="vita.php"id="contact-form" method="post">
  2.    
  3.     <ul>
  4.         <li>
  5.             <label class="label1">Nombre:</label>
  6.             <input class="input_text" type="text" name="nom" id="nom" value="" />
  7.         </li>
  8.         <li>
  9.             <label class="label2">E-mail:</label>
  10.             <input class="input_text" type="text" name="email" id="email" value="" />
  11.         </li>
  12.         <li>
  13.             <label class="label3">Teléfono:</label>
  14.             <input class="input_text2" type="text" name="telefon" id="telefon" value="" />
  15.            
  16.         </li>
  17.         <li>
  18.             <label class="label3" for="comentaris">Comentaris:</label>
  19.             <textarea name="comentaris" id="comentaris" cols="31" rows="13"></textarea>
  20.         </li>
  21.         <li>
  22.             <input class="submit" type="submit" value="enviar" />
  23.         </li>
  24.    
  25.     </ul>
  26.    
  27. </form>

Código PHP:
Ver original
  1. <?
  2. $from = $_POST['email'];
  3. $subject = 'subject';
  4. $message = 'From: ' . $_POST['nom'] . "\n". 'Comentaris:' . $_POST['comentaris'];
  5. $headers = "From: ". $from . "\n";
  6. mail ('[email protected]', $SOL·LICITO VISITA VITA DESIGN, $message, $headers);
  7. header('Location: portes_disseny_vita_design.html');
  8. ?>

Cuando pulso el botón de enviar me sale una página con el código PHP que he puesto...Estoy poniendo el archivo "vita.php" en la misma carpeta que "portes_disseny_vita_design.html".

¿Qué estoy haciendo mal?

Gracias de antemano!
  #24 (permalink)  
Antiguo 17/05/2011, 00:33
 
Fecha de Ingreso: mayo-2011
Ubicación: La Luna
Mensajes: 84
Antigüedad: 13 años
Puntos: 6
Respuesta: problema con formulario php

Código:
function enviar_correo()
{


	$mail = new PHPMailer();
	$mail->IsSMTP();
	$mail->CharSet = 'UTF-8';
	$mail->SMTPAuth = true;
	//$mail->SMTPSecure = "ssl";
	$mail->Host = "mai.demo.com"; //servidor smtp
	$mail->Port = 26; //puerto smtp de gmail
	$mail->Username = 'usuario de correo';
	$mail->Password = 'clave';
	$mail->FromName = 'nomnre';
	$mail->From = '[email protected]';//email de remitente desde donde se envía el correo.
	$mail->AddAddress('[email protected]', 'aaa');//destinatario que va a recibir el correo
	$mail->AddCC('[email protected]', 'Solicitud');//envía una copia del correo a la dirección especificada
	$mail->Subject = 'Solicitud N->'.$codigo;
	$mail->AltBody = 'cuerpo del mensaje en texto plano';//cuerpo con texto plano
	//$url=Ver el Detalle =>http://localhost:9099/gempce_/cotizaciones/detallesct.php?cod='.$idcoti.
	//$detalle
	$mail->MsgHTML('xxxxxx'');//cuerpo con html
	if(!$mail->Send())
	{
		//finalmente enviamos el email
		echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió
		} else {
		//echo 'Correo enviado correctamente';
	}
}
?>
  #25 (permalink)  
Antiguo 17/05/2011, 04:40
Avatar de KoswiDigital  
Fecha de Ingreso: abril-2011
Ubicación: Galicia - España
Mensajes: 220
Antigüedad: 13 años
Puntos: 37
Respuesta: problema con formulario php

Cita:
Iniciado por pabloaguero2010
Respuesta: problema con formulario php
Ese es un ejemplo de funcionamiento de PHPMailer, pero es necesario descargarse las clases para que funcione.


Cita:
Hola, yo también estoy intentando hacer lo mismo, pero no hay manera
Hola, echa un vistazo al código de santi_64, que está correcto y funcionando para el envío de e-mails. Cada campo del form con un name="nombre" es lo que habrá que recoger más tarde en una variable en el php, $nombre = $_POST['nombre'].

De todas formas también te recomiendo el uso de PHPMailer para el envío de e-mails. Puedes descargarte las clases en su página web y mirar para el ejemplo de pabloaguero2010.


Un saludo.
__________________
http://www.koswidigital.com - Diseño web, Programación web, Fotografía profesional, Retoque digital.
  #26 (permalink)  
Antiguo 17/05/2011, 11:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Respuesta: problema con formulario php

Cita:
Iniciado por KoswiDigital Ver Mensaje
E-mail enviado. Veamos si llega o no (aunque debería hacerlo).

Me llego un e-mail totalmente en blanco. De esta direccion [email protected] ese es el que me abras mandado vos?
  #27 (permalink)  
Antiguo 17/05/2011, 11:28
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: problema con formulario php

claro, es quien lo envia

saca tus propias conclusiones...................................... ...................
  #28 (permalink)  
Antiguo 17/05/2011, 11:54
 
Fecha de Ingreso: mayo-2011
Ubicación: La Luna
Mensajes: 84
Antigüedad: 13 años
Puntos: 6
Respuesta: problema con formulario php

con phpmailer puedes hacer todo eso y mas ,ademas que los correos que envies no llegaran como spam ya que validas el correo desde donde lo envias.

tienes que bajarte la clase php mailer
y agregar al ejemplo que te la librerias
esto es un ejem..
Código:
require_once("../funciones/correo/class.phpmailer.php");
require_once("../funciones/correo/class.smtp.php");
  #29 (permalink)  
Antiguo 20/05/2011, 01:48
Avatar de sergi_multimedia  
Fecha de Ingreso: noviembre-2010
Mensajes: 213
Antigüedad: 13 años, 5 meses
Puntos: 4
Respuesta: problema con formulario php

Muchas gracias a todos por vuestra aportación! Al final me ha salido!

Siguiendo uno por uno los pasos la verdad es que no es complicado, pero claro hay que poner todas las cosas en su sitio, sino no funciona...;)

Un saludo
  #30 (permalink)  
Antiguo 12/06/2013, 17:39
 
Fecha de Ingreso: octubre-2012
Mensajes: 1
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: problema con formulario php

Podrias aportar la solucion que creo tener el mismo problema y no doy con la respuesta... Gracias

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 15:52.