Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Graphixx en 12 Septiembre 2014, 17:35 pm



Título: [AYUDA] Integracion de GoogleMaps con AJAX, enviar mapa por email
Publicado por: Graphixx en 12 Septiembre 2014, 17:35 pm
Listo ya llega el mapa de google maps con geolocalizacion al email, dejo el codigo final:
http://www.4shared.com/zip/JqwOFSU8ba/geo6_google_maps_email_php.html

Gracias a todos los que colaboraron!!!

Primero que todo estoy usando PHPMailer por lo que mas adelante pienso consumir miles de correos al dia y usar SMTP por eso no use simplemente mail. Y pues estoy tratando de hacer un POST Dinamico con AJAX a al script donde envio el email y no me da.

Index.html
Código
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. <meta name="robots" content="noindex,follow"/>
  7. <title>Geolocalizacion con HTML5</title>
  8. <link rel="shortcut icon" href="/favicon.ico" />
  9. <style type="text/css">img{border:0}</style>
  10. </head>
  11. <body onload="detectar()">
  12. <div id="mapa">
  13. </div>
  14. <!--email -->
  15. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
  16. <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  17. <!--email -->
  18. <script src="http://code.google.com/apis/gears/gears_init.js" type="text/javascript" charset="utf-8"></script>
  19. <script src="geo.js" type="text/javascript" charset="utf-8"></script>
  20. <script language="javascript">
  21. function detectar(){
  22. if(geo_position_js.init())
  23. {
  24. document.getElementById('mapa').innerHTML="Leyendo...";
  25. geo_position_js.getCurrentPosition(mostra_ubicacion,function(){document.getElementById('mapa').innerHTML="No se pudo detectar la ubicación"},{enableHighAccuracy:true});
  26. } else {
  27. document.getElementById('mapa').innerHTML="La geolocalización no funciona en este navegador.";
  28. }
  29. }
  30. function mostra_ubicacion(p){
  31. var coords = p.coords.latitude + "," + p.coords.longitude;
  32.  
  33. //email
  34. var url= "email_geo_simple.php";
  35. $.ajax({
  36. type: "post",
  37. url:url,
  38. data:{coord:coords},
  39. beforeSend: function()
  40. {
  41. $('#mensaje').html("Cargando...");
  42. },
  43. success: function(datos)
  44. {
  45.   $('#mensaje').html(datos);  
  46. }
  47. });
  48. //email
  49.  
  50. document.getElementById('mapa').innerHTML="<a href=\"http://maps.google.com/?q="+coords+"\"><img src=\"http://maps.google.com/maps/api/staticmap?center="+coords+"&maptype=roadmap&size=400x400&zoom=15&markers=size:mid|"+coords+"&sensor=false\" alt=\"mapa\"/></a>";
  51. }
  52.  
  53.  
  54. </script>
  55. </body>
  56. </html>
  57.  

email_geo_simple.php
Código
  1. <?php
  2. require_once 'email/class.phpmailer.php';
  3.  
  4. $coord = $_POST["coord"];
  5.  
  6. $mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch
  7.  
  8. $email = '<a href=\"http://maps.google.com/?q='.$coord.'"\"><img src=\"http://maps.google.com/maps/api/staticmap?center='.$coord.'&maptype=roadmap&size=400x400&zoom=15&markers=size:mid|'.$coord.'&sensor=false\" alt=\"mapa\"/></a>';
  9.  
  10. try {
  11.  $mail->AddReplyTo('contacto@medica.com.co', 'Medica');
  12.  $mail->AddAddress('proyectosweb@sistemasycontroles.net', 'Medica');
  13.  $mail->SetFrom('contacto@medica.com.co', 'Medica');
  14.  $mail->AddReplyTo('paisa_net@hotmail.com', 'Medica');
  15.  $mail->Subject = 'Su perfil medico ha sido consultado';
  16.  $mail->AltBody = 'Para ver este mensaje, por favor use un cliente de correo compatible con HTML!'; // optional - MsgHTML will create an alternate automatically
  17.  //$mail->MsgHTML(file_get_contents('contents.html'));
  18.  $mail->MsgHTML($email);
  19.  //$mail->AddAttachment('images/phpmailer.gif');      // attachment
  20.  //$mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  21.  $mail->Send();
  22.  echo "Message Sent OK<p></p>\n";
  23. } catch (phpmailerException $e) {
  24.  echo $e->errorMessage(); //Pretty error messages from PHPMailer
  25. } catch (Exception $e) {
  26.  echo $e->getMessage(); //Boring error messages from anything else!
  27. }
  28.  
  29. ?>
  30.  

