Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajax Php mail

Debugage

    19 mai 2017 à 20:28:00

    Bonjour

    Pas très fauté en débogage, suite à une form, je récupère le mai d'un compte à qui je vais envoyer un message.  Le script Php d'envois de message fonction bien

    séparément mais elle ne se déclencha pas   via Ajax.  Si vous avez une idée de débogage, je suis preneur.  Voici donc le fichier Html disons Adduer

    <script type="text/javascript">
    
    function CheckMail()
    {
            var mail = document.getElementById('email').value;
            var emailFilter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
            if (!emailFilter.test(mail)) 
            {
                    return false;
            }
            return true;
    }
    
    function onSuccess(data, status)
    {
            data = $.trim(data);
            $('#adduser').modal('hide'); 
    
            alert("Succes");
            if( data === "0" )
            {
                    BadUser();
            }
            else
            {
                    var w = "/index.php?lang=" + "Fr" ;
                    window.location.replace(w);
                    return true;
            }
    }
      
    function onError(data, status)
    {
            alert("on Error");
    }
    
    $( "#adduser" ).submit(function( event ) {
      event.preventDefault();
            m = CheckMail();
            if ( ! m ) { AffModalError('Veuillez entrer votre Email'); return false; }
    
            var formData = $("#adduser").serialize();
            $.ajax({
                 type: "POST",
                 url: "/Root/Fr/Php/SendMsg2User.php",
                 cache: false,
                 data: formData,
                 success: onSuccess,
                 error: onError
               });
               return false;
    });
    
    </script>
    
    <div class="AddUser">
     <div class="modal-content">
      <div class="modal-header">
       <button type="button" class="close" data-dismiss="modal" >&times;</button>
         <h4 class="modal-title">Creation de compte</h4>
      </div>
    
    <form class="form-horizontal" id="adduser" name="adduser" method="post" />
      <div class="modal-header">
       <div class="form-group">
        <div class="col-md-10" style="margin-left:9%">
         <input type="mail" class="form-control" id="email" name="email" value="" placeholder="Votre Email *" />
         </div>
    <br />
    
    </div>
       <div class="form-group">
       <div class="form-group">
            <button id="submit" name="submit" type="submit" value="Send" class="mySend" >Envoit</button>
         </div>
         </div>
       </div>
    </form>
     <div class="modal-footer">
      <span style="float:left"><a href="#adduser" onclick="AddUser();">Devenir membre</a></span>
      <span style="float:right"><a href="#forgotpass" onclick="ForgotPass();">Password oublié</a></span>
     </div>
     </div>
    </div>
    

    Voici le fichier  SendMsg2User.php

    <?php
    
    date_default_timezone_set('Etc/UTC');
    require '/Lib/Php/PHPMailer-master/class.phpmailer.php';
    
    //echo "<script> alert(\"hello\"); <\script>";
    
    $mail->CharSet='UTF-8';
    $mail = new PHPMailer;
    $mail->IsHTML(true);
    $mail->SetFrom('kazem@cyrus.hd.free.fr', 'biato.fr');
    $mail->Subject = 'Inscriptio:Biato';
    $mail->AddAddress('xyz@gmail.com');
    
    $mail->WordWrap = 50; // set word wrap to 50 characters
    $mail->AddAttachment("logo.gif");                // add attachments
    $mail->IsHTML(true);                                                              // set email format to HTML
    
    $mail->AddEmbeddedImage('/www/Img/biato.png', 'logo', 'biato.png');
    
    
    $mail->Subject = "Inscription";
    
    $mail->Body     = '
    
    <div style="color:white; width:550px; margin-left:10%; padding:10px;
    background: -moz-linear-gradient(top,  rgba(68,187,187,1) 0%, rgba(34,0,2,1) 75%);
    ackground: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(68,187,187,1)), color-stop(75%,rgba(34,0,2,1)));
    ackground: -webkit-linear-gradient(top,  rgba(68,187,187,1) 0%,rgba(34,0,2,1) 75%);
    background: -o-linear-gradient(top,  rgba(68,187,187,1) 0%,rgba(34,0,2,1) 75%);
    background: -ms-linear-gradient(top,  rgba(68,187,187,1) 0%,rgba(34,0,2,1) 75%);
    background: linear-gradient(to bottom,  rgba(68,187,187,1) 0%,rgba(34,0,2,1) 75%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=#44bbbb, endColorstr=#220002,GradientType=0 );
    
    "> <center>
    <img src="cid:logo" alt="my photo" height=50px;border=0 />
    
    </center> </div>
    
    
    <div style="width:550px; margin-left:10%; padding:10px;background: #E6E6E6; ">
    <h2>    Bonjour; </h2> </center>
    <h4> 
            Pour finir votre inscription, veuillez suivre le lien suivant
            <br /> <br /> <br /> <center>
            <a style="color:black; text-decoration: none;"
                    href="//localhost/index.php?act=enreg&id=1234"> href=//localhost/index.php?act=enreg&id=1234</a>
            <br /> <br /> Validation: 3 jours <br /> <br />
            </center>
            <br /> <br /> Merci<br /> <br />
    
    </h4>
    </div> </div>
    ';
    
    $mail->AltBody = "This is the body in plain text for non-HTML mail clients";
    
    if(!$mail->Send())
    {
       echo "Message could not be sent. <p>";
       echo "Mailer Error: " . $mail->ErrorInfo;
       exit;
    }
    
    ?>
    

    Merci pour vos aides



    • Partager sur Facebook
    • Partager sur Twitter
      19 mai 2017 à 21:43:31

      Salut, de ce que je me souviens, onSuccess() et onError() sa mettent dans la même fonction et c'est à php de traiter si le mail est valide enfin tout est faisable bien sur. perso je gère aussi l'envoi de mail via php.

      As-tu un message de console sur la partie XHR au moment de l'envoi du formulaire ?

      Perso je fais un traitement (d'inscription) de cette manière :

      $(document).ready(function(){
      
      //Traitement du formulaire d'inscription
      $("#form_inscript").submit(function(){
      	var info2 = $('.bulle_infos2');
      	var info3 = $(".bulle_infos3");
      	var pseudo = $("#pseudo").val();
      	var pass1 = $("#pass1").val();
      	var pass2 = $("#pass2").val();
      	var email = $("#mail").val();
      	var accept = $("#accept").val();
      			
      	$.ajax({
      		type: "post",
      		url:  "includes/functions/inscription.php",
      		data: {
      			'pseudo' : pseudo,
      			'pass1' : pass1,
      			'pass2' : pass2,
      			'email' : email,
      			'accept' : accept,
      		},
      
      		beforeSend: function(){
      			$("#submInscript").attr("value", "Traitement en cours...");
      			$("#submInscript").attr("disabled", "disabled");
      			$('#pseudo').attr("disabled", "disabled");
      			$("#mail").attr("disabled", "disabled");
      			$("#pass1").attr("disabled", "disabled");
      			$("#pass2").attr("disabled", "disabled");
      			$("#accept").attr("disabled", "disabled");
      		},
      
      		success: function(data){
      			if(data != "register_success"){
      				info2.addClass('error').html(data).fadeIn(600);
      				setTimeout(function() {
      					info2.fadeOut(600);
      				}, 4000);
      				       $("#submInscript").attr("value", "Créer mon compte");
      				} else {
      					info3.addClass('agree').html("<strong>Inscription validée " + pseudo + " !</strong><p>Juste une dernière étape, un lien d'activation de votre compte vient de vous être envoyé au mail indiquée lors de l'inscription.Veuillez cliquer sur ce lien et vous serez définitivement inscrit sur Governity.<br /><em>(Pensez à vérifier vos spams ou courriers indésirables, si vous ne voyez pas ce mail dans votre boîte de réception)</em><p>A très bientôt  <p>").css("width", "inherit").fadeIn(600);
      					$("#submInscript").attr("value", "Créer mon compte");
      				        setTimeout(function() {
      				               info3.fadeOut(600);
      				        }, 16000);
      
      					$('#pseudo').val('');
      					$("#mail").val('');
      					$("#pass1").val('');
      					$("#pass2").val('');
      					$("#accept").val('');
      					$("#submInscript").removeAttr("disabled");
      					$('#pseudo').removeAttr("disabled");
      					$("#mail").removeAttr("disabled");
      					$("#pass1").removeAttr("disabled");
      					$("#pass2").removeAttr("disabled");
      					$("#accept").removeAttr("disabled");
      								
                                     }
      			}
      		});
      	});
      });
      



      J'en profite lors du traitement pour effacer les input pour éviter les doublons et pour la sécurité ainsi que le blocage du bouton submit

      -
      Edité par stefde3 19 mai 2017 à 21:45:05

      • Partager sur Facebook
      • Partager sur Twitter

      Le CSS ça peut craindre -->Conférence CSS3.CREATE

        19 mai 2017 à 23:20:07

        Bonsoir

        En fait et avant de passer dans les différents gestions (purge des champs, hashage, etc), je voulais d'abord vérifier la bonne fonctionnement de l'ensemble.. Hors et si, je passe dans onSucces, ce que  le code   retour Ajax sur l'’exécution du code php est true, sauf qu'aucun mail n'est acheminé. Et comme j'ai expliqué, tout mon problème est de pouvoir tracer le code autrement dit debugage. Je vais essayer voir comment utilise la console sur la partie XHR.



        • Partager sur Facebook
        • Partager sur Twitter
          19 mai 2017 à 23:50:29

          T'auras toutes les réponses dessus si y a un bug. Tu peux voir plusieurs infos : les infos envoyés, le statut 200 ok ou pas et la réponse du serveur (même si il s'affiche pas sur ton site)

          • Partager sur Facebook
          • Partager sur Twitter

          Le CSS ça peut craindre -->Conférence CSS3.CREATE

            21 mai 2017 à 17:50:07

            Bonjour

            Ouf,  ça marche ( juste problème d'un blanc ). 

            Bon, encore une question STP, comment je peux recouper la valeur de retour d'un Php en occurrence  mon SendMsg2User.php  dans le succes en Ajax ?

            J'ai ajouté un echo puis retour puis exit à la fin de Php et en paramétrer de function succes pour Ajax

             $.ajax({
                            type: "POST",
                            cache: false,
                            url: '../../../SendMsg2User.php',
                            success: function(pdata)
                            {
                                    alert("Donnees retournees : " + pdata );
                            },
                            error: function()
                            {
                                    alert("Bad User");
                            }
                       });
            


            Mais je ne reçois rien . Je dois être mauvais puisque même avec json, rien à faire 

            Merci



            • Partager sur Facebook
            • Partager sur Twitter
              22 mai 2017 à 10:22:55

              Et t'as rien en message d'erreur dans la console ?
              • Partager sur Facebook
              • Partager sur Twitter

              Le CSS ça peut craindre -->Conférence CSS3.CREATE

                22 mai 2017 à 18:34:45

                Salut,

                Non, absolument rien. Le plus bizarre, ce que je me suis fait ma propre log ( création de fichier avec PHP ) et tout semble bien. 

                • Partager sur Facebook
                • Partager sur Twitter
                  23 mai 2017 à 13:16:13

                  Les erreurs ajax ne se voient pas sur les debugs de pop. Ca se voit en bas (F12) dans la console XHR
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le CSS ça peut craindre -->Conférence CSS3.CREATE

                  Ajax Php mail

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown