elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Temas
Páginas: 1 [2]
11  Programación / PHP / ajax embebido en PHP, ¿funcionará? que opinais? en: 9 Abril 2010, 21:52 pm
Buenas señores y señoras que también las habrá. Quiero dejar este miniaporte y haber si me ayudais o dais ideas para ir mejorando, esta pequeña clase la he creado hoy. os explico un poco para que sirve:

La idea, es desde una página con un editor wisiwyg tipo tinymce. enviar un mail... y como lo hace? tiene unos inputs para escribir el destinatario, el origen, el asunto del mail, en fín todo lo que se suele poner en un mensaje. Cuando el usuario hace click en enviar mensaje, en vez de recargar la página, ajax envia las variables POST a una pagina php que en este caso se llama "mailer1.php" y nos devuelve el resultado del envio en un pequeño dív, tambien tengo preparado en esta pagina de edicion del mail, una seleccion de listados para enviar mails masivamente. Por otra parte el amigo "mailer1.php" es una instancia personalizada de la archiconocida clase PHPMailer().

Cuando en picamos nuestro código php, tenemos que instanciar la clase, y llamar a la función "esmAjax_MailPOST('aqui incluimos el id de los inputs o textareas')"

¿Qué os parece? ¿Qué puedo ir añadiendo? ¿Algún fallo de programación o de seguridad?. Es la primera vez que me aventuro con Ajax y nosé si lo hago demasiado bien, seguro que hay cosas muy mejorables.



Código
  1. /*****************************************
  2.  **CLASE: esmAjax.v.1.0beta.include.php***
  3.  **AUTOR: Marko1985***********************
  4.  **CREACION: 9/04/2010********************
  5.  **MODIFICACION : 9/04/2010***************
  6.  *****************************************/
  7. class esmAjax{
  8.  
  9. function __construct(){
  10. esmCreate_AjaxObj();
  11. }
  12.  
  13. /*Carga de objeto adecuado*
  14. *Conforme al navegador****/
  15. function esmCreate_AjaxObj(){
  16. echo '
  17. <script type="text/javascript">
  18. var xmlhttp=false;
  19. var ids = ["Msxml2.XMLHTTP.7.0",
  20. "Msxml2.XMLHTTP.6.0",
  21. "Msxml2.XMLHTTP.5.0",
  22. "Msxml2.XMLHTTP.4.0",
  23. "Msxml2.XMLHTTP.3.0",
  24. "Msxml2.XMLHTTP",
  25. "Microsoft.XMLHTTP"];
  26. for(var i=0; !xmlhttp && i < ids.length; i++) {
  27. try {
  28. xmlhttp = new ActiveXObject(ids[i]);
  29. } catch(ex) {
  30. xmlhttp = false;
  31. }
  32. }
  33. if (!xmlhttp && typeof XMLHttpRequest!="undefined") {
  34. try {
  35. xmlhttp = new XMLHttpRequest();
  36. } catch (e) {
  37. xmlhttp=false;
  38. }
  39. }
  40. if (!xmlhttp && window.createRequest) {
  41. try {
  42. xmlhttp = window.createRequest();
  43. } catch (e) {
  44. xmlhttp=false;
  45. }
  46. }
  47. return xmlhttp;
  48. }
  49. </script>
  50. ';
  51. }
  52.  
  53. function esmAjax_MailPOST($esmContentMail, $esmMail, $esmSubject, $esmSender, $esmSenderName){
  54. echo'
  55. <script type="text/javascript">
  56. function esmAjax_MailPOST(){
  57. var esmContentMail, esmMail, $esmSubject, esmSender, esmSenderName;
  58. var esmPOSTString;
  59. esmContentMail = document.getElementById("'.$esmContentMail.'");
  60. esmMail = document.getElementById("'.$esmMail.'").value;
  61. esmSubject = document.getElementById("'.$esmSubject.'").value;
  62. esmSender = document.getElementById("'.$esmSender.'").value;
  63. esmSenderName = document.getElementById("'.$esmSenderName.'")
  64. function esmAjax_MailPOST(){
  65. var esmContentMail, esmMail, $esmSubject, esmSender, esmSenderName;
  66. var esmPOSTString;
  67. esmContentMail = document.getElementById("'.$esmContentMail.'");
  68. esmMail = document.getElementById("'.$esmMail.'").value;
  69. esmSubject = document.getElementById("'.$esmSubject.'").value;
  70. esmSender = document.getElementById("'.$esmSender.'").value;
  71. esmSenderName = document.getElementById("'.$esmSenderName.'")
  72. if (esmMail!=null || esContentMail!=false || esContentMail!=undefined){
  73. esmPOSTString=\'email=\'+esmMail;
  74. }
  75. else{
  76. prompt(\'Debe de rellenar almenos el destinatario\');
  77. return;
  78. }
  79. }
  80. if (esmContentMail!=null || esmContentMail!=false || esmContentMail!=undefined){
  81. esmPOSTString=esmPOSTString+\'&mensaje=\'+esmContentMail;
  82. }
  83. else{
  84. if(!confirm(\'El mensaje esta vacio, ¿Quiere enviarlo de todos modos?\')){
  85. return;
  86. }
  87. }
  88. if (esmSubject!=null || esmSubject!=false || esmSubject!=undefined){
  89. esmPOSTString=esmPOSTString+\'&asunto=\'+esmSubject;
  90. }
  91. if (esmSender!=null || esmSender!=false || esmSender!=undefined){
  92. esmPOSTString=esmPOSTString+\'&mailRemitente=\'+esmSender;
  93. }
  94. if (esmSenderMail!=null || esmSenderMail!=false || esmSenderMail!=undefined){
  95. esmPOSTString=esmPOSTString+\'&nombreRemitente=\'+esmSenderMail;
  96. }
  97. ajax = xmlhttp;
  98. ajax.open("POST", "'.$esmMailerFile.'",true);
  99. ajax.onreadystatechange=function(){
  100. if (ajax.readyState==4){
  101. return ajax.responseText
  102. }
  103. }
  104. ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  105. ajax.send(esmPOSTString)
  106. }
  107.  
  108. ajax = xmlhttp;
  109. ajax.open("POST", "'.$esmMailerFile.'",true);
  110. ajax.onreadystatechange=function() {
  111. if (ajax.readyState==4) {
  112. return ajax.responseText
  113. }
  114. }
  115. ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  116. ajax.send(esmPOSTString)
  117. }
  118. </script>
  119. ';
  120. }
  121. }