Si alguien me sabe indicar por que no se ejecuta : email_geo_simple.php, se agradece.

Script completo:
http://www.4shared.com/zip/ynY7K11nba/geo6.html


Título: Re: [AYUDA] Integracion de GoogleMaps con AJAX, enviar mapa por email
Publicado por: Pablo Videla en 12 Septiembre 2014, 22:04 pm
Te muestra algun error en particular?

Agrega esto a tu ajax
Código
  1. error: function (request, status, error) {
  2.        alert(request.responseText);
  3.    }

Para ver que error te sale. O llega al Success?


Título: Re: [AYUDA] Integracion de GoogleMaps con AJAX, enviar mapa por email
Publicado por: Graphixx en 12 Septiembre 2014, 22:47 pm
Te muestra algun error en particular?

No muestra nada, tengo el codigo montado aca:
http://phpdatagrids.com/am_geo_email/

Código
  1. var url= "email_geo_simple.php";
  2. $.ajax({
  3. type: "post",
  4. url:url,
  5. data:{coord:coords},
  6. beforeSend: function()
  7. {
  8. $('#mensaje').html("Cargando...");
  9. },
  10. success: function(datos)
  11. {
  12.   $('#mensaje').html(datos);  
  13. },
  14. error: function (request, status, error) {
  15.                                    alert(request.responseText);
  16.                                }
  17. });
  18.  
Sigo sin entender por que no se ejecuta el codigo en: email_geo_simple.php :(


Título: Re: [AYUDA] Integracion de GoogleMaps con AJAX, enviar mapa por email
Publicado por: MinusFour en 12 Septiembre 2014, 23:02 pm
Tu código si se ejecuta:

Citar
Remote Address:31.22.4.60:80
Request URL:http://phpdatagrids.com/am_geo_email/email_geo_simple.php
Request Method:POST
Status Code:200 OK

Por otro lado, el gear_init.js regresa un 404.

Citar
Remote Address:173.194.115.33:80
Request URL:http://code.google.com/apis/gears/gears_init.js
Request Method:GET
Status Code:404 Not Found

http://code.google.com/apis/gears/gears_init.js


Título: Re: [AYUDA] Integracion de GoogleMaps con AJAX, enviar mapa por email
Publicado por: Graphixx en 13 Septiembre 2014, 00:57 am
Hay Dios, no lo puedo creer 3 dias rompiendome el lomo con ese codigo moviendo y moviendo cosas, cambiando de librerias, y era el "#$%%!" servidor assssss, lo cambie de server y ya funciona llega el email con las coordenadas desde donde fue leido el script, ahora me pongo a trabajar en convertir esas coordenadas en mapa, dejo el codigo funcionando por aca.

http://www.4shared.com/rar/dQ330i0bce/geo6_coord_google_maps_php.html

Gracias a Todos, a DonVidela y Minusfour por su apoyo, gracias gracias!!!
PD: Si me enseñas con que hiciste ese debug de que el POST llegaba bien me fascinaria.


Título: Re: [AYUDA] Integracion de GoogleMaps con AJAX, enviar mapa por email
Publicado por: Graphixx en 13 Septiembre 2014, 18:31 pm
Listo ya llega el mapa de google maps con geolocalizacion al email, dejo el codigo final:
http://www.4shared.com/zip/JqwOFSU8ba/geo6_google_maps_email_php.html

Gracias a todos los que colaboraron!!!


Título: Re: [AYUDA] Integracion de GoogleMaps con AJAX, enviar mapa por email
Publicado por: Pablo Videla en 13 Septiembre 2014, 18:38 pm
 ;-)

Bajando en caso de que alguna vez lo necesite ajjaja, saludos.


Título: Re:
Publicado por: onStrike en 23 Septiembre 2014, 21:32 pm
Creo que lo hizo con la consola de programador de firefox por.en donde ves los post y los get