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

Résolu
Messages postés
22
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
5 juin 2005
-
Messages postés
22
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
5 juin 2005
-
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

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
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.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
22
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
5 juin 2005

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);


?>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
" 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>
Messages postés
22
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
5 juin 2005

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.";