[joomla3 !] Développer un formulaire de confirmation de mail

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [joomla3 !] Développer un formulaire de confirmation de mail

    Bonjour,

    j'essaie de développer une extension pour Joomla 3!, mais quand j'inclue des fichier j'ai l'impression que le reste de mon code ne s'exécute pas.
    Par ailleurs je galère à accéder à la base de données (il ne se passe rien) et l'envoi des mails ne fonctionne pas. Bref j'ai la totale !

    Page qui appelle post.php :
    Code PHP:
    <?php defined('_JEXEC') or die;
    $doc JFactory::getDocument();
    $doc->addScript(JURI::root(). 'modules/mod_mail/jquery-1.11.1.min.js' ); 
    ?>

    <div class="promo-module item-image pull-left <?php echo htmlspecialchars($moduleclass_sfx); ?>">
        <form method="post" action="post.php">
            <p>
                <label>Nom</label> : <input type="text" name="nom" id="nom" />
                <label>Prénom</label> : <input type="text" name="prenom" id="prenom" />
                <label>Email</label> : <input type="email" name="email" id="email" />
                <input type="button" name="valider" value="S'inscrire" id="valider" />
            </p>
        </form>
        <p id="confirmation">Votre inscription a bien été prise en compte.</p>

    <script>
    $(document).ready(function(){
         $('#valider').click(function(){
            execScript();
         });

    });

    function execScript(){
        $.post('<?php echo JURI::root();?>\\modules\\mod_mail\\tmpl\\post.php',
        {
            nom:$("#nom").val(),
            prenom:$("#prenom").val(),
            email:$("#email").val()
        },
        function(data,status){
            if(status=="success"){
                alert(data);
            }
        });
    }
                
    </script>

    </div>

    post.php :
    Code PHP:
    require_once('..\\..\..\\libraries\\loader.php' ); //nécessaire pour utiliser jimport
    jimport'joomla.factory'); //nécessaire pour utiliser JFactory

    $doc JFactory::getDocument();
    $doc->addScript(JURI::root(). 'modules/mod_mail/jquery-1.11.1.min.js' ); 

    require(
    'PHPMailer\\_lib\\phpmailer-fe.php');
    require(
    'PHPMailer\\_lib\\class.phpmailer.php');

    function 
    nofaille($post){
        
    $post=stripslashes($post);
        
    $post=mysql_real_escape_string($post);
        return 
    $post;
    }

    $nom nofaille($_POST['nom']);
    $prenom nofaille($_POST['prenom']);
    $email nofaille($_POST['email']);

    // Get a db connection.
    $db JFactory::getDbo();
     
    echo 
    "database : ".$db;
     
    // Create a new query object.
    $query $db->getQuery(true);
     
    // Insert columns.
    $columns = array('nom''prenom''email');
     
    // Insert values.
    $values = array($nom$prenom$email);
     
    // Prepare the insert query.
    $query
        
    ->insert($db->quoteName('dnmjz_mail'))
        ->
    columns($db->quoteName($columns))
        ->
    values(implode(','$values));
     
    // Set the query using our newly populated query object and execute it.

    echo $query;

    $db->setQuery($query);
    $db->execute();


    // Récupération des variables nécessaires au mail de confirmation    
    $email $_POST['email'];
     
    // Préparation du mail contenant le lien d'activation
    $destinataire $email;
    $sujet "Ecoslops - Inscription à la liste de diffusion" ;
    $entete "From: inscription@ecoslops.com" ;
     
    // Le lien d'activation est composé du login(log) et de la clé(cle)
    $message 'Bonjour '.$_POST['prenom'].' '.$_POST['nom'].',
     
    Votre inscription a bien été prise en compte. Vous recevrez les communiqués de presse d\'Ecoslops, et serez tenu au courant de l\'actualité. Pour vous désinscrire, vous pouvez envoyer un mail à l\'adresse ecoslops.citigate.fr
     
     
    ---------------
    Ceci est un mail automatique, Merci de ne pas y répondre.'
    ;
     
    function 
    email($destinataire$sujet$message$from='elzbiekta0509@gmail.com'){ 
        
    $mail = new PHPmailer();
        
    $mail->IsSMTP();
        
    $mail->IsHTML(true);
        
    $mail->Host='smtp.gmail.com';
            
    // Serveur SMTP
        
    $mail->From=$from;
        
    $mail->FromName='Ecoslops Test';
        
    $mail->SMTPAuth=true;
            
    // Si il y a une connexion email/password requise alors = true sinon = false
        
    $mail->Username='elzbietka0509@gmail.com';
            
    // Username, l'émail de connexion au serveur SMTP
        
    $mail->Password='F3rdYdurk3G0mbr0w1cz4';
            
    // Password, le mot de passe de connexion au serveur SMTP
        
    $mail->SMTPDebug=false;
            
    // Si tu a des soucis d’envoi met sur TRUE pour activé le mode débug
        
    $mail->AddAddress($destinataire);
        
    $mail->AddReplyTo($from);   
        
    $mail->Subject=$sujet;
        
    $mail->Body=$message;
     
        if(!
    $mail->Send()){
          return 
    false;
          
    // Erreur
        
    }
        else{    
          return 
    true;
          
    // Bien envoyé
        
    }
        
    $mail->SmtpClose();
        unset(
    $mail);
    }

    email("elisabeth.abbaszadeh@ecoslops.com""teeeeest""????""bla"); 

  • #2
    Re : [joomla3 !] Développer un formulaire de confirmation de mail

    C'est un module ou un composant? j'ai un peu du mal a comprendre la structure de ton code. J'ai l'impression que tu renvois directement ton formulaire sur un fichier php pour le traitement dans lequel tu n'as pas le framework Joomla le moyen le plus simple serait de faire un composant complet, de traiter ton formulaire avec le controller principale. Ça serait plus logique pour ce type d'utilisation ou plus simplement si tu ne cherches pas a faire autre chose utilise un composant de gestion de formulaire.

    Commentaire

    Annonce

    Réduire
    Aucune annonce pour le moment.

    Partenaire de l'association

    Réduire

    Hébergeur Web PlanetHoster
    Travaille ...
    X