Problème dans un formulaire d'envoi de mail avec identification

Résolu
Broack Dincht Messages postés 22 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 5 juin 2005 - 3 juin 2005 à 11:04
Broack Dincht Messages postés 22 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 5 juin 2005 - 5 juin 2005 à 12:17
bonjour à tous et toutes

j'ai un blème avec un code php.
J'ai fais des codes ayant pour but d'identifier une parsonne afin de lui permettre d'envoyer une newsletter. Il y a 2 pages: la 1ère sert à l'identification (pseudo, mot de passe) et la deuxième vérifie cette identification avec la base de donnée. Si l'identification est correcte, alors la page affiche 2 zones de textes: l'une pour l'objet et l'autre pour le contenu du mail

mon identification fonctionne bien, la page d'écrire de nawsletter s'affiche, mais elle envoi elle envoi un message vide

voici mon code, si quelqu'un veut bien se pencher dessus.

je vous remercie d'avance

<?
$db = mysql_connect('localhost', 'root', ''); // Ici, on se connecte au serveur de la base de donnees
mysql_select_db('mabase',$db); // On accede à la base de donnees


$pseudo = $_REQUEST['pseudo'];
$mdp = $_REQUEST['mdp'];


//requete pour voir si l'identification correspond a un enregistrement
$req = "SELECT * FROM ct_login WHERE pseudo='$pseudo' AND mot_passe='$mdp';";
$exec = mysql_query($req);
$result = mysql_fetch_array($exec);


//si le membre existe dans la base de donnees alors
if ($result){
// ==== Envoi du mail
$rqt = mysql_query ('SELECT mail from CT_inscription');
while ($lescolonnes = mysql_fetch_array($rqt)) {
mail($lescolonnes['mail'], $_POST['objet_f'], $_POST['message_f']);
}
echo '

<form method="post" action="ct_mail.php">
envoi d\'une newletter


objet :


contenu de la newsletter:

<textarea name="message_f" style="width: 100%; height: 200px;"></textarea>




</form>
';

//si il n'existe pas
}else{
echo "L'identification est incorrecte.";
}


mysql_close($db);


?>

5 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 juin 2005 à 12:32
Hello,



pas tres malin les $_REQUEST, on ne sait pas d'ou ca vient du coup...

Il faudrait peut-etre que tu testes tes $_POST, le submit aussi. Pour
voir ce qu'ils contiennent, et s'ils contiennent bien ce que tu attends.
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 juin 2005 à 15:40
Salut,



c'est normal, tu envoies le mail avant de vérifier si le formulaire a
été envoyé ou doit s'afficher. Bref ensuite le <? est à remplacer
par <?php, les $_REQUEST ne servent à rien et doivent être remplacés
par des $_POST ou $_GET en fonction de l'attribut 'method' de ton
formulaire.



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
3
Broack Dincht Messages postés 22 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 5 juin 2005
4 juin 2005 à 23:31
merci pour votre aide

mais mainteant, le mail ne part pas du tout... si vous voulez bien encore m'aider voici mon code tel qu'il est mainteant

merci encore

<?php
$db = mysql_connect('localhost', 'root', ''); // Ici, on se connecte au serveur de la base de donnees
mysql_select_db('mabase',$db); // On accede à la base de donnees


$pseudo = $_POST['pseudo'];
$mdp = $_POST['mdp'];


//requete pour voir si l'identification correspond a un enregistrement
$req = "SELECT * FROM ct_login WHERE pseudo='$pseudo' AND mot_passe='$mdp';";
$exec = mysql_query($req);
$result = mysql_fetch_array($exec);


//si le membre existe dans la base de donnees alors
if ($result){
if (isset($_POST['bt'])) {
// ==== Envoi du mail
$rqt = mysql_query ('SELECT mail from CT_inscription');
while ($lescolonnes = mysql_fetch_array($rqt)) {
mail($lescolonnes['mail'], $_POST['objet_f'], $_POST['message_f']);
}
}
echo '

<form method="post" action="ct_mail.php">
envoi d\'une newletter


objet :


contenu de la newsletter:

<textarea name="message_f" style="width: 100%; height: 200px;"></textarea>




</form>
';

//si il n'existe pas
}else{
echo "L'identification est incorrecte.";
}


mysql_close($db);


?>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
5 juin 2005 à 00:15
" c'est normal, tu envoies le mail avant de vérifier si le formulaire a été envoyé ou doit s'afficher"

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Broack Dincht Messages postés 22 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 5 juin 2005
5 juin 2005 à 12:17
C vrai j'aurai pu y penser...
j'ai donc inversé l'affichage du formulaire et l'envoi du mail, mais hélas, rien de nouveau...

merci encore

if ($result){
echo '

<form method="post" action="ct_mail.php">
envoi d\'une newletter


objet :


contenu de la newsletter:

<textarea name="message_f" style="width: 100%; height: 200px;"></textarea>




</form>
';

if (isset($_POST['bt'])) {
// ==== Envoi du mail
$rqt = mysql_query ('SELECT mail from CT_inscription');
while ($lescolonnes = mysql_fetch_array($rqt)) {
mail($lescolonnes['mail'], $_POST['objet_f'], $_POST['message_f']);
}
}
//si il n'existe pas
}else{
echo "L'identification est incorrecte.";
0
Rejoignez-nous