Foros del Web » Programando para Internet » PHP »

Intento de envio form por mail que no funciona XD

Estas en el tema de Intento de envio form por mail que no funciona XD en el foro de PHP en Foros del Web. Hola, estoy buscando por internet metodos, he probado varios y no doy con ello... os pongo el codigo haber si veis el fallo porque por ...
  #1 (permalink)  
Antiguo 04/04/2011, 14:43
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Intento de envio form por mail que no funciona XD

Hola, estoy buscando por internet metodos, he probado varios y no doy con ello... os pongo el codigo haber si veis el fallo porque por mas que cambio y pruebo nada de nada...

HTML:

Código:
<div id="apDiv1">
  <p align="center">The favor of your reply is requested on or before April 23, 2011</p>
  <p align="center"> *</p>
  <p><em>Thank   you for taking part in our special day! If you have received an RSVP   card for our reception, please provide the following information, as   applicable, and submit the form:</em></p>
  <p>Entrée Selections</p>
  <p>Selection <strong>1</strong>: Sweet Chili Glazed Salmon</p>
  <p>Selection <strong>2</strong>: Lemon Beurre Blanc Boneless Chicken Breast</p>
  <p>Selection 3: Vegetable Napoleon Tower with Eggplant</p>
  <p>*</p>
  <p>Please list all guests full names followed by Entrée selections</p>
  
  <form id="contact" name="contact" action="send.php" method="post">

  <p><label>Name:<input type="text" name="name1" id="name1" />Selection
  <input type="text" name="selection1" id="selection1" />
    (Insert 1,2 or 3 deppending on your entrée selection) 
    </label></p>
    <p><label>Name:<input type="text" name="name2" id="name2" />Selection
  <input type="text" name="selection2" id="selection2" />
    (Insert 1,2 or 3 deppending on your entrée selection) 
    </label></p>
    <p><label>Name:<input type="text" name="name3" id="name3" />Selection
  <input type="text" name="selection3" id="selection3" />
    (Insert 1,2 or 3 deppending on your entrée selection) 
    </label></p>
<p><label>Name:<input type="text" name="name4" id="name4" />Selection
  <input type="text" name="selection4" id="selection4" />
    (Insert 1,2 or 3 deppending on your entrée selection) 
    </label></p>
    <p><label>Name:<input type="text" name="name5" id="name5" />Selection
  <input type="text" name="selection5" id="selection5" />
    (Insert 1,2 or 3 deppending on your entrée selection) 
    </label></p>
    <p>Write something you want to tell me, your phone or your e-mail or you want in text area.</p>
    <form id="form1" name="form1" method="post" action="">
      <textarea name="text" id="text" cols="80" rows="5"></textarea>
    </form>
    <p>Friendly Reminder: </p>
  <p>Attendance to the reception is granted through invitation only. <br />
    This is an adult only reception. </p>
  <p align="center">
    <input type="reset" value="Delete" name="Delete"/>
    <input type="submit" value="Submit" name="Submit"/>
  </p>

</div>
PHP:

Código:
<?php

$name1 = $_POST['name1'];
$selection = $_POST['selection1'];
$text = $_POST['text'];

$header = 'From: ' . $name1 . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "This messange was send by " . $name1 . " \r\n";
$mensaje .= "$name1 $selection1: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "$name2 $selection2: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "$name3 $selection3: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "$name4 $selection4: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "$name5 $selection5: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Send: " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Wedding Names and Entrée Selection';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo '&estatus=ok&';

?>
El caso esque al dar enviar me muestra todo el codigo del send.php pero no hace nada ;/

Gracias de antemano
  #2 (permalink)  
Antiguo 04/04/2011, 15:20
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 13
Respuesta: Intento de envio form por mail que no funciona XD

Hola,

igual es una pregunta tonta pero: has instalado un servidor web con soporte para php?
  #3 (permalink)  
Antiguo 04/04/2011, 15:27
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Esta subido en un servidor web godaddy.com
  #4 (permalink)  
Antiguo 04/04/2011, 17:55
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Intento de envio form por mail que no funciona XD

que pasa cuando pones en un archivo
Código PHP:
<?php
phpinfo
();
?>
  #5 (permalink)  
Antiguo 04/04/2011, 17:58
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Cita:
Iniciado por luis010182 Ver Mensaje
que pasa cuando pones en un archivo
Código PHP:
<?php
phpinfo
();
?>
PHP Version 5.2.17

Y un largo etcetera de cosas
  #6 (permalink)  
Antiguo 04/04/2011, 18:13
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Intento de envio form por mail que no funciona XD

Es un poco extraño eso. ¿Te muestra el código php tal cual? Igual esta pregunta sobra, pero ¿la extensión del archivo es .php?


