IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

synchronisation newsletter sur pure360 [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 23
    Points : 17
    Points
    17
    Par défaut synchronisation newsletter sur pure360
    Bonjour,

    Je souhaiterais effectuer une modification sur le formulaire d'inscription de ma newsletter.

    Actuellement, j'ai un champs de texte qui enregistre l'adresse mail dans ma BDD via un code PHP et m'envoie une confirmation d'inscription par email. Depuis peu, nous avons souscrit à la plateforme de gestion de newsletter Pure360. Dans cette plateforme, il est possible de générer un code HTML à intégrer dans son site web pour que l'enregistrement s'effectue sur la BDD de la plateforme en question.

    Voici le code généré :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <HTML>
    <BODY>
    <P/>
    Example List Upload Interface
    <P/>
    <FORM ACTION="http://emaildistributionsystem.fr/interface/list.php" METHOD="post">
    <INPUT TYPE="hidden" NAME="accName" VALUE="Champery"/>
    <INPUT TYPE="hidden" NAME="listName" VALUE="Newsletter site web"/>
    <INPUT TYPE="hidden" NAME="fullEmailValidationInd" VALUE="Y"/>
    <INPUT TYPE="hidden" NAME="doubleOptin" VALUE="false"/>
    <INPUT TYPE="hidden" NAME="successUrl" VALUE="NO-REDIRECT"/>
    <INPUT TYPE="hidden" NAME="errorUrl" VALUE=""/>
    Email: <INPUT NAME="email"/><BR/>
    Mobile: <INPUT NAME="mobile"/><BR/>
    <INPUT TYPE="hidden" NAME="Nom"/><BR/>
    <INPUT TYPE="hidden" NAME="Prénom"/><BR/>
    <INPUT TYPE="hidden" NAME="Ville"/><BR/>
    <INPUT TYPE="hidden" NAME="Numéro"/><BR/>
    <P/>
    <INPUT TYPE="submit" VALUE="OK" />
    </FORM>
    </BODY>
    </HTML>

    Cependant, j'aimerais conserver l'enregistrement dans ma BDD et donc l'action appelé dans mon formulaire.

    Voici le formulaire original de mon site (je précise que nous utilisons le framework SMARTY pour la gestion des templates) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h3>#{smarty_trad value="lib_titre_module_newsletter"}#</h3>
    <p>#{smarty_trad value="lib_texte_module_newsletter"}#</p>
    <form id="encartNewsletter" action="#{$actionNewsletter}#" onsubmit="return false;">
        <fieldset>
            <input class="text" type="text" placeholder="#{smarty_trad value="lib_saisir_email"}#" id="EmailNewsletter" name="EmailNewsletter" />
            <input class="submit" type="submit" value="#{smarty_trad value="lib_OK"}#" onclick="InscriptionNewsletter();" />
        </fieldset>
    </form>
    Enfin, voici le code du module de notre newsletter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?
     
    // Initialisation de la page
    $path="../";
    require($path."include/inc_header.inc.php");
     
    $message = "";
    $message .= "<b>Email :</b> ".$_REQUEST['email']."<br>";
    $message .= get_libLocal('lib_option_1');
     
    //Envoi du mail
    mailer(_MAIL_WEBMASTER_NEWSLETTER, $message, $_REQUEST['email'], $_REQUEST['email'], get_libLocal('lib_sujet_mail_inscription_newsletter'));
     
    $sql = "insert into contact (	email,
                                    newsletter,
                                    date,
                                    ip)
    
                VALUES (	'".addslashes($_REQUEST["email"])."',
                            1,
                            now(),
                            '".$_SERVER['REMOTE_ADDR']."')";
     
    $result  = mysql_query($sql);
    if (mysql_error()) {
        echo get_libLocal('lib_inscription_newsletter_ko');
    } else {
        echo get_libLocal('lib_inscription_newsletter_ok');
    }
     
    ?>
    Ma question est savoir quelle est la meilleur manière de synchroniser ces deux codes dans mon architecture ?

    Je précise que je suis uniquement le Webmaster du site, que je ne suis pas à l'origine du code et que j'ai des compétences limitées en dév.

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Garde ton formulaire et traitement actuel et utilise cURL pour "pousser" les informations vers la plateforme comme si elles venaient d'un formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
    $c = curl_init();
    curl_setopt($c, CURLOPT_URL, 'http://emaildistributionsystem.fr/interface/list.php');
    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($c, CURLOPT_POST,true);
    $params = array(
    'accName'=>'Champery',
    'listName'=>'Newsletter site web',
    'fullEmailValidationInd'=>'Y',
    'doubleOptin'=>'false',
    'successUrl'=>'NO-REDIRECT',
    'errorUrl'=>'',
    'email'=>$_POST['email'],
    'mobile'=>$_POST['mobile']
    );
    curl_setopt($c, CURLOPT_POSTFIELDS,$params);
    $output = curl_exec($c);
    if($output === false)
    {
    	trigger_error('Erreur curl : '.curl_error($c),E_USER_WARNING);
    }
    else
    {
    	echo $output;
    }
    curl_close($c);
    ?>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Merci vivement pour ta réponse "sabotage".

    Après avoir étudier mon code, je me suis rendu compte que la personne ayant codé le site web envoie les variables inscrites dans le formulaire via la fonction jQuery $post affiché dans un fichier script.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function InscriptionNewsletter() {
        if (isValidEmail('EmailNewsletter'))
        {
            $.post($('#encartNewsletter').attr('action'), {email:$("#EmailNewsletter").val()}, function (data) { alert(data); });
     
            return false;
        } else {
            alert(get_trad_lib('email'));
            return false;
        }
    }
    Comment puis-je faire pour relier proprement ce code avec celui que tu m'as proposé ?

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code que je t'ai gribouillé va dans la page de destination (action du <form>)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    Un grand merci pour ton aide Sabotage, ça marche nikel !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/06/2008, 12h56
  2. Synchronisation Webmail sur Outlook 2003 par IMAP
    Par jul044 dans le forum Outlook
    Réponses: 2
    Dernier message: 07/02/2008, 16h28
  3. newsletter sur dreamweaver
    Par lars59 dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 23/09/2007, 13h42
  4. Réponses: 1
    Dernier message: 13/12/2006, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo