Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Juanma91 en 21 Noviembre 2014, 15:51 pm



Título: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: Juanma91 en 21 Noviembre 2014, 15:51 pm
Código
  1. <?php
  2. function form_mail($sPara, $sAsunto,$sTexto, $sDe)
  3. {
  4. $bHayFicheros = 0;
  5. $sCabeceraTexto = "";
  6. $sAdjuntos = "";
  7. $design=$_POST["design"];
  8. foreach ($_POST["design"] as $idioma){
  9. $msg.= $idioma." - ";
  10. }
  11.  
  12. if ($sDe)$sCabeceras = "From:".$sDe."\n";
  13. else $sCabeceras = "";
  14. $sCabeceras .= "MIME-version: 1.0\n";
  15. foreach ($_POST as $sNombre => $sValor)
  16. $sTexto = $sTexto."\n".$sNombre." = ".$sValor;
  17.  
  18. foreach ($_FILES as $vAdjunto)
  19. {
  20. if ($bHayFicheros == 0)
  21. {
  22. $bHayFicheros = 1;
  23. $sCabeceras .= "Content-type: multipart/mixed;";
  24. $sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
  25.  
  26. $sCabeceraTexto = "----_Separador-de-mensajes_--\n";
  27. $sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
  28. $sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
  29.  
  30. $sTexto = $sCabeceraTexto.$sTexto;
  31. }
  32. if ($vAdjunto["size"] > 0)
  33. {
  34. $sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
  35. $sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
  36. $sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
  37. $sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
  38.  
  39. $oFichero = fopen($vAdjunto["tmp_name"], 'r');
  40. $sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
  41. $sAdjuntos .= chunk_split(base64_encode($sContenido));
  42. fclose($oFichero);
  43. }
  44. }
  45.  
  46. if ($bHayFicheros)
  47. $sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
  48. return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
  49. }
  50.  
  51. //cambiar aqui el email
  52. if (form_mail("ghfjhfgj@ngkjhg.com", $_POST[mail],
  53. "Los datos introducidos en el formulario son:\n\n", $_POST[email]))
  54. echo "Su formulario ha sido enviado con exito";
  55. ?>

como conseguir que al pulsar un select determinado, al enviar el mensaje te muestre esa opción..Gracias


Título: Re: mandar form con un select y mostrar en el mensaje enviado el select escogido
Publicado por: engel lex en 21 Noviembre 2014, 15:58 pm
si el select está dentro del form, el valor del select es el escogido y ese se envía en el form de manera normal, lo que no entiendo es que tiene que ver tu codigo con la pregunta :s


procura usar etiquetas GeSHi para publicar el código, así es más fácil de verlo


Título: Re: mandar form con un select y mostrar en el mensaje enviado el select escogido
Publicado por: Juanma91 en 21 Noviembre 2014, 16:35 pm
no porque al enviarlo el form, me muestra el design= Array, estuve investigando y necesito sacar de ese array el valor correspondiente, pero no sé hacerlo, de tal manera que por ejemplo si clickeo "Hola" , que luego en el correo enviado me muestre hola, y no Array


Título: Re: mandar form con un select y mostrar en el mensaje enviado el select escogido
Publicado por: T. Collins en 21 Noviembre 2014, 16:46 pm
Igual es porque $_POST[mail] y $_POST[email] está mal, debería ser $_POST["mail"] y $_POST["email"]


Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: Juanma91 en 21 Noviembre 2014, 17:00 pm
lo corregí como dices y nada de nada. Alguna solución amigos?


Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: T. Collins en 21 Noviembre 2014, 17:29 pm
Si puedes poner el html con el select igual te podemos ayudar mejor.


Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: Juanma91 en 22 Noviembre 2014, 15:56 pm
Código
  1. <form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data">
  2. <p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
  3. <p>E-mail  
  4. <input type='text' name='email' id='email'>
  5. </p>
  6. <p>Asunto    
  7. <input type='text' name='asunto' id='asunto' />
  8. </p>
  9. Diseño   <select name="design[]">    
  10.  
  11.       <option value="tarjeta_horizontal" selected="selected">Tarjeta visita horizontal brillo </option>
  12. <option value="ae">e </option>
  13. <option value="bf">x </option>
  14. <option value="ce">ce</option>
  15. <option value="de">de</option>
  16. <option value="re">rel</option>
  17.       <option value="a">a</option>
  18.       <option value="b">b</option>
  19.       <option value="c">c</option>
  20.       <option value="d">d</option>
  21.       <option value="e">e</option>
  22.       <option value="f">f</option>
  23.       <option value="g">g</option>
  24.       <option value="h">h</option>
  25.      <option value="x">xxx</option>
  26.   </select>
  27. <p>Mensaje
  28. <textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea>
  29. </p>
  30. <p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
  31. <p>
  32. <input type='submit' value='Enviar'>
  33. </p>
  34. </form>


Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: T. Collins en 22 Noviembre 2014, 16:24 pm
Si te fijas, en el php guardas los valores del array $_POST["design"] en la variable $msg

Código
  1. foreach ($_POST["design"] as $idioma){
  2. $msg.= $idioma." - ";
  3. }

pero la variable $msg no la vuelves a utilizar en todo el php, sin embargo, introduces el valor de $_POST["design"] en $sTexto de la siguiente forma:

Código
  1. foreach ($_POST as $sNombre => $sValor)
  2.        $sTexto = $sTexto."\n".$sNombre." = ".$sValor;

y como $_POST["design"] no es un valor si no un array, en el email te muestra Array

Tendrías que juntar $msg a $sTexto


Título: Re: Mostrar en el post enviado al correo, la opción escogida del select
Publicado por: Juanma91 en 23 Noviembre 2014, 03:33 am
Intento igualarlo como me comentas, pero conseguí que me apareciera

a-a-a-a  ( el valor de la opcion a ) y luego cosas raras,

¿ No hay ninguna forma de conseguir el mismo formato en el email pero el design= al valor que quiero que aparezca segun haya seleccionado yo ?