12  Programación / PHP / Problema con PHPMailer en: 29 Marzo 2010, 17:15 pm
Buenas tardes a todos, le estoy dando vueltas, buscando por foros y demás y no encuentro una respuesta concreta.

Alla va... El tema es que yo estoy creando un editor de mails online para, y para enviarlos quiero utilizar la librería PHPMailer v.5.1. , cuando configuro el correo con el siguiente código:


Código
  1. <?php
  2. //INCLUIMOS LIBRERIAS
  3. include("PHPMailer_v5.1/class.phpmailer.php");
  4. include("PHPMailer_v5.1/class.smtp.php");
  5.  
  6. //CONFIGURACION DEL ENVIO
  7. $envio=new PHPMailer();
  8. $envio->Mailer="smtp";
  9. $envio->Host="smtp.MISERVIDOR.com";
  10. $envio->From="MI MAIL";
  11. $envio->FromName="MI NOMBRE";
  12. $envio->AddAddress="MAIL DEL DESTINATARIO";
  13. $envio->Timeout=40;
  14. $envio->Subject="Prueba del PROGRAMA";
  15. $envio->AltBody = "Mensaje del Editor de MAILS , esto sólo es una prueba con texto.";
  16. //FIN DE CONFIGURACION
  17.  
  18. //COMPROBAMOS EL ESTADO
  19. $correcto=$envio->Send();
  20.  
  21. $reenvio=1;
  22.   while ((!$correcto) && ($reenvio < 5)) {
  23. sleep(7);
  24.            echo $mail->ErrorInfo;
  25.            $correcto = $envio->Send();
  26.            $reenvio=$reenvio+1;
  27.        }
  28.  
  29. if(!$correcto){
  30. echo "Problema enviando e-mail a ".$lista;
  31. echo "<br/>".$envio->ErrorInfo;
  32. }
  33. else{
  34. echo "Mensaje enviado correctamente";
  35. }    
  36. ?>


No me envía el mail, simplemente despues de pasar por el While, se mete en el if, y ya que la función Send() nunca me devuelve TRUE.

¿¿Teneis alguna sugerencia?? Tambien he mirado de configurar el PHP.ini, o el httpd.conf de Apache. ¿Podría ser tema de puertos del Router? ¿El timeout se queda corto?
 
La librería PHPMailer se puede encontrar en la siguiente dirección.
http://phpmailer.worxware.com/
Mi versión es la 5.1.
Cualquier dato adicional, me lo podeis pedir. Saludos.
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines