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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Newsletter] Inscription et mise en forme du message


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Newsletter] Inscription et mise en forme du message
    Bonjour

    Voilà j'expose mon problème :

    J'ai suivit un tuto pour créer une newsletter pour mon site mais j'ai un soucis avec l'inscription des membres et avec l'envoi des messages (au niveau de la mise en forme html) !

    J'ai deux tables pour le fonctionnement du script :

    1 - un simple table NEWSLETTER avec un champ EMAIL

    email text utf8_general_ci Non

    2 - Une table NEWSLETTER_ARTICLE avec 3 champ :

    newsletter_article_id int(9) UNSIGNED Non auto_increment
    newsletter_article_texte text utf8_general_ci Non
    newsletter_article_titre

    Ensuite ma newsletter se compose de 4 fichiers PHP :

    Newsletter.php : (voiçi son code)
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    <?php
    /***************************************************************************
     *  Copyright (C) 2007 Michel Teddy
     *  This file is part of Tagadash
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU Lesser General Public License as published
     *  by the Free Software Foundation; either version 2.1 of the License, or
     *  (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     *  Lesser General Public License for more details.
     *
     *  You should have received a copy of the GNU Lesser General Public
     *  License along with this program; if not, write to the Free Software
     *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     ***************************************************************************/
    /***************************************************************************
     *  Fichier : /pages/Newsletter.php
     *  Date de création : 17/09/2007
     *  Dernière modification : 15/10/2007
     ***************************************************************************/
     
    // Sécurité
    if ( !defined ( 'TAGADASH' ) )
    {
        header ( 'Location: ../' );
        die ( -1 );
    }
     
     
    // Titre de la page
    $page_titre = 'Newsletter';
    $page_infos = 'Inscription ou D&eacute;sinscription &agrave; la Newsletter';
     
     
        if(isset($_GET['email'])) //on vérifie que la variable $_GET['email'] existe
        {
     
            if( !empty($_POST['email']) AND $_GET['email']==1 AND isset($_POST['new'])) /*on vérifie que la variable $_POST['email'] contient bien quelque chose, que la variable $_GET['email'] est égale à 1 et que la variable $_POST['new'] existe */
            {
            if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) // on vérifie qu'on a bien rentré une adresse e-mail valide
            {
    			// -- On vérifie si le Mail existe déjà dans la table.###############################################
    			$sql = 'SELECT COUNT(*)
    						FROM ' . $database->pref . 'newsletter
    						WHERE email = "'. $_POST['email'].'";';
     
    			$req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
    			//###################################################################################################
                if( $_POST['new'] == 0 && $req[0] != 0 ) //si la variable $_POST['new'] est égale à 0, cela signifie que l'on veut s'inscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre inscription &agrave; la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_inscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Inscription à la newsletter" ;
     
                $headers  = "MIME-Version: 1.0" . "\r\n";
                $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
                $headers .= "From: informadream.11@gmail.com" . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) //on envoie l'e-mail
                    {
     
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre inscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre inscription.</p>";
                    }
                }
                elseif( $_POST['new'] == 1 && $req[0] != 0 ) //si la variable $_POST['new'] est égale à 1, cela signifie que l'on veut se désinscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre d&eacute;sinscription de la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_desinscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Désinscription de la newsletter" ;
     
                $headers  = "MIME-Version: 1.0" . "\r\n";
                $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
                $headers .= "From: informadream.11@gmail.com" . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) 
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre d&eacute;sinscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre d&eacute;sinscription.</p>";
                    }
                }
                else
                {
                $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il existe d&eacute;j&agrave; un membre avec cette adresse email.<br /><a href=\"index.php?page=Newsletter\">RETOUR</a></p>";
                }
            }
            else
            {
            $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Vous n&acute;avez pas entr&eacute; une adresse e-mail valide !<br /><a href=\"index.php?page=Newsletter\">RETOUR</a></p></p>";
            }
            }
            else
            {
    		$page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur !<br /><a href=\"index.php?page=Newsletter\">RETOUR</a></p></p>";
            }
        }
        else // si les champs n'ont pas été remplis
        {
    		$page_texte .= "<form method=\"post\" action=\"index.php?page=Newsletter&amp;email=1\">";
    		$page_texte .= "<fieldset>\n<legend>Ici vous pouvez vous inscrire ou vous d&eacute;sinscrire de la newsletter du site VOTRE SITE.</legend>\n\n
    		<p align=\"center\"><u>Entrez votre adresse e-mail ci-dessous :</u><br />
    		<input type=\"text\" name=\"email\" size=\"25\" /><br />
    		<u>Faite votre choix en cochant <b><i>Inscription</i></b> ou <b><i>D&eacute;sincription</i></b> ci-dessous :</u><br />
    		S&acute;inscrire &agrave; la Newsletter <input type=\"radio\" name=\"new\" value=\"0\" /><br />
    		Se d&eacute;sinscrire de la Newsletter <input type=\"radio\" name=\"new\" value=\"1\" /><br /><br />
    		<input type=\"submit\" value=\"Envoyer\" name=\"submit\" /> <input type=\"reset\" name=\"reset\" value=\"Effacer\" /></p>
    		</form>";
        }
    ?>
    Newsletter_inscription.php :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    <?php
    /***************************************************************************
     *  Copyright (C) 2007 Michel Teddy
     *  This file is part of Tagadash
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU Lesser General Public License as published
     *  by the Free Software Foundation; either version 2.1 of the License, or
     *  (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     *  Lesser General Public License for more details.
     *
     *  You should have received a copy of the GNU Lesser General Public
     *  License along with this program; if not, write to the Free Software
     *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     ***************************************************************************/
    /***************************************************************************
     *  Fichier : /pages/Livre_or.php
     *  Date de création : 17/09/2007
     *  Dernière modification : 15/10/2007
     ***************************************************************************/
     
    // Sécurité
    if ( !defined ( 'TAGADASH' ) )
    {
        header ( 'Location: ../' );
        die ( -1 );
    }
     
     
    // Titre de la page
    $page_titre = '';
    $page_infos = '';
     
        if($_GET['tru']==1)
        {
     
        setcookie("email", $_GET['email'], time()+60); //on crée un cookie qui expirera 60 secondes plus tard pour des raisons de sécurité
        }
     
    if($_GET['tru']==2)
        {
    		$delai=1; 
    		$url='http://www.informadream.fr/cms_demo/index.php';
    		header("Refresh: $delai;url=$url");
        }
        else
        {
    		$delai=60; 
    		$url='http://www.informadream.fr/cms_demo/index.php';
    		header("Refresh: $delai;url=$url");
        }
     
    $page_texte .='<p align="center"><font size="5">Validation de votre inscription</font></p>';
     
        if($_GET['tru']==1) //si la variable $_GET['tru'] est égale à 1
        //on affiche le formulaire
        {
     
    $page_texte .='<font color="red">Attention, vous avez 1 minute pour remplir le formulaire. Pass&eacute; ce d&eacute;lai, celui*ci ne sera plus valide.</font>
    <form method="post" action="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_inscription&amp;tru=2">
    Entrez votre e-mail : <input type="text" name="email" size="25" /><br />
    <input type="submit" value="Envoyer" name="submit" /> <input type="reset" name="reset" value="Effacer" />
    </form>';
     
        }
    	elseif($_GET['tru']==2) //sinon, si la variable $_GET['tru'] est égale à 2
        {
     
        $email_mail = $database->Protege ($_COOKIE['email']);
        $email_entre = $database->Protege ($_POST['email']);
     
            if( $email_entre == $email_mail ) //si les deux adresses e-mail sont identiques
            {
     
    		$sql = "INSERT INTO " . $database->pref . "newsletter
                        VALUES
                        ('" . $email_entre . "');";
     
                $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
            $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Vous avez bien &eacute;t&eacute; inscrit &agrave; la newsletter ! Vous allez &ecirc;tre redirig&eacute; dans 1 seconde.</p>";
     
            }
            else
            {
     
            $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Vous n&acute;avez pas entr&eacute; la bonne adresse e-mail !</p>";
     
            }
        }
        else
        {
    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur.</p>";
        }
    ?>
    Newsletter_desinscription.php :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    <?php
    /***************************************************************************
     *  Copyright (C) 2007 Michel Teddy
     *  This file is part of Tagadash
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU Lesser General Public License as published
     *  by the Free Software Foundation; either version 2.1 of the License, or
     *  (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     *  Lesser General Public License for more details.
     *
     *  You should have received a copy of the GNU Lesser General Public
     *  License along with this program; if not, write to the Free Software
     *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     ***************************************************************************/
    /***************************************************************************
     *  Fichier : /pages/Livre_or.php
     *  Date de création : 17/09/2007
     *  Dernière modification : 15/10/2007
     ***************************************************************************/
     
    // Sécurité
    if ( !defined ( 'TAGADASH' ) )
    {
        header ( 'Location: ../' );
        die ( -1 );
    }
     
     
    // Titre de la page
    $page_titre = '';
    $page_infos = '';
     
        if($_GET['tru']==1)
        {
     
        setcookie("email", $_GET['email'], time()+60); //on crée un cookie qui expirera 60 secondes plus tard pour des raisons de sécurité
        }
     
    	if($_GET['tru']==2)
        {
    		$delai=1; 
    		$url='http://www.informadream.fr/cms_demo/index.php';
    		header("Refresh: $delai;url=$url");
        }
        else
        {
    		$delai=60; 
    		$url='http://www.informadream.fr/cms_demo/index.php';
    		header("Refresh: $delai;url=$url");
        }
        //}
    $page_texte .='<p align="center"><font size="5">Validation de votre d&eacute;sinscription</font></p>';
     
        if($_GET['tru']==1) //si la variable $_GET['tru'] est égale à 1
        //on affiche le formulaire
        {
    $page_texte .='<font color="red">Attention, vous avez 1 minute pour remplir le formulaire. Pass&eacute; ce d&eacute;lai, celui*ci ne sera plus valide.</font>
    <form method="post" action="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_desinscription&amp;tru=2">
    Entrez votre adresse e-mail : <input type="text" name="email" size="25" /><br />
    <input type="submit" value="Envoyer" name="submit" /> <input type="reset" name="reset" value="Effacer" />
    </form>';
        }
        elseif($_GET['tru']==2) //sinon, si la variable $_GET['tru'] est égale à 2
        {
        $email_mail = $database->Protege ($_COOKIE['email']);
        $email_entre = $database->Protege ($_POST['email']);
     
            if( $email_entre == $email_mail ) //si les deux adresses e-mail sont identiques
            {
            //mysql_query("DELETE FROM newsletter WHERE email='" . $email_entre ."'"); //on supprime l'adresse de la BDD
    		$sql = "DELETE FROM " . $database->pref . "newsletter
                        WHERE email = '" . $email_entre . "';";
     
                $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
            $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Vous avez bien &eacute;t&eacute; d&eacute;sinscrit de la newsletter ! Vous allez &ecirc;tre redirig&eacute; dans 1 seconde.</p>";
     
            }
            else
            {
            $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Vous n&acute;avez pas entr&eacute; la bonne adresse e-mail !</p>";
            }
        }
        else
        {
        $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur.</p>";
        }
    ?>
    Newsletter_admin.php :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
     
    <?php
    /***************************************************************************
     *  Copyright (C) 2007 Michel Teddy
     *  This file is part of Tagadash
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU Lesser General Public License as published
     *  by the Free Software Foundation; either version 2.1 of the License, or
     *  (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     *  Lesser General Public License for more details.
     *
     *  You should have received a copy of the GNU Lesser General Public
     *  License along with this program; if not, write to the Free Software
     *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     ***************************************************************************/
    /***************************************************************************
     *  Fichier : /pages/Newsletter_admin.php
     *  Date de création : avant le 13/08/2007
     *  Dernière modification : 29/08/2007
     ***************************************************************************/
     
    // Sécurité
    if ( !defined ( 'TAGADASH' ) )
    {
        header ( 'Location: ../' );
        die ( -1 );
    }
     
    // Droits d'administration
    if ( $droit['administration'] == 0 )
    {
        $page_msg = 2;
        include_once ( './systeme/msg.' . EXT );
    }
     
    // Titre de la page
    $page_titre = 'newsletter';
    $page_infos = 'R&eacute;daction et envoi de la newsletter';
     
    // on liste les inscrits
    $page_texte .= '<div align="center"><br /><br /><u>Liste des inscrits :</u><br />
    ';
     
    $sql = 'SELECT COUNT(*) AS count
            FROM ' . $database->pref . 'newsletter;';
     
    $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
     
    $nbr_email = $database->Result ( $req , 'count' );
     
    		$page_texte .= 'Il y a <span style="font-weight:bold; color:#F00; font-style:italic;">' . $nbr_email . '</span> inscrits &agrave; la Newsletter</div>';
     
    //-------------- liste la newsletter afin de pouvoir la supprimé et dans faire une autre ----------------------------------------//
     
    $sql = 'SELECT COUNT(*) AS count
            FROM ' . $database->pref . 'newsletter_article;';
     
    $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
     
    $nbr_msg = $database->Result ( $req , 'count' );
     
     
    if ( isset ( $_GET['msg'] ) && is_numeric ( $_GET['msg'] ) && $nbr_msg > 0  && $_GET['msg'] > 0 )
    {
        $page = 0;
     
        $sql = 'SELECT newsletter_article_id
                FROM ' . $database->pref . "newsletter_article
                WHERE newsletter_article_id <= '" . $_GET['msg'] . "';";
     
        $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
        header ( 'Location: index.' . EXT . '?page=Newsletter_admin&start=' . $page );
        die ( -1 );
    }
    // Suppression définitive
    else if ( isset ( $_GET['delete'] ) )
    {
    	$page = 0;
     
    	$sql = 'DELETE FROM ' . $database->pref . "newsletter_article
    			WHERE newsletter_article_id = '" . $_GET['id'] . "';";
     
    	$database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
    	$page_texte .='<p style="text-align:center; font-weight:bold; color:#F00;">Newsletter supprim&eacute; avec succès !</p>';
    }
     
    if ( $nbr_msg > 0 )
    {
        $sql = "SELECT newsletter_article_id,
                       newsletter_article_titre,
                       newsletter_article_texte
                FROM " . $database->pref . 'newsletter_article';
     
        //=>MySQL
        $row = $database->ResultArray ( $req );
        //=>END
     
        $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
    $page_texte .='<br /><br /><div style="text-align:center; font-weight:bold; color:#F00;">Ci-dessous voi&ccedil;i la derni&egrave;re newsletter envoy&eacute;.<br /><br />Attention supprimez-la avant d&acute;en &eacute;crire une nouvelle.<br /><br /></div>';
     
    while ( $row = $database->ResultArray ( $req ) )
        {
            $page_texte .= "<div align=\"center\" id=\"msg_" . $row['newsletter_article_id'] . "\">\n\n";
     
            if ( $row['newsletter_article_id'] > 0 )
            {
                $page_texte .= '<a href="index.' . EXT . '?page=Newsletter_admin&amp;id=' . $row['newsletter_article_id'] . '&amp;delete">Cliquez ici pour supprimer la derni&egrave;re Newsletter envoy&eacute;.</a>';
            }
    		$msg_texte_titre = 'Titre : ' .$row['newsletter_article_titre'].'';
            $msg_texte .= 'Texte : ' .$row['newsletter_article_texte'].'';
     
            $page_texte .= "<br />" . $site->Parser ( $msg_texte_titre ) . "<br />";
    		$page_texte .= "" . $site->Parser ( $msg_texte ) . "</div>\n\n";
     
        }
    }
    //-------------- liste la newsletter afin de pouvoir la supprimé et dans faire une autre ----------------------------------------//
     
     
    // Traitement des données du formulaire
    if ( isset ( $_POST['submit'] ) )
    {
        $form_champ_titre = $_POST['titre'];
        $form_champ_texte = $_POST['texte'];
     
        if ( empty ( $_POST['titre'] ) || empty ( $_POST['texte'] ) )
        {
            $page_texte .= '<p><strong>' . $langue['erreur'] . '</strong>&nbsp;: ' . $langue['err_oblig'] . "</p>\n\n";
        }
        else
        {
                $sql = "INSERT INTO `" . $database->pref . "newsletter_article`
                        (`newsletter_article_titre`, `newsletter_article_texte`)
                        VALUES
                        ('" . $database->Protege ( $_POST['titre'] ) . "', '" . $database->Protege ( $_POST['texte'] ) . "');";
     
                $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
                $article_id = $database->LastInsertId ( $req );
     
    			//-------------------------------------------------
    			// On récupère la newsletter
    				$sql = "SELECT newsletter_article_titre,newsletter_article_texte
    							FROM `" . $database->pref . "newsletter_article";
     
    					$req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
    				$fichier_message = 'Newsletter du site CMS_DEMO'; //on définit le message
     
    					while( $row = $database->ResultArray ( $req ) ) 
    					{
    					$fichier_message .= "/r/n"."Titre :".$row["newsletter_article_titre"]."./r/n";
    					$fichier_message .= "Message :".$row["newsletter_article_texte"]."."; 
    					}
     
    				//on récupère de la table newsletter les personnes inscrites
     
    					$sql = "SELECT email
    							FROM `" . $database->pref . "newsletter";
     
    					$req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
    				//on définit la liste des inscrits
    				$liste = "informadream.11@gmail.com";
    					while ( $row = $database->ResultArray ( $req ) )
    					{
    					$liste .= ","; //on sépare les adresses par une virgule
    					$liste .= $row['email'];
    					}
     
    				$destinataire = $liste; 
     
    				$date = date("d/m/Y");
     
    				$objet = "Newsletter du $date"; //on définit l'objet qui contient la date
     
    				//on définit le reste des paramètres
    				$headers  = "MIME-Version: 1.0" . "\r\n";
    				$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
    				$headers .= 'From: informadream.11@gmail.com' . '\r\n'; //on définit l'expéditeur
    				$headers .= "Bcc:" . $liste . "" . "\r\n"; //on définit les destinataires en copie cachée pour qu'ils ne puissent pas voir les adresses des autres inscrits
    					//on envoie l'e-mail
    					if ( mail($destinataire, $objet, $fichier_message, $headers) ) 
    					{
    					$page_texte .= '<p style="text-align:center; font-weight:bold; color:#F00;">Envoi de la newsletter r&eacute;ussi.</p>';
    					}
    					else
    					{
    					$page_texte .= '<p style="text-align:center; font-weight:bold; color:#F00;">Echec de lors de l&acute;envoi de la newsletter.</p>';
    					}
    			//-------------------------------------------------
     
            }
        }
     
    // Formulaire
     
    $form_adresse = 'index.' . EXT . '?page=Newsletter_admin';
    $form_titre = 'Envoyer la Newsletter';
     
    include ( 'systeme/form_newsletter.' . EXT );
    ?>
    Le soucis à l'inscription c'est que je ne peux rentré qu'un email tout les autres sont signalé comme existant !

    Ensuite pour l'envoi la mise en forme n'est pas bonne elle est de cette forme copier coller du mail reçu)
    Newsletter du 01/09/2009‏
    De : "informadream.11@gmail.comrnBcc:informadream.11"@gmail.com
    Ce message est peut-être dangereux. En savoir plus
    Envoyé : mar. 01/09/09 10:02
    À : informadream.11@gmail.com; nathan-11@live.fr

    Newsletter du site CMS_DEMO/r/nTitre :TEST NEWSLETTER./r/nMessage :TEST NEWSLETTER
    Merci de bien vouloir me donner un coup de main parce-que là je patine !

    Cordialement

  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
    Les retours doivent être placés entre guillemets doubles.
    par exemple ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers .= 'From: informadream.11@gmail.com' . "\r\n"
    Le soucis à l'inscription c'est que je ne peux rentré qu'un email
    En lisant rapidement le code je suppose que c'est plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( $_POST['new'] == 0 && $req[0] == 0 )
    sur une inscription le retour du COUNT doit etre égale à zéro.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Déjà merci de te soucié de mon soucis.

    Alors je viens d'apporté les modifications décritent ci-dessus !

    Pour l'inscription c'est pas bon car je peux entré deux fois la même adresse mail !

    Pour la mise en forme du message ca va pas non plus toujours ce problème
    pourtant je pense pas m'être trompé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $destinataire = $email;
                $objet = "Désinscription de la newsletter" ;
     
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= 'From: informadream.11@gmail.com' . "\r\n";
    voiçi comment il arrive en boite de réception :
    Newsletter du 01/09/2009‏
    De : "informadream.11@gmail.comrnBcc:informadream.11"@gmail.com
    Ce message est peut-être dangereux. En savoir plus
    Envoyé : mar. 01/09/09 12:19
    À : informadream.11@gmail.com; nathan-11@live.fr; informadream.11@gmail.com; nathan-11@live.fr

    Newsletter du site CMS_DEMO/r/nTitre :test mise en forme./r/nMessage :Je teste la mise en forme.

  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
    Tu as visiblement corrigé le mail de desinscription mais c'est le mail de newsletter pour lequel il y a toujours le problème.
    Tu as egalement de /r/n qui se balladent.

    Pour l'inscription tu as bien mis == 0 ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oui oui

    Voilà ce que j'ai :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
                if( $_POST['new'] == 0 && $req[0] == 0 ) //si la variable $_POST['new'] est égale à 0, cela signifie que l'on veut s'inscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre inscription &agrave; la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_inscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Inscription à la newsletter" ;
     
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= 'From: informadream.11@gmail.com' . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) //on envoie l'e-mail
                    {
     
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre inscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre inscription.</p>";
                    }
                }
                elseif( $_POST['new'] == 1 && $req[0] == 0 ) //si la variable $_POST['new'] est égale à 1, cela signifie que l'on veut se désinscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre d&eacute;sinscription de la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_desinscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Désinscription de la newsletter" ;
     
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= 'From: informadream.11@gmail.com' . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) 
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre d&eacute;sinscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre d&eacute;sinscription.</p>";
                    }

  6. #6
    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
    Il n'y a pas l'envoi de la newsletter dans cette partie du code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Invité
    Invité(e)
    Par défaut
    Non l'envoi se passe dans le fichier Newsletter_admin.php dont voiçi le code :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
     
    <?php
    /***************************************************************************
     *  Copyright (C) 2007 Michel Teddy
     *  This file is part of Tagadash
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU Lesser General Public License as published
     *  by the Free Software Foundation; either version 2.1 of the License, or
     *  (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     *  Lesser General Public License for more details.
     *
     *  You should have received a copy of the GNU Lesser General Public
     *  License along with this program; if not, write to the Free Software
     *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     ***************************************************************************/
    /***************************************************************************
     *  Fichier : /pages/Newsletter_admin.php
     *  Date de création : avant le 13/08/2007
     *  Dernière modification : 29/08/2007
     ***************************************************************************/
     
    // Sécurité
    if ( !defined ( 'TAGADASH' ) )
    {
        header ( 'Location: ../' );
        die ( -1 );
    }
     
    // Droits d'administration
    if ( $droit['administration'] == 0 )
    {
        $page_msg = 2;
        include_once ( './systeme/msg.' . EXT );
    }
     
    // Titre de la page
    $page_titre = 'newsletter';
    $page_infos = 'R&eacute;daction et envoi de la newsletter';
     
    // on liste les inscrits
    $page_texte .= '<div align="center"><br /><br /><u>Liste des inscrits :</u><br />
    ';
     
    $sql = 'SELECT COUNT(*) AS count
            FROM ' . $database->pref . 'newsletter;';
     
    $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
     
    $nbr_email = $database->Result ( $req , 'count' );
     
    		$page_texte .= 'Il y a <span style="font-weight:bold; color:#F00; font-style:italic;">' . $nbr_email . '</span> inscrits &agrave; la Newsletter</div>';
     
    //-------------- liste la newsletter afin de pouvoir la supprimé et dans faire une autre ----------------------------------------//
     
    $sql = 'SELECT COUNT(*) AS count
            FROM ' . $database->pref . 'newsletter_article;';
     
    $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
     
    $nbr_msg = $database->Result ( $req , 'count' );
     
     
    if ( isset ( $_GET['msg'] ) && is_numeric ( $_GET['msg'] ) && $nbr_msg > 0  && $_GET['msg'] > 0 )
    {
        $page = 0;
     
        $sql = 'SELECT newsletter_article_id
                FROM ' . $database->pref . "newsletter_article
                WHERE newsletter_article_id <= '" . $_GET['msg'] . "';";
     
        $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
        header ( 'Location: index.' . EXT . '?page=Newsletter_admin&start=' . $page );
        die ( -1 );
    }
    // Suppression définitive
    else if ( isset ( $_GET['delete'] ) )
    {
    	$page = 0;
     
    	$sql = 'DELETE FROM ' . $database->pref . "newsletter_article
    			WHERE newsletter_article_id = '" . $_GET['id'] . "';";
     
    	$database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
    	$page_texte .='<p style="text-align:center; font-weight:bold; color:#F00;">Newsletter supprim&eacute; avec succès !</p>';
    }
     
    if ( $nbr_msg > 0 )
    {
        $sql = "SELECT newsletter_article_id,
                       newsletter_article_titre,
                       newsletter_article_texte
                FROM " . $database->pref . 'newsletter_article';
     
        //=>MySQL
        $row = $database->ResultArray ( $req );
        //=>END
     
        $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
    $page_texte .='<br /><br /><div style="text-align:center; font-weight:bold; color:#F00;">Ci-dessous voi&ccedil;i la derni&egrave;re newsletter envoy&eacute;.<br /><br />Attention supprimez-la avant d&acute;en &eacute;crire une nouvelle.<br /><br /></div>';
     
    while ( $row = $database->ResultArray ( $req ) )
        {
            $page_texte .= "<div align=\"center\" id=\"msg_" . $row['newsletter_article_id'] . "\">\n\n";
     
            if ( $row['newsletter_article_id'] > 0 )
            {
                $page_texte .= '<a href="index.' . EXT . '?page=Newsletter_admin&amp;id=' . $row['newsletter_article_id'] . '&amp;delete">Cliquez ici pour supprimer la derni&egrave;re Newsletter envoy&eacute;.</a>';
            }
    		$msg_texte_titre = 'Titre : ' .$row['newsletter_article_titre'].'';
            $msg_texte .= 'Texte : ' .$row['newsletter_article_texte'].'';
     
            $page_texte .= "<br />" . $site->Parser ( $msg_texte_titre ) . "<br />";
    		$page_texte .= "" . $site->Parser ( $msg_texte ) . "</div>\n\n";
     
        }
    }
    //-------------- liste la newsletter afin de pouvoir la supprimé et dans faire une autre ----------------------------------------//
     
     
    // Traitement des données du formulaire
    if ( isset ( $_POST['submit'] ) )
    {
        $form_champ_titre = $_POST['titre'];
        $form_champ_texte = $_POST['texte'];
     
        if ( empty ( $_POST['titre'] ) || empty ( $_POST['texte'] ) )
        {
            $page_texte .= '<p><strong>' . $langue['erreur'] . '</strong>&nbsp;: ' . $langue['err_oblig'] . "</p>\n\n";
        }
        else
        {
                $sql = "INSERT INTO `" . $database->pref . "newsletter_article`
                        (`newsletter_article_titre`, `newsletter_article_texte`)
                        VALUES
                        ('" . $database->Protege ( $_POST['titre'] ) . "', '" . $database->Protege ( $_POST['texte'] ) . "');";
     
                $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
                $article_id = $database->LastInsertId ( $req );
     
    			//-------------------------------------------------
    			// On récupère la newsletter
    				$sql = "SELECT newsletter_article_titre,newsletter_article_texte
    							FROM `" . $database->pref . "newsletter_article";
     
    					$req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
    				$fichier_message = 'Newsletter du site CMS_DEMO'; //on définit le message
     
    					while( $row = $database->ResultArray ( $req ) ) 
    					{
    					$fichier_message .= "/r/n"."Titre :".$row["newsletter_article_titre"]."./r/n";
    					$fichier_message .= "Message :".$row["newsletter_article_texte"]."."; 
    					}
     
    				//on récupère de la table newsletter les personnes inscrites
     
    					$sql = "SELECT email
    							FROM `" . $database->pref . "newsletter";
     
    					$req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
     
    				//on définit la liste des inscrits
    					$liste = "informadream.11@gmail.com";
     
    					while ( $row = $database->ResultArray ( $req ) )
    					{
    					$liste .= ","; //on sépare les adresses par une virgule
    					$liste .= $row['email'];
    					}
     
    				$destinataire = $liste; 
     
    				$date = date("d/m/Y");
     
    				$objet = "Newsletter du $date"; //on définit l'objet qui contient la date
     
    				//on définit le reste des paramètres
    				$headers  = 'MIME-Version: 1.0' . "\r\n";
    				$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    				$headers .= 'From: informadream.11@gmail.com' . "\r\n"; //on définit l'expéditeur
    				$headers .= 'Bcc:' . $liste . '' . "\r\n"; //on définit les destinataires en copie cachée pour qu'ils ne puissent pas voir les adresses des autres inscrits
    					//on envoie l'e-mail
    					if ( mail($destinataire, $objet, $fichier_message, $headers) ) 
    					{
    					$page_texte .= '<p style="text-align:center; font-weight:bold; color:#F00;">Envoi de la newsletter r&eacute;ussi.<br /><a href="index.php?page=Newsletter_admin">RETOUR</a></p>';
    					}
    					else
    					{
    					$page_texte .= '<p style="text-align:center; font-weight:bold; color:#F00;">Echec de lors de l&acute;envoi de la newsletter.<br /><a href="index.php?page=Newsletter_admin">RETOUR</a></p>';
    					}
    			//-------------------------------------------------
     
            }
        }
     
    // Formulaire
     
    $form_adresse = 'index.' . EXT . '?page=Newsletter_admin';
    $form_titre = 'Envoyer la Newsletter';
     
    include ( 'systeme/form_newsletter.' . EXT );
    ?>

  8. #8
    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
    Tu devrais controler ce que tu as dans ta table comme données BCC
    Il se pourrait bien que ce " soit dans ta table et qu'il interrompe ta chaine.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Invité
    Invité(e)
    Par défaut
    Ok c'est fait j'ai corrigé une erreur, merci. (celle du champ BBC)

    Pour le reste toujours ce problème de mise en forme du mail !

    Pour l'enregistrement des emails en base de donnée c'est ok sauf qu'il me rentre un email (ce qui est normal) mais si je retappe c'est email il l'enregistre a nouveau sans me dire que l'email existe déjà.

    En tout cas un problème est résolue !

  10. #10
    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
    Pourrait-on voit la méthode Requete() ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Invité
    Invité(e)
    Par défaut
    En fait tout se passe dans le fichier Newsletter.php :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
        if(isset($_GET['email'])) //on vérifie que la variable $_GET['email'] existe
        {
     
            if( !empty($_POST['email']) AND $_GET['email']==1 AND isset($_POST['new'])) /*on vérifie que la variable $_POST['email'] contient bien quelque chose, que la variable $_GET['email'] est égale à 1 et que la variable $_POST['new'] existe */
            {
            if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) // on vérifie qu'on a bien rentré une adresse e-mail valide
            {
    			// -- On vérifie si le Mail existe déjà dans la table.###############################################
    			$sql = 'SELECT COUNT(*)
    						FROM ' . $database->pref . 'newsletter
    						WHERE email = "'. $_POST['email'].'";';
     
    			$req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
    			//###################################################################################################
                if( $_POST['new'] == 0 && $req[0] == 0 ) //si la variable $_POST['new'] est égale à 0, cela signifie que l'on veut s'inscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre inscription &agrave; la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_inscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Inscription à la newsletter" ;
     
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= 'From: informadream.11@gmail.com' . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) //on envoie l'e-mail
                    {
     
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre inscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre inscription.</p>";
                    }
                }
                elseif( $_POST['new'] == 1 && $req[0] == 0 ) //si la variable $_POST['new'] est égale à 1, cela signifie que l'on veut se désinscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre d&eacute;sinscription de la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_desinscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Désinscription de la newsletter" ;
     
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= 'From: informadream.11@gmail.com' . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) 
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre d&eacute;sinscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre d&eacute;sinscription.</p>";
                    }
                }
                else
                {
                $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il existe d&eacute;j&agrave; un membre avec cette adresse email.<br /><a href=\"index.php?page=Newsletter\">RETOUR</a></p>";
                }
            }
            else
            {
            $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Vous n&acute;avez pas entr&eacute; une adresse e-mail valide !<br /><a href=\"index.php?page=Newsletter\">RETOUR</a></p></p>";
            }
            }
            else
            {
    		$page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur !<br /><a href=\"index.php?page=Newsletter\">RETOUR</a></p></p>";
            }
        }
        else // si les champs n'ont pas été remplis
        {
    		$page_texte .= "<form method=\"post\" action=\"index.php?page=Newsletter&amp;email=1\">";
    		$page_texte .= "<fieldset>\n<legend>Ici vous pouvez vous inscrire ou vous d&eacute;sinscrire de la newsletter du site VOTRE SITE.</legend>\n\n
    		<p align=\"center\"><u>Entrez votre adresse e-mail ci-dessous :</u><br />
    		<input type=\"text\" name=\"email\" size=\"25\" /><br />
    		<u>Faite votre choix en cochant <b><i>Inscription</i></b> ou <b><i>D&eacute;sincription</i></b> ci-dessous :</u><br />
    		S&acute;inscrire &agrave; la Newsletter <input type=\"radio\" name=\"new\" value=\"0\" /><br />
    		Se d&eacute;sinscrire de la Newsletter <input type=\"radio\" name=\"new\" value=\"1\" /><br /><br />
    		<input type=\"submit\" value=\"Envoyer\" name=\"submit\" /> <input type=\"reset\" name=\"reset\" value=\"Effacer\" /></p>
    		</form>";
        }
    ?>
    C'est cette partie du code :
    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
    32
     
    if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) // on vérifie qu'on a bien rentré une adresse e-mail valide
            {
    			// -- On vérifie si le Mail existe déjà dans la table.###############################################
    			$sql = 'SELECT COUNT(*)
    						FROM ' . $database->pref . 'newsletter
    						WHERE email = "'. $_POST['email'].'";';
     
    			$req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
    			//###################################################################################################
                if( $_POST['new'] == 0 && $req[0] == 0 ) //si la variable $_POST['new'] est égale à 0, cela signifie que l'on veut s'inscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre inscription &agrave; la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_inscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Inscription à la newsletter" ;
     
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= 'From: informadream.11@gmail.com' . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) //on envoie l'e-mail
                    {
     
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre inscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre inscription.</p>";
                    }

  12. #12
    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
    Non il manque tout ce qui concerne la classe database.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Non il manque tout ce qui concerne la classe database.
    ??????

    En fait j'ai un fichier dans un dossier /système/ dans lequel j'ai un autre dossier /lib_php5/ mais aussi /lib_php4/ donc voiçi le code de la lib php5 :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
     
    <?php
    /***************************************************************************
     *  Copyright (C) 2007 Michel Teddy
     *  This file is part of Tagadash
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU Lesser General Public License as published
     *  by the Free Software Foundation; either version 2.1 of the License, or
     *  (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     *  Lesser General Public License for more details.
     *
     *  You should have received a copy of the GNU Lesser General Public
     *  License along with this program; if not, write to the Free Software
     *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     ***************************************************************************/
    /***************************************************************************
     *  Fichier : /systeme/lib_php5/db_mysql.php
     *  Date de création : 12/08/2007
     *  Dernière modification : 06/10/2007
     ***************************************************************************/
     
    // Sécurité
    if ( !defined ( 'TAGADASH' ) )
    {
        header ( 'Location: ../' );
        die ( -1 );
    }
     
     
    // Inclusion du fichier de la classe Database
    if ( is_file ( './systeme/lib_php5/database.' . EXT ) )
    {
        include_once ( './systeme/lib_php5/database.' . EXT );
    }
    else
    {
        die ( 'Le fichier systeme/lib_php5/database.' . EXT . ' est introuvable.' );
    }
     
     
    /*
     * Méthodes publiques de la classe Database :
     *
     *  __construct ( void )
     *  void SetParametres ( string $Hote , string $User , string $Pass , string $Base = '' , string $Pref = '' )
     *
     * Méthodes publiques de la classe fille :
     *
     *  __construct ( void )
     *  __destruct ()
     *
     *  bool Connect ( void )
     *  bool Disconnect ( void )
     *  void Erreur ( unsigned int $ligne , string $fichier , string $requete )
     *  ressource Requete ( string $requete )
     *  unsigned int LastInsertId ( ressource $requete )
     *  unsigned int NbrRowsSelected ( ressource $requete )
     *  unsigned int NbrRowsAffected ( ressource $requete )
     *  array Result ( ressource $requete , string $champ , int $ligne = 0 )
     *  array ResultArray ( ressource $requete )
     *  string Protege ( string $texte , bool $stripslashes = true )
     *  string Version ( void )
     *  array RequetesListe ( void )
     *
     **/
     
     
    class MySQL extends Database
    {
        private $req_infos = array ();
     
     
        /*****************************************
         * MySQL->__construct ( void )
         *
         * Constructeur de la classe.
         * Modifie les paramètres et se connecte à la base de données
         ****************************************/
     
        public function __construct ()
        {
            parent::__construct ();
     
            $this->Connect ();
        }
     
     
        /*****************************************
         * MySQL->__destruct ()
         *
         * Déstructeur de la classe.
         * Se déconnecte du serveur
         ****************************************/
     
        public function __destruct ()
        {
            $this->Disconnect ();
        }
     
     
        /*****************************************
         * bool MySQL->Connect ( void )
         *
         * Connexion à la base de données
         *
         *  Retour : booléen indiquant le succès de l'opération
         ****************************************/
     
        public function Connect ()
        {
            $id = mysql_connect ( $this->hote , $this->user , $this->pass );
     
            if ( $id === false )
            {
                return false;
            }
     
            $this->link = $id;
     
            if ( !mysql_select_db ( $this->base , $this->link ) )
            {
                if ( !mysql_query ( "CREATE DATABASE `" . $this->base . "`;" , $this->link ) )
                {
                    return false;
                }
            }
     
            $this->connected = true;
     
            return true;
        }
     
     
        /*****************************************
         * bool MySQL->Disconnect ( void )
         *
         * Déconnexion de la base de données
         *
         *  Retour : booléen indiquant le succès de l'opération
         ****************************************/
     
        public function Disconnect ()
        {
            if ( $this->connected )
            {
                $this->connected = false;
     
                $close = mysql_close ( $this->link );
     
                $this->link = 0;
     
                return $close;
            }
     
            return false;
        }
     
     
        /*****************************************
         * void MySQL->Erreur ( unsigned int $ligne , string $fichier , string $requete )
         *
         * Affichage d'une erreur
         *
         *  $ligne : ligne du fichier où s'effectue la requête (obtenue par __LINE__)
         *  $fichier : fichier où s'effectue la requête (obtenue par __FILE__)
         *  $requete : requête SQL exécutée
         ****************************************/
     
        public function Erreur ( $ligne , $fichier , $requete )
        {
            global $configuration;
            global $site;
            global $langue;
     
            $page_titre = 'Erreur MySQL';
            $page_simple = 1;
            $page_CSS = '';
     
     
            // On enlève les espaces en début de ligne
            $requete = preg_replace ( "#\n(\s{0,})#" , "\n" , $requete );
     
            // Pour la coloration de la requête SQL
            if ( function_exists ( 'geshi_highlight' ) )
            {
                $requete = geshi_highlight ( $requete , 'mysql' , null , true );
            }
     
            // Suppression des retours à la ligne
            #$requete = preg_replace ( "#\n#" , " " , $requete );
     
     
            // Transformation du message d'erreur
     
            $erreur = mysql_error ( $this->link );
     
            $erreur = preg_replace ( "#^Duplicate entry '(.+)' for key 1$#is" , "L'entrée <q>$1</q> existe déjà" , $erreur );
     
            $erreur = preg_replace ( "#^Access denied for user '(.+)'@'(.+)' \(using password: NO\)$#is" , "Accès refusé pour l'utilisateur $1@$2 (pas de mot de passe)" , $erreur );
     
            $erreur = preg_replace ( "#^You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(.+)' at line (.+)$#is" , "La syntaxe de la requête est incorrecte près de <q>$1</q>, à la ligne $2" , $erreur );
            #$erreur = preg_replace ( "#^You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(.+)' at line (.+)$#is" , "La syntaxe de la requête est incorrecte près de <q>$1</q>" , $erreur );
     
            //1048
            $erreur = preg_replace ( "#^Column '(.+)' cannot be null$#is" , "La colonne <q>$1</q> ne peut pas être nulle" , $erreur );
     
            //1052
            $erreur = preg_replace ( "#^Column '(.+)' in where clause is ambiguous$#is" , "La colonne <q>$1</q> dans la clause WHERE est ambigüe" , $erreur );
            $erreur = preg_replace ( "#^Column '(.+)' in field list is ambiguous$#is" , "La colonne <q>$1</q> dans la liste des champs est ambigüe" , $erreur );
     
            //1054
            $erreur = preg_replace ( "#^Unknown column '(.+)' in 'field list'$#is" , "La colonne <q>$1</q> est inconnue dans la liste des champs" , $erreur );
            $erreur = preg_replace ( "#^Unknown column '(.+)' in 'on clause'$#is" , "La colonne <q>$1</q> est inconnue dans la clause ON" , $erreur );
            $erreur = preg_replace ( "#^Unknown column '(.+)' in 'order clause'$#is" , "La colonne <q>$1</q> est inconnue dans la clause ORDER" , $erreur );
            $erreur = preg_replace ( "#^Unknown column '(.+)' in 'where clause'$#is" , "La colonne <q>$1</q> est inconnue dans la clause WHERE" , $erreur );
     
            //1062
            $erreur = preg_replace ( "#^Duplicate entry '(.+)' for key (.+)$#is" , "L'entrée <q>$1</q> existe déjà pour la clé unique <q>$2</q>" , $erreur );
     
            //1065
            $erreur = preg_replace ( "#^Query was empty$#i" , "La requête est vide" , $erreur );
     
            //1066
            $erreur = preg_replace ( "#^Not unique table/alias: '(.+)'$#is" , "Vous utilisez plusieurs fois la table <q>$1</q>" , $erreur );
     
            //1103
            $erreur = preg_replace ( "#^Incorrect table name '(.{0,})'$#is" , "Le nom de la table est incorrect : <q>$1</q>" , $erreur );
     
            //1140
            $erreur = preg_replace ( "#^Mixing of GROUP columns \(MIN\(\),MAX\(\),COUNT\(\),...\) with no GROUP columns is illegal if there is no GROUP BY clause$#is" , "Mélanger des colonnes groupées (MIN(), MAX(), COUNT()...) sans colonne GROUP n'est pas autorisé s'il y n'y a pas de clause GROUP BY" , $erreur );
     
            //1146
            $erreur = preg_replace ( "#^Table '(.+)' doesn't exist$#is" , "La table <q>$1</q> n'existe pas" , $erreur );
     
            //1227
            $erreur = preg_replace ( "#^Access denied; you need the SHOW DATABASES privilege for this operation$#is" , "Accès refusé, vous devez avoir le privilège pour voir les bases de données" , $erreur );
     
            //1242
            $erreur = preg_replace ( "#^Subquery returns more than 1 row$#is" , "La sous-requête retourne plus d'une ligne" , $erreur );
     
            //2006
            $erreur = preg_replace ( "#^MySQL server has gone away$#is" , "MySQL server has gone away" , $erreur );
     
     
            $page_texte = '<p><strong>Erreur&nbsp;:</strong> ' . $erreur . " (Erreur " . mysql_errno ( $this->link ) . ")</p>\n";
            $page_texte .= '<p><strong>Date et heure&nbsp;:</strong> ' . date ( $configuration['format_date'] ) . ' à ' . date ( $configuration['format_heure'] ) . "</p>\n";
            $page_texte .= '<p><strong>Fichier&nbsp;:</strong> ' . $fichier . " (Ligne " . $ligne . ")</p>\n";
            $page_texte .= "<p><strong>Requête SQL&nbsp;:</strong></p>\n<div id=\"query\"><code>" . $requete . "</code></div>\n\n";
     
            $page_texte .= "<p>Retour à la <a href=\"index." . EXT . "\" title=\"Retourner sur la page d'accueil\">page d'accueil</a>.</p>";
     
            include ( 'systeme/page.' . EXT );
     
            die ( -1 );
        }
     
     
        /*****************************************
         * ressource MySQL->Requete ( string $requete )
         *
         * Exécute une requête SQL
         *
         *  $requete : requête SQL à exécuter
         *
         *  Retour : résultat de la requête ou false en cas d'échec
         ****************************************/
     
        public function Requete ( $requete )
        {
            if ( !$this->connected )
            {
                return false;
            }
     
            // Temps d'exécution
            $tps_requetes = microtime ( true );
     
            $req = mysql_query ( $requete , $this->link );
     
            $tps_requetes = microtime ( true ) - $tps_requetes;
     
            $this->req_infos[] = array ( 'txt' => $requete , 'tps' => $tps_requetes );
     
            $this->tps_requetes += $tps_requetes;
            $this->nbr_requetes++;
     
            return $req;
        }
     
     
        public function Requete2 ( $requete , $ligne = 0 , $fichier = '' )
        {
            if ( !$this->connected )
            {
                return false;
            }
     
            // Temps d'exécution
            $tps_requetes = microtime ( true );
     
            $req = mysql_query ( $requete , $this->link );
     
            $tps_requetes = microtime ( true ) - $tps_requetes;
     
            $this->req_infos[] = array ( 'txt' => $requete , 'tps' => $tps_requetes );
     
            $this->tps_requetes += $tps_requetes;
            $this->nbr_requetes++;
     
            if ( $req === false )
            {
                $this->Erreur ( __LINE__ , __FILE__ , $sql );
            }
     
            return $req;
        }
     
     
        /*****************************************
         * unsigned int MySQL->LastInsertId ( ressource $requete )
         *
         * Dernier identifiant entré dans la base
         *
         *  $requete : requête concernée
         *
         *  Retour : numéro du dernier id entré dans la base
         ****************************************/
     
        public function LastInsertId ( $requete )
        {
            return mysql_insert_id ( $this->link );
        }
     
     
        /*****************************************
         * unsigned int MySQL->NbrRowsSelected ( ressource $requete )
         *
         * Compte le nombre de lignes sélectionnées par une requête Select.
         *
         *  $requete : requête à analyser
         *
         *  Retour : nombre de ligne sélectionnées
         ****************************************/
     
        public function NbrRowsSelected ( $requete )
        {
            return mysql_num_rows ( $requete );
        }
     
     
        /*****************************************
         * unsigned int MySQL->NbrRowsAffected ( ressource $requete )
         *
         * Compte le nombre de lignes affectées par une requête de type Update ou Delete.
         *
         *  $requete : requête à analyser
         *
         *  Retour : nombre de ligne affectées par une requêtes
         ****************************************/
     
        public function NbrRowsAffected ( $requete )
        {
            return mysql_affected_rows ( $this->link );
        }
     
        /*****************************************
         * array MySQL->Result ( ressource $requete , string $champ , unsigned int $ligne = 0 )
         *
         * Retourne le résultat d'une requête Select
         *
         *  $requete : requête à analyser
         *  $champ : champ à sélectionner
         *  $ligne : ligne à sélectionner
         *
         *  Retour : nombre de ligne affectées par une requêtes
         ****************************************/
     
        public function Result ( $requete , $champ , $ligne = 0 )
        {
            for ( $i = 0 ; $row = $this->ResultArray ( $requete ) ; $i++ )
            {
                if ( $ligne == $i ) return $row[$champ];
            }
        }
     
     
        /*****************************************
         * array MySQL->ResultArray ( ressource $requete )
         *
         * Retourne le résultat d'une requête Select sous forme d'un tableau
         *  pour chaque ligne de résultat.
         *
         *  $requete : requête à analyser
         *
         *  Retour : tableau contenant une ligne de la requête
         ****************************************/
     
        public function ResultArray ( $requete )
        {
            return mysql_fetch_assoc ( $requete );
        }
     
     
        /*****************************************
         * array MySQL->ResultArray2 ( ressource $requete )
         *
         * Retourne le résultat d'une requête Select sous forme d'un tableau
         *  à deux dimensions (lignes et colonnes).
         *
         *  $requete : requête à analyser
         *
         *  Retour : tableau contenant les résultats de la requête
         ****************************************/
     
        public function ResultArray2 ( $requete )
        {
            $result = array ();
     
            while ( $row = mysql_fetch_assoc ( $requete ) )
            {
                $result[] = $row;
            }
     
            return $result;
        }
     
     
        /*****************************************
         * string MySQL->Protege ( string $texte , bool $stripslashes = true )
         *
         * Protège du texte contre les injections SQL
         *
         *  $texte : texte à transformer
         *  $stripslashes : indique si on doit supprimer les slashes
         *
         *  Retour : texte transformé
         ****************************************/
     
        public function Protege ( $texte , $stripslashes = true )
        {
            if ( $stripslashes && get_magic_quotes_gpc () == 1 )
            {
                $texte = stripslashes ( $texte );
            }
     
            return mysql_real_escape_string ( $texte );
        }
     
     
        /*****************************************
         * string MySQL->Version ( void )
         *
         * Donne la version de MySQL
         *
         *  Retour : version de MySQL
         ****************************************/
     
        public function Version ()
        {
            return mysql_get_server_info ();
        }
     
     
        /*****************************************
         * array MySQL->RequetesListe ( void )
         *
         * Donne la liste des requêtes exécutées et leur temps d'exécution
         *
         *  Retour : tableau
         ****************************************/
     
        public function RequeteListe ()
        {
            return $this->req_infos;
        }
    }
     
    ?>
    Mais je ne suis pas sur que ce soit ça

    Ah oui j'ai aussi ce fichier database.php
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
     
    <?php
    /***************************************************************************
     *  Copyright (C) 2007 Michel Teddy
     *  This file is part of Tagadash
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU Lesser General Public License as published
     *  by the Free Software Foundation; either version 2.1 of the License, or
     *  (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
     *  Lesser General Public License for more details.
     *
     *  You should have received a copy of the GNU Lesser General Public
     *  License along with this program; if not, write to the Free Software
     *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     ***************************************************************************/
    /***************************************************************************
     *  Fichier : /systeme/lib_php5/database.php
     *  Date de création : 04/09/2007
     *  Dernière modification : 14/09/2007
     ***************************************************************************/
     
    // Sécurité
    if ( !defined ( 'TAGADASH' ) )
    {
        header ( 'Location: ../' );
        die ( -1 );
    }
     
     
    abstract class Database
    {
        /*****************************************
         * Paramètres du serveur
         ****************************************/
        protected $hote = 'localhost';
        protected $user = 'root';
        protected $pass = '';
     
        /*****************************************
         * Paramètres de la base de données
         ****************************************/
        public $base = '';
        public $pref = '';
     
     
        /*****************************************
         * État de la connexion
         ****************************************/
        public $connected = false;
        protected $link = 0;
     
        /*****************************************
         * Nombre de requêtes exécutées et temps
         ****************************************/
        public $nbr_requetes = 0;
        public $tps_requetes = 0;
     
     
        /*****************************************
         * Database->__construct ( void )
         *
         * Constructeur de la classe.
         * Modifie les données de la classe
         ****************************************/
     
        public function __construct ()
        {
            if ( is_file ( 'systeme/configuration.' . EXT ) )
            {
                // Ce fichier contient les informations sur les base de données
                include_once ( 'systeme/configuration.' . EXT );
     
                // On modifie les données de la classe
                if ( isset ( $bdd_hote ) ) $this->hote = $bdd_hote;
                if ( isset ( $bdd_user ) ) $this->user = $bdd_user;
                if ( isset ( $bdd_pass ) ) $this->pass = $bdd_pass;
                if ( isset ( $bdd_port ) ) $this->port = $bdd_port;
                if ( isset ( $bdd_base ) ) $this->base = $bdd_base;
                if ( isset ( $bdd_pref ) ) $this->pref = $bdd_pref;
            }
            else if ( is_file ( 'systeme/configuration-tmp.' . EXT ) )
            {
                // Ce fichier contient les informations sur les base de données
                include_once ( 'systeme/configuration-tmp.' . EXT );
     
                // On modifie les données de la classe
                if ( isset ( $bdd_hote ) ) $this->hote = $bdd_hote;
                if ( isset ( $bdd_user ) ) $this->user = $bdd_user;
                if ( isset ( $bdd_pass ) ) $this->pass = $bdd_pass;
                if ( isset ( $bdd_port ) ) $this->port = $bdd_port;
                if ( isset ( $bdd_base ) ) $this->base = $bdd_base;
                if ( isset ( $bdd_pref ) ) $this->pref = $bdd_pref;
            }
            else
            {
                trigger_error ( 'Le fichier de configuration de la base de données est introuvable.' , E_USER_NOTICE );
            }
        }
     
     
        /*****************************************
         * void Database->SetParametres ( string $Hote , string $User , string $Pass , string $Base = '' , string $Pref = '' )
         *
         * Modifie les données de la classe
         *
         *  $Hote : serveur
         *  $User : utilisateur
         *  $Pass : mot de passe
         *  $Base : base de données
         *  $Pref : préfixes des tables
         ****************************************/
     
        public function SetParametres ( $Hote , $User , $Pass , $Base = '' , $Pref = '' )
        {
            $this->hote = $Hote;
            $this->user = $User;
            $this->pass = $Pass;
            if ( !empty ( $Base ) ) $this->base = $Base;
            if ( !empty ( $Pref ) ) $this->pref = $Pref;
        }
     
     
        /*****************************************
         * Méthodes à définir dans les classes dérivées
         ****************************************/
     
        abstract public function Connect ();
        abstract public function Disconnect ();
        abstract public function Erreur ( $ligne , $fichier , $requete );
        abstract public function Requete ( $requete );
        abstract public function LastInsertId ( $requete );
        abstract public function NbrRowsSelected ( $requete );
        abstract public function NbrRowsAffected ( $requete );
        abstract public function Result ( $requete , $champ , $ligne = 0 );
        abstract public function ResultArray ( $requete );
        abstract public function Protege ( $texte , $stripslashes = true );
        abstract public function Version ();
    }
     
    ?>
    Dernière modification par Invité ; 01/09/2009 à 15h35.

  14. #14
    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
    Ca donnerait ca plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
    $nbr_email = $database->Result ( $req , 'count' );
    if( $_POST['new'] == 0 && $nbr_email == 0 ) //si la variable $_POST['new'] est égale à 0, cela signifie que l'on veut s'inscrire
                {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Invité
    Invité(e)
    Par défaut
    Ok
    j'ai fait la modif voir la source ci-dessous :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) // on vérifie qu'on a bien rentré une adresse e-mail valide
            {
    			// -- On vérifie si le Mail existe déjà dans la table.###############################################
    			$sql = 'SELECT COUNT(*)
    						FROM ' . $database->pref . 'newsletter
    						WHERE email = "'. $_POST['email'].'";';
     
    			$req = $database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
    			$nbr_email = $database->Result ( $req , 'count' );
    			//###################################################################################################
                if( $_POST['new'] == 0 && $nbr_email == 0 ) //si la variable $_POST['new'] est égale à 0, cela signifie que l'on veut s'inscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre inscription &agrave; la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_inscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Inscription à la newsletter" ;
     
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= 'From: informadream.11@gmail.com' . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) //on envoie l'e-mail
                    {
     
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre inscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre inscription.</p>";
                    }
                }
                elseif( $_POST['new'] == 1 && $nbr_email == 0 ) //si la variable $_POST['new'] est égale à 1, cela signifie que l'on veut se désinscrire
                {
     
                //on définit les paramètres de l'e-mail
                $email = $_POST['email'];
                $message = 'Pour valider votre d&eacute;sinscription de la newsletter, <a href="http://www.informadream.fr/cms_demo/index.php?page=Newsletter_desinscription&amp;tru=1&amp;email='.$email.'">cliquez ici</a>.';
     
                $destinataire = $email;
                $objet = "Désinscription de la newsletter" ;
     
                $headers  = 'MIME-Version: 1.0' . "\r\n";
                $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                $headers .= 'From: informadream.11@gmail.com' . "\r\n";
                    if ( mail($destinataire, $objet, $message, $headers) ) 
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Pour valider votre d&eacute;sinscription, veuillez cliquer sur le lien dans l&acute;e-mail que nous venons de vous envoyer.</p>";
                    }
                    else
                    {
                    $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il y a eu une erreur lors de l&acute;envoi du mail pour votre d&eacute;sinscription.</p>";
                    }
                }
                else
                {
                $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Il existe d&eacute;j&agrave; un membre avec cette adresse email.<br /><a href=\"index.php?page=Newsletter\">RETOUR</a></p>";
                }
            }
            else
            {
            $page_texte .="<p style=\"text-align:center; font-weight:bold; color:#F00;\">Vous n&acute;avez pas entr&eacute; une adresse e-mail valide !<br /><a href=\"index.php?page=Newsletter\">RETOUR</a></p></p>";
            }
            }
    Mais c'est toujours pareil l'email est quand même rentré en BDD même si il existe déjà
    Un véritable casse tête chinois

  16. #16
    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
    Il manque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT COUNT(*) as count
    dans ta requete.
    Et tu as mis ==0 pour le if et pour le else.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il manque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT COUNT(*) as count
    dans ta requete.
    Et tu as mis ==0 pour le if et pour le else.
    Ok j'ai rajouté as count dans la requête et j'ai mis ==0 pour le else !

    Je teste et je reviens dire ce qu'il en ait

    Test ok !
    C'est bon aussi pour la désinscription pour le else c'est !=0

    Manque maintenant la mise en forme du mail envoyé .

    Voilà ce que j'ai
    Newsletter du site CMS_DEMO/r/nTitre :Test ./r/nMessage :Mise en forme du message.
    Dernière modification par Invité ; 01/09/2009 à 18h02.

  18. #18
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Donc voilà mon soucis est résolu

    Un grand merci a sabotage pour sa gentillesse et l'aide précieuse qu'il m'a apporter.

    Je met résolu sur ce sujet.

    Cordialement

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/10/2017, 12h39
  2. Mise en forme message d'erreur
    Par Lenou dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2009, 10h01
  3. Mise en forme des messages
    Par nico le noob dans le forum Langage
    Réponses: 2
    Dernier message: 15/08/2009, 13h40
  4. Réponses: 2
    Dernier message: 18/12/2008, 13h33
  5. JOptionPane : Mise en forme des messages
    Par JohnNC dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 27/02/2007, 16h18

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