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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ajax embebido en PHP, ¿funcionará? que opinais?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ajax embebido en PHP, ¿funcionará? que opinais?  (Leído 1,585 veces)
marko1985

Desconectado Desconectado

Mensajes: 46


Ver Perfil
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. }


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como extraer un recurso embebido a mi proyecto C#
.NET (C#, VB.NET, ASP)
Fian034 2 3,024 Último mensaje 4 Abril 2022, 22:59 pm
por .xAk.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines