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

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

Langage PHP Discussion :

Envoyer un message aux acteurs d'un forum


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Envoyer un message aux acteurs d'un forum
    Bonjour à tous,

    J'ai trouvé un code pour créer un forum sur un site internet et tout marche bien.
    Cependant quand un acteur ajoute une nouvelle discussion, je souhaite que toutes les personnes reçoivent un email comme quoi une nouvelle discussion vient d'être crée.
    J'ai une base de données en ligne phpmysql avec une table "membre". Cette table comporte l'id, le login, le mot de passe et l'adresse email.
    Je souhaite savoir comment envoyer un email à toutes les personnes de la base lorsqu'une personne crée une nouvelle discussion?
    Donc si quelqu'un pouvait m'aider, merci et bonne journée.

    Ceci est le code d'insertion du sujet:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <html>
    <head>
    	<title>Insertion d'un nouveau sujet</title>
    </head>
    <body>
    	<!-- on fait pointer le formulaire vers la page traitant les données -->
    	<form action="insert_sujet2.php" method="post">
    		<br>
    		<br>
    		<table align="center">
    			<tr><td>
    			<span class="gras">Auteur :</span>
    			</td><td>
    			<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
    			</td></tr><tr><td>
    			<span class="gras">Titre :</span>
    			</td><td>
    			<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>">
    			</td></tr><tr><td>
    			<span class="gras">Message :</span>
    			</td><td>
    			<textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea>
    			</td></tr><tr><td><td align="right">
    			<input type="submit" name="go" value="Poster">
    			</td></tr></table>
    	</form>

    et ça d'envois d'email:
    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
    <?php
    // Envoi du mail client
    //-----------------------
    //Préparation de l'entête du mail:
    $mail_entete  = "MIME-Version: 1.0\r\n";
    $mail_entete .= "From: xxxx@xxxxx\r\n";
    $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
    $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
    $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
    $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
    // préparation du corps du mail
    $texte  ="\r\n";
    $texte .="Bonjour ". $civilite." ".$nom. " ".$prenom. " \r\n";
    $texte .="\r\n";
    $texte .="Nous avons bien enregistré votre demande d'inscription pour la formation ".$comments. " .\r\n";
    $texte .="ATTENTION votre participation à la formation sera officialisée par une confirmation de participation qui vous sera adressée dix jours avant le démarrage de l'action.\r\n";
    $texte .="Dans le cas contraire vous recevrez néanmoins un mail d'information.\r\n";
    $texte .="\r\n";
    $texte .="vous remercie pour votre confiance et votre visite sur notre site.\r\n";
    $texte .="A très bientôt.\r\n";
    $texte .="\r\n";
    $texte .="Vous pouvez nous contacter directement : 0x x xxxxx\r\n";
    $texte .="\r\n";
    $texte .="Sinon par mail, cliquez ici : xxxx@xxxx.com \r\n";
    $mail_ok = mail("$email","Demande formation",$texte,$mail_entete);
    if ($ok_mail) {
     "mail parti";
    } else {
     "mail,  pas parti";
    }
    if ($mail_ok) {
     "mail client parti";
    } else {
     "mail client  pas parti";
    }

  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
    Il suffit d'une requête listant tes membres et d'une boucle qui envoit l'email, quelle est ta difficultée ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Envoyer un message aux acteurs d'un forum
    En fait c'est la requête, il faut que je la place où?
    Après le bouton d'envois de la discussion?

  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
    Tres logiquement tu dois avoir ton formulaire dont l'action est le script d'insertion de la discussion. Donc très logiquement l'envoi du mail se fait juste apres l'insertion.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Envoyer un message aux acteurs d'un forum
    Ok merci et la requête c'est du genre: sql= select * membre by email ?

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT email, autrecolonnesituveux FROM ta_table
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Envoyer un message aux acteurs d'un forum
    Ok et après comment je fais pour faire la boucle? et pour introduire ma requête dans ma boucle?

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut [sabotage] créer une boucle en php
    BOnjour à tous,

    Je souhaite crée une boucle en php avec une requête qui va dans ma base chercher toutes les adresses email de chaque acteur.
    sI quelqu'un pouvait m'aider? MERCI et bonne journée

    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
     
     
    			<html>
    			<head>
    			<title>Insertion d'un nouveau sujet</title>
    			</head>
     
    			<body>
     
    			<!-- on fait pointer le formulaire vers la page traitant les données -->
    			<form action="insert_sujet2.php" method="post">
     
    			<br>
    			<br>
     
    			<table align="center">
     
    			<tr><td>
    			<span class="gras">Auteur :</span>
    			</td><td>
    			<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
    			</td></tr><tr><td>
    			<span class="gras">Titre :</span>
    			</td><td>
    			<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>">
    			</td></tr><tr><td>
    			<span class="gras">Message :</span>
    			</td><td>
    			<textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea>
    			</td></tr><tr><td><td align="right">
    			<input type="submit" name="go" value="Poster">
    			</td></tr></table>
    			</form>
     
     
     
    			<?php
    			// on affiche les erreurs éventuelles
    			if (isset($erreur)) echo '<br /><br />',$erreur;
    			?>
     
     
    			<?php
    // Envoi du mail client
    //-----------------------
     
    $req1=mysql_query("SELECT email FROM memb")
     
     
     
     
    //Préparation de l'entête du mail:
    $mail_entete  = "MIME-Version: 1.0\r\n";
    $mail_entete .= "From:\r\n";
    $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
    $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
    $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
    $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
     
    // préparation du corps du mail
     
     
     
     
    $texte  ="\r\n";
    $texte .="Bonjour ". $civilite." ".$nom. " ".$prenom. " \r\n";
    $texte .="\r\n";
    $texte .="Une nouvelle discussion vient d'être crée.\r\n";
    $texte .="Si vous désirez y accéder, voici le lien\r\n";
    $texte .="vous remercie pour votre confiance et votre visite sur notre site.\r\n";
    $texte .="A très bientôt.\r\n";
    $texte .="Vous pouvez nous contacter directement :\r\n";
    $texte .="Sinon par mail, cliquez ici \r\n";
     
     
    $mail_ok = mail("$email","discussion sur le forum FLI",$texte,$mail_entete);
     
    if ($ok_mail) {
     "mail parti";
    } else {
     "mail,  pas parti";
    }
     
    if ($mail_ok) {
     "mail client parti";
    } else {
     "mail client  pas parti";
    }

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Tu ne sais pas exploiter le résultat d'une requête ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $req1=mysql_query("SELECT email FROM memb");
    while($result = mysql_fetch_assoc($req1)
    {
    echo $result['email '];
    }
    Cela dit tu ne pourras pas envoyer directement des dizaines et des dizaines de mail dans cette boucle avec la fonction mail de php car cette fonction est gourmande en ressources. Pour envoyer de nombreux mail avec cette fonction il faudra programmer une tâche (cron) répétitive qui enverra les mail par paquets et un compteur (en bdd ou fichier texte) pour mémoriser où en est le traitement. Sinon utiliser des services tiers d'envois de mail.

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut créer une boucle en php
    Merci et Oui c'est ça je ne sais pas comment faire le lien de la requête avec la base de données.
    Et dans ma base de données, j'ai une 15 d'acteurs ça devrait le faire comme ça,non?

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut créer une boucle en php
    J'ai fais ceci et cela ne marche pas..... il me marque parse error

    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
    <?("inc/front.inc.php"); ?>
    <?
    $page_accueil = false;
    $css_page = "marron";
    $type_page = "accueil";
    $ref_titre_page = "";
    $ref_description_page = "";
    $ref_motscles_page = "";
    ?>
    <?php include("inc/header.inc.php"); ?>
    <?php include("inc/site-haut.inc.php"); ?>
     
              <div id="divConteneurContenu">
    			<h1 id="h1TitrePage">For</h1>
     
    			<br>
     
     
    			<!--<div id="divConteneurTraitVertical">-->
     
     
    			<?php
     
     
    			// on teste si le formulaire a été soumis
    			if (isset ($_POST['go']) && $_POST['go']=='Poster') {
    				// on teste la déclaration de nos variables
    				if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['message']))
    				{
    					$erreur = 'Les variables nécessaires au script ne sont pas définies.';
    				}
     
    				else
     
    					{
    					// on teste si les variables ne sont pas vides
    					if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['message']))
    					{
    						$erreur = 'Au moins un des champs est vide.';
    					}
     
    					// si tout est bon, on peut commencer l'insertion dans la base
     
    					else
     
    						{
    						// on se connecte à notre base
     
     
    						// on calcule la date actuelle
    						$date = date("Y-m-d H:i:s");
     
    						// préparation de la requête d'insertion (pour la table forum_sujets)
    						$sql = 'INSERT INTO forum_sujets VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.$date.'")';
     
    						// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
    						mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    						// on recupère l'id qui vient de s'insérer dans la table forum_sujets
    						$id_sujet = mysql_insert_id();
     
    						// lancement de la requête d'insertion (pour la table forum_reponses
    						$sql = 'INSERT INTO forum_reponses VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['message']).'", "'.$date.'", "'.$id_sujet.'")';
     
    						// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
    						mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    						// on ferme la connexion à la base de données
    						mysql_close();
     
    						// on redirige vers la page d'accueil
    						//header('location: forum_test.php');
     
     
    			?>
     
     
    						<SCRIPT LANGUAGE="JavaScript">
    						document.location.href="membre.php" /* vous pouvez aussi mettre http://www.monsite.com */
    						</SCRIPT>
     
    			<?php
     
    						// on termine le script courant
    						exit;
    					}
    				}
    			}
    			?>
     
     
     
    			<html>
    			<head>
    			<title>Insertion d'un nouveau sujet</title>
    			</head>
     
    			<body>
     
    			<!-- on fait pointer le formulaire vers la page traitant les données -->
    			<form action="insert_sujet2.php" method="post">
     
    			<br>
    			<br>
     
    			<table align="center">
     
    			<tr><td>
    			<span class="gras">Auteur :</span>
    			</td><td>
    			<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
    			</td></tr><tr><td>
    			<span class="gras">Titre :</span>
    			</td><td>
    			<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>">
    			</td></tr><tr><td>
    			<span class="gras">Message :</span>
    			</td><td>
    			<textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea>
    			</td></tr><tr><td><td align="right">
    			<input type="submit" name="go" value="Poster">
    			</td></tr></table>
    			</form>
     
     
     
    			<?php
    			// on affiche les erreurs éventuelles
    			if (isset($erreur)) echo '<br /><br />',$erreur;
    			?>
     
     
    <?php
     
    		$req1=mysql_query("SELECT email FROM memb");
     
    		while($result = mysql_fetch_assoc($req1)
    		{
    		echo $result['email'];
    		}
     
    ?>
     
     
    <?php
     
    // Envoi du mail client
    //-----------------------
     
    //Préparation de l'entête du mail:
    $mail_entete  = "MIME-Version: 1.0\r\n";
    $mail_entete .= "From: xxx.com\r\n";
    $mail_entete .= 'Reply-To: '.$_result."\r\n";
    $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
    $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
    $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
     
    // préparation du corps du mail
     
     
     
     
    $texte  ="\r\n";
    $texte .="Bonjour\r\n";
    $texte .="\r\n";
    $texte .="Une nouvelle discussion vient d'être crée.\r\n";
    $texte .="Si vous désirez y accéder, voici le lien\r\n";
    $texte .=" vous remercie pour votre confiance et votre visite sur notre site.\r\n";
    $texte .="A très bientôt.\r\n";
    $texte .="\r\n";
    $texte .="Vous pouvez nous contacter directement \r\n";
    $texte .="\r\n";
    $texte .="Sinon par mail, cliquez ici \r\n";
     
     
    $mail_ok = mail("$email", formation",$texte,$mail_entete);
    
    
    ?>
     
     
    			</body>
    			</html>
     
     
    <?php include("inc.php"); ?>

  12. #12
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Envoye run message aux acteurs d'un forum
    Alors j'ai trouvé l'erreur, il manqué la fermeture d'une parenthèse....
    Mais par contre je n'arrive pas à envoyer les messages à chaque utilisateurs....
    Si quelqu'un as la solution, merci!

  13. #13
    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
    L'envoi du mail doit être dans le while.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Envoyer un message aux acteurs d'un forum
    Ben j'ai testé aussi de le mettre dans la boucle while à la place du echo mais cela ne marche pas....

  15. #15
    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
    Montre nous ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Envoyer un message aux acteurs d'un forum
    oui merci
    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
    <?php include("inc/front.inc.php"); ?>
    <?
    $page_accueil = false;
    $css_page = "marron";
    $type_page = "accueil";
    $ref_titre_page = "";
    $ref_description_page = "";
    $ref_motscles_page = "";
    ?>
    <?php include("inc/hea.inc.php"); ?>
    <?php include("inc/siteinc.php"); ?>
     
              <div id="divConteneurContenu">
    			<h1 id="h1TitrePage">Forum</h1>
     
    			<br>
     
     
    			<!--<div id="divConteneurTraitVertical">-->
     
     
    			<?php
     
     
    			// on teste si le formulaire a été soumis
    			if (isset ($_POST['go']) && $_POST['go']=='Poster') {
    				// on teste la déclaration de nos variables
    				if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['message']))
    				{
    					$erreur = 'Les variables nécessaires au script ne sont pas définies.';
    				}
     
    				else
     
    					{
    					// on teste si les variables ne sont pas vides
    					if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['message']))
    					{
    						$erreur = 'Au moins un des champs est vide.';
    					}
     
    					// si tout est bon, on peut commencer l'insertion dans la base
     
    					else
     
    						{
    						// on se connecte à notre base
     
     
    						// on calcule la date actuelle
    						$date = date("Y-m-d H:i:s");
     
    						// préparation de la requête d'insertion (pour la table forum_sujets)
    						$sql = 'INSERT INTO forum_sujets VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.$date.'")';
     
    						// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
    						mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    						// on recupère l'id qui vient de s'insérer dans la table forum_sujets
    						$id_sujet = mysql_insert_id();
     
    						// lancement de la requête d'insertion (pour la table forum_reponses
    						$sql = 'INSERT INTO forum_reponses VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['message']).'", "'.$date.'", "'.$id_sujet.'")';
     
    						// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
    						mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    						// on ferme la connexion à la base de données
    						mysql_close();
     
    						// on redirige vers la page d'accueil
    						//header('location: forum.php');
     
     
    			?>
     
     
    						<SCRIPT LANGUAGE="JavaScript">
    						document.location.href="membre.php" /* vous pouvez aussi mettre http://www.monsite.com */
    						</SCRIPT>
     
    			<?php
     
    						// on termine le script courant
    						exit;
    					}
    				}
    			}
    			?>
     
     
     
    			<html>
    			<head>
    			<title>Insertion d'un nouveau sujet</title>
    			</head>
     
    			<body>
     
    			<!-- on fait pointer le formulaire vers la page traitant les données -->
    			<form action="insert.php" method="post">
     
    			<br>
    			<br>
     
    			<table align="center">
     
    			<tr><td>
    			<span class="gras">Auteur :</span>
    			</td><td>
    			<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
    			</td></tr><tr><td>
    			<span class="gras">Titre :</span>
    			</td><td>
    			<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo stripslashes(htmlentities(trim($_POST['titre']))); ?>">
    			</td></tr><tr><td>
    			<span class="gras">Message :</span>
    			</td><td>
    			<textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo stripslashes(htmlentities(trim($_POST['message']))); ?></textarea>
    			</td></tr><tr><td><td align="right">
    			<input type="submit" name="go" value="Poster">
    			</td></tr></table>
    			</form>
     
     
     
     
     
    			<?php
     
    			$req1=mysql_query("SELECT email FROM memb");
     
    				while($result = mysql_fetch_assoc($req1))
     
    				{
     
    				echo $result['email_fli'];
     
     
     
    													 // Envoi du mail client
    						//-----------------------
     
    						//Préparation de l'entête du mail:
    						$mail_entete  = "MIME-Version: 1.0\r\n";
    						$mail_entete .= "From: xxx@xxxx\r\n";
    						$mail_entete .= 'Reply-To: '.$_POST['email_fli']."\r\n";
    						$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
    						$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
    						$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
     
    						// préparation du corps du mail
     
     
     
     
    						$texte  ="\r\n";
    						$texte .="Bonjour \r\n";
    						$texte .="\r\n";
    						$texte .="Une nouvelle discussion sur le forum vient d'être crée.\r\n";
    						$texte .="Si vous désirez y accéder, voici le lien\r\n";
    						$texte .="vous remercie pour votre confiance et votre visite sur notre site.\r\n";
    						$texte .="A très bientôt.\r\n";
    						$texte .="\r\n";
    						$texte .="Vous pouvez nous contacter directement\r\n";
    						$texte .="\r\n";
    						$texte .="Sinon par mail, cliquez ici\r\n";
     
     
    						$mail_ok = mail("$email","Nouvelle discussion sur le forum",$texte,$mail_entete);
     
    						if ($ok_mail)
    						 {
    						 "mail parti";
    					    	}
    						   else
    						   {
    					    	 "mail,  pas parti";
    					    	}
     
    						if ($mail_ok)
    						{
    						 "mail client parti";
    						} else
    						 {
    						 "mail client  pas parti";
    						}
     
     
    				}
     
    			?>
     
     
    			<?php
    			// on affiche les erreurs éventuelles
    			if (isset($erreur)) echo '<br /><br />',$erreur;
    			?>
     
     
    			</body>
    			</html>
     
     
    <?php include("inc/site.inc.php"); ?>

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Donne-nous le message d'erreur exacte et la ligne à laquelle se produit l'erreur. Un "cela ne marche pas" ne nous aide pas pour te répondre.
    A quoi sert ce bout de javascript en plein milieu de ton code qui fait une redirection vers la page "membre.php" ?

    Et ce n'est pas la peine de faire un premier test avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['message']))
    suivi par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['message']))
    La seconde condition est plus restrictive que la première donc elle suffit.
    Et puis dans ton contexte la première condition ne sert à rien puisque tu teste déjà avant si le formulaire est envoyé avec if (isset ($_POST['go']) && $_POST['go']=='Poster'). Si le formulaire est envoyé, forcément les différents champs contenu dans le formulaire le sont aussi et donc les !isset renverront toujours "false" à ce niveau du script (les variables seront toujours définies). Le empty qui teste que la variable est l'équivalent de null est la seule condition utile dans ton contexte.

  18. #18
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Envoyer un message aux acteurs d'un forum
    En fait là j'ai plus de message d'erreur, quand j'appuis sur poster, la nouvelle discussion est bien mise en ligne mais il n'y a pas d'email envoyé aux acteurs...
    Et le javascript en plein milieu sert lorsque la personne à fait un clique sur poster une nouvelle discussion cela ramène la personne à l'accueil.

Discussions similaires

  1. Envoyer un message aux utilisateurs du programme.
    Par DatchetfaoNOS dans le forum Développement Web avec .NET
    Réponses: 4
    Dernier message: 31/03/2014, 09h57
  2. Envoyer des messages aux couleurs de la société
    Par fabienlege dans le forum Outlook
    Réponses: 2
    Dernier message: 11/08/2011, 11h33
  3. Envoyer un message aux utilisateurs
    Par ricci63 dans le forum IHM
    Réponses: 2
    Dernier message: 08/05/2011, 09h51
  4. Envoyer un message forum (post) sous phpBB2
    Par Darkenshin dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 0
    Dernier message: 15/02/2011, 19h29
  5. socket Client/serveur : envoyer message aux clients
    Par hishuma dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 29/07/2009, 22h26

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