Dejando el problema a un lado, te recomiendo utilizar la clase PHPMailer para el envío de e-mails. Y si tu hosting te permite el envío por SMTP, mucho mejor.

Enviándolos con la función mail() no pasarán los filtros de spam e irán a parar al correo no deseado.


Un saludo.
  #7 (permalink)  
Antiguo 04/04/2011, 18:24
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Si esta en .php tengo el form.php y el send.php escritos con el dreamweaver y sin errores de sintaxis...

Eso del phpmailer como va? esque php no lo uso nunca... mirare haber pero si me puedes poner un ejemplo para yo modificarlo con lo que ya tengo, el ejemplo basta con que sea simple, luego ya lo modifico.

Gracias
  #8 (permalink)  
Antiguo 04/04/2011, 18:41
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Estoy mirando el phpmailer ese y... como si leyese chino... mira que he estudiado java, c y demas... pero ahora mismo no entiendo que coño hace el codigo ese y como hacer un post desde el form HTML a eso para que me lo envie...

La leche que complicado es hacer un formulario para enviar por mail nombre y eleccion... xD
  #9 (permalink)  
Antiguo 04/04/2011, 18:44
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Intento de envio form por mail que no funciona XD

No queda duda, es cosa del hosting. Creo que utilizando un servidor SMTP funcionaría. Si no, como último recurso, puedes mirar las faqs del hosting, donde te dan algunas alternativas .

Tienes ejemplos de como funciona en la propia página de PHPMailer.


Un saludo :)
  #10 (permalink)  
Antiguo 04/04/2011, 18:53
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Intento de envio form por mail que no funciona XD

sabes que estuve copiando tu codigo y a mi funciona ok. Lo unico es que estaba mal cerrado los tag de los form, tenes 2 y cierra antes del input submit, pero no creo que influya.

Te dije de phpinfo para ver si te funcionaba ok el php. Que por lo que se ve funciona, asi que no deberia haber problema, el send.php se imprime desde el tag <?php o despues.
Hacete estas pruebas
1- quita el tag form que te sobra, e inclui el input del send dentro del form, despues pone en la cabera del archivo phpinfo.
2 - Otra que podes hacer es crear un archivo nuevo y copiar tu codigo. y ver que pasa.
3 - descargate el archivo send en tu pc y abrilo con el block de notas. si mal no recuerdo una vez el dreamweaver me inserto uno caractes que el mismo programa no me lo mostraba

Me tiro mas por la prueba 3. Si no te funca, no se que podra ser.
  #11 (permalink)  
Antiguo 04/04/2011, 18:54
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Intento de envio form por mail que no funciona XD

Aquí te dejo un ejemplo sencillo de uso, sin comprobaciones de datos.
Recuerda que las clases deben estar en el mismo directorio que el script de envío.

Código PHP:
<?php
    $fecha 
date(d.'/'.m.'/'.Y);
    
$hora $_POST['hora'];

    
$nombre $_POST['nombre'];
    
$email $_POST['email'];
    
$telf $_POST['telf'];

    
$mensaje strip_tags($_POST['mensaje']);
    
$mensaje_html preg_replace('/\n/' '<br />' $mensaje);
    
    require_once(
'class.phpmailer.php');
    
//include("class.smtp.php");

    
$mail = new PHPMailer();
    
$mail->SetLanguage("es""");
    
$mail->CharSet "UTF-8";

    
$mail->IsSMTP();
    
$mail->SMTPAuth true;

    
$mail->Host "smpt.servidor.com";
    
$mail->Port "25";

    
$mail->Username "user";
    
$mail->Password "pass";

    
$mail->AddAddress("[email protected]");
    
$mail->AddReplyTo($email $nombre); // responder a: quien lo envia y nombre del que lo envía (el que rellena el form)
    
$mail->SetFrom($email $nombre); // enviado por: lo mismo
    
    
$mail->IsHTML(true);
    
    
$mail->Subject "Asunto del email";
    
    
$mail->Body "
                                    <html>
                                    <head>
                                        <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
                                    </head>
                                    <body>
                                        <table>
                                            <tr>
                                                <td>Formulario recibido.<br />La información es la siguiente:</td>
                                            </tr>
                                        </table>
                                        <p><br /></p>
                                        <table>
                                            <tr>
                                                <td>Fecha del envío:</td>
                                                <td>"
.$fecha."</td>
                                            </tr>
                                            <tr>
                                                <td>Hora:</td>
                                                <td>"
.$hora."</td>
                                            </tr>
                                            <tr>
                                                <td>Nombre:</td>
                                                <td>"
.$nombre."</td>
                                            </tr>
                                            <tr>
                                                <td>E-mail:</td>
                                                <td>"
.$email."</td>
                                            </tr>
                                            <tr>
                                                <td>Teléfono:</td>
                                                <td>"
.$telf."</td>
                                            </tr>
                                        </table>
                                        <p><br /></p>
                                        <p><strong>Mensaje:</strong></p>
                                        <p>"
.$mensaje_html."</p>
                                    </body>
                                    </html>
                                "
;
    
    
$mail->AltBody "Formulario de recibido. La información es la siguiente:
                                        \n\n
                                        Fecha: "
.$fecha."
                                        \n
                                        Hora: "
.$hora."
                                        \n
                                        Nombre: "
.$nombre."
                                        \n
                                        E-mail: "
.$email."
                                        \n
                                        Teléfono: "
.$telf."
                                        \n
                                        \n\n\n
                                        Mensaje:
                                        \n\n
                                        "
.$mensaje;
    
    if( !
$mail->Send() )
    {
        die( 
'Error: '.$mail->ErrorInfo );
        exit();
    }
    else
    {
        
header('Location: /index.php');
        exit();
    }
?>
Como ves, creamos un mensaje en html y otro en texto llano para clientes e-mail que no soporten html.
Espero que te sirva de ayuda.
  #12 (permalink)  
Antiguo 04/04/2011, 18:58
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 9 meses
Puntos: 27
Respuesta: Intento de envio form por mail que no funciona XD

Cita:
Iniciado por batallas Ver Mensaje
Estoy mirando el phpmailer ese y... como si leyese chino... mira que he estudiado java, c y demas... pero ahora mismo no entiendo que coño hace el codigo ese y como hacer un post desde el form HTML a eso para que me lo envie...

La leche que complicado es hacer un formulario para enviar por mail nombre y eleccion... xD
El usar el phpmailer es muy facil, mira este ejemplo http://blog.unijimpe.net/enviar-email-con-php-y-gmail/ pero me parece que tenes habilitada ssl en tu hosting, algunos hosting lo tiene bloqueada esta opcion. Pero son los menos y si es pago lo pedis y listo.
  #13 (permalink)  
Antiguo 04/04/2011, 19:07
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Cita:
Iniciado por luis010182 Ver Mensaje
sabes que estuve copiando tu codigo y a mi funciona ok. Lo unico es que estaba mal cerrado los tag de los form, tenes 2 y cierra antes del input submit, pero no creo que influya.

Te dije de phpinfo para ver si te funcionaba ok el php. Que por lo que se ve funciona, asi que no deberia haber problema, el send.php se imprime desde el tag <?php o despues.
Hacete estas pruebas
1- quita el tag form que te sobra, e inclui el input del send dentro del form, despues pone en la cabera del archivo phpinfo.
2 - Otra que podes hacer es crear un archivo nuevo y copiar tu codigo. y ver que pasa.
3 - descargate el archivo send en tu pc y abrilo con el block de notas. si mal no recuerdo una vez el dreamweaver me inserto uno caractes que el mismo programa no me lo mostraba

Me tiro mas por la prueba 3. Si no te funca, no se que podra ser.
Cambie lo del form, resubi el send.php y funciona :)

Gracias Amigo

Gracias por lo del phpmailer tmb asi se que hay otro sistema y ya se como implementarlo.

Un saludo
  #14 (permalink)  
Antiguo 04/04/2011, 19:15
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Buuu ahora hay otro problema, al correo llega esto nada mas asi

Cita:
This messange was send by a
a :
a,
,
,
,
,
They write that for you:
Send: 04/04/2011
:/ Porque no recoge las demas variables?

Esta es la pequeña modificacion que he hecho al send.php

Cita:
<?php

$name1 = $_POST['name1'];
$selection = $_POST['selection1'];
$text = $_POST['text'];

$header = 'From: ' . $name1 . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "This messange was send by " . $name1 . " \r\n";
$mensaje = $name1 . " , " . $selection1 . $_POST['mensaje'] . " \r\n";
$mensaje .= $name2 . " , " . $selection2 . $_POST['mensaje'] . " \r\n";
$mensaje .= $name3 . " , " . $selection3 . $_POST['mensaje'] . " \r\n";
$mensaje .= $name4 . " , " . $selection4 . $_POST['mensaje'] . " \r\n";
$mensaje .= $name5 . " , " . $selection5 . $_POST['mensaje'] . " \r\n";
$mensaje .= "They write that for you:" . $texto . $_POST['mensaje'] . " \r\n";
$mensaje .= "Send: " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Wedding Names and Entree Selection';

mail($para, $asunto, utf8_decode($mensaje), $header);

?>
Anda coño que tengo que hacer primero el POST de las diferentes variables enviadasss!!! no?

Última edición por batallas; 04/04/2011 a las 19:22
  #15 (permalink)  
Antiguo 04/04/2011, 19:25
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Lol

Ahora me sale esto tal que coge todo lo de la primera fila y lo demas se olvida de ello....

Cita:
ab , cd
ab , cd
ab , cd
ab , cd
ab , cd
They write that for you:
Send: 04/04/2011
Codigo:

Código PHP:
<?php

$name1 
$_POST['name1'];
$selection1 $_POST['selection1'];
$name2 $_POST['name1'];
$selection2 $_POST['selection1'];
$name3 $_POST['name1'];
$selection3 $_POST['selection1'];
$name4 $_POST['name1'];
$selection4 $_POST['selection1'];
$name5 $_POST['name1'];
$selection5 $_POST['selection1'];
$text $_POST['texto'];

$header 'From: ' $name1 " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "This messange was send by " $name1 " \r\n";
$mensaje $name1 " , " $selection1 $_POST['mensaje'] . " \r\n";
$mensaje .= $name2 " , " $selection2 $_POST['mensaje'] . " \r\n";
$mensaje .= $name3 " , " $selection3 $_POST['mensaje'] . " \r\n";
$mensaje .= $name4 " , " $selection4 $_POST['mensaje'] . " \r\n";
$mensaje .= $name5 " , " $selection5 $_POST['mensaje'] . " \r\n";
$mensaje .= "They write that for you:" $texto $_POST['mensaje'] . " \r\n";
$mensaje .= "Send: " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Wedding Names and Entree Selection';

mail($para$asuntoutf8_decode($mensaje), $header);

?>
Vale soy gilipollas, no cambie los post para las variables... deberia fijarme mejor antes jijijiji
  #16 (permalink)  
Antiguo 04/04/2011, 19:30
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Intento de envio form por mail que no funciona XD

Jeje, claro. Primero recoge los datos en variables antes de enviarlos. Al final el error estaba en el html... Vaya ojo que tiene luis010182 :)

Aún así, intenta utilizar phpmailer en futuras ocasiones, una vez lo tengas dominado verás que es mucho mejor.


Un saludo.
  #17 (permalink)  
Antiguo 04/04/2011, 20:22
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Vale ahora como hago para que al dar al submit no se me quede en blanco la pagina? he puesto el form dentro de una ventana modal, pero al dar al submit me lo envia pero... me lleva al send.php en blanco xd
  #18 (permalink)  
Antiguo 04/04/2011, 20:31
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Intento de envio form por mail que no funciona XD

Utiliza lo siguiente para el envío:

Código PHP:
if( !mail($para$asuntoutf8_decode($mensaje), $header) )
{
  die( 
'error en el envío' ); // si falla avisa
}
else
{
  
header('Location: /'); // si no falla vuelve al a página de inicio

  #19 (permalink)  
Antiguo 04/04/2011, 20:35
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Cita:
Iniciado por uikekarallo Ver Mensaje
Utiliza lo siguiente para el envío:

Código PHP:
if( !mail($para$asuntoutf8_decode($mensaje), $header) )
{
  die( 
'error en el envío' ); // si falla avisa
}
else
{
  
header('Location: /'); // si no falla vuelve al a página de inicio

No se puede hacer algun javascript de vuelta? esque la de inicio tiene capas ocultas y no seria exactamente la anterior...
  #20 (permalink)  
Antiguo 04/04/2011, 20:40
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Intento de envio form por mail que no funciona XD

cambia header('Location: /'); por echo '<script type="text/javascript">tuscript</script>';.


Saludos.
  #21 (permalink)  
Antiguo 04/04/2011, 20:42
 
Fecha de Ingreso: febrero-2011
Ubicación: Ávila, España
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Intento de envio form por mail que no funciona XD

Cita:
Iniciado por uikekarallo Ver Mensaje
cambia header('Location: /'); por echo '<script type="text/javascript">tuscript</script>';.


Saludos.
Gracias nano eres una machine!!!

No jugaras al CS? por echar unos vicios algun dia XD

PD: Me voy a sobarla... que mañana por la mañana toca estudiar JDK6 XD
  #22 (permalink)  
Antiguo 05/04/2011, 03:48
Avatar de uikekarallo  
Fecha de Ingreso: diciembre-2009
Ubicación: Galicia
Mensajes: 338
Antigüedad: 14 años, 3 meses
Puntos: 16
Respuesta: Intento de envio form por mail que no funciona XD

De nada hombre, para eso estamos ^^

Y no... Yo era de Quake, pero ahora lo poco que juego, lo juego al Worms Armageddon. Online se hace divertido ^^


Un saludo!

Etiquetas: envio, intento, mail, 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.