Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/04/2011, 12h59   #1
Invité de passage
 
Inscription : septembre 2010
Messages : 70
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 70
Points : 0
Points : 0
Par défaut Envoi de mail : souci avec les conditions

Bonjour,

j'ai fais un formulaire et j'ai amélioré un peut :

voilà mon code du formulaire :

Code :
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
>	>	<?php
        //On récupère les infos du membre
        $dat = mysql_query('SELECT * FROM forum_membres WHERE membre_id='.intval($_SESSION["id"]));
$data = mysql_fetch_assoc($dat);
 
 
?>
 
      <form method="post" action="mail_envoyer.php?action=contact" name="formulaire">
      Votre Email
<br /> <?php
 if(isset($_SESSION["id"]))
 {
// on affiche le mail du membre s'il est connecté
?>
<a href="#"><?php echo $data['membre_email']; ?></a>
<?php
}
else
{
// si le membre n'est pas connecté il doit affiché un pseudo
echo'<input type="text" name="mail" value="" />';
}
 
 
		?>
 
 
        <br />
<br />
      Votre pseudo :
<br>
<?php
 if(isset($_SESSION["id"]))
 {
// on affiche le pseudo du membre s'il est connecté
echo ' <a href="../forum/voirprofil.php?m='.intval($data['membre_id']).'&amp;action=consulter">
        '.level_color(id_to_pseudo(stripslashes(htmlspecialchars($data['membre_id']))),$data['membre_rang']).'</a>';
}
else
{
// si le membre n'est pas connecté il doit affiché un pseudo
echo'<input type="text" name="pseudo" value="" />';
}
 
 
		?>
et ma page mail_envoyer :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($action=='contact')
{
$i = 0;
$msg = '';
if(!$_POST['mail']){ $msg .= '<ul><li>Veuillez renseigner votre e-mail</li><br />'; $i++; }
if($_POST['pseudo'] == 'none'){ $msg .= '<li>Veuillez choisir un pseudo</li><br />'; $i++; }
if($_POST['jour'] == 'none'){ $msg .= '<li>Veuillez choisir un jour</li><br />'; $i++; }
if($_POST['date'] == 'none'){ $msg .= '<li>Veuillez choisir une date</li><br />'; $i++; }
if($_POST['mois'] == 'none'){ $msg .= '<li>Veuillez choisir un mois</li><br />'; $i++; }
if($_POST['heure'] == 'none'){ $msg .= '<li>Veuillez choisir votre heure</li><br />'; $i++; }
if(!$_POST['message']){ $msg .= '<li>Veuillez ecrire un message</li></ul>'; $i++; }
?>
donc comme j'ai modifié mon code du formulaire pour dir si le membre esst deconnecté la personne doit mettre son pseudo et son mail donc pas de souci

et si le membre et conecté là on affiche son mail et sn pseudo là il le met bien.

et donc sur la page mail_envoyer j'ai remplacé le code desus par :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if($action=='contact')
{
$i = 0;
$msg = '';
 
// on met une condition pour dire que le membre et bien connecter donc pas bessoin qu'il met un pseudo
 if(isset($_SESSION["id"]))
	  {
	  // on met une condition pour dire que le membre et deconnecter donc là il doit mettre un pseudo
 
 else
 
 if(!$_POST['pseudo']){ $msg .= '<li>Veuillez renseigner votre pseudo</li><br />'; $i++; }
 }
 // on met une condition pour dire que le membre et bien connecter donc pas bessoin qu'il met un mail
 
	  elseif(isset($_SESSION["id"]))
	  {
	  // on met une condition pour dire que le membre et deconnecter donc là il doit mettre un mail
if(!$_POST['mail']){ $msg .= '<li>Veuillez renseigner votre e-mail</li><br />'; $i++; }
}
if($_POST['objet'] == 'none'){ $msg .= '<li>Veuillez choisir un sujet</li><br />'; $i++; }
if(!$_POST['message']){ $msg .= '<li>Veuillez ecrire un message</li><br />'; $i++; }
donc j'ai mis des condition pour dire si le membre est connecté pas bessoin de remplir le champ pseudo et le mail et si le membre est déconnecter là il doit mettre le pseudo et son mail

mais ma condition pour qu'il sache qui est connecté j'ai mis un if et un else pour dire soit l'un ou l'autre.

mais ça n'a pas marché car qd je suids connecter il me dit veuillez remplir le pseudo et le mail hors il est déjà sur ma page formulaire grace a ma condition

si quelqu'un peut m'aider

Merci de votre aide
mario94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 16h38   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Relis ton code et indente le proprement.
Actuellement il manque des }
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 01h40   #3
Invité de passage
 
Inscription : septembre 2010
Messages : 70
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 70
Points : 0
Points : 0
coucou merci de ton aide donc j'ai refais un peut mon code il y a 2 petites soucis une qui n'est pas grave et l'autre je n'arrive pas affiché le pseudo du membre dans mon mail mais par contre il met son id du membre au lieu du pseudo.

Donc je vais tout remettre pour etre claire :

mon formulaire :

Code :
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
<?php
        //On récupère les infos du membre
        $dat = mysql_query('SELECT * FROM forum_membres WHERE membre_id='.intval($_SESSION["id"]));
$data = mysql_fetch_assoc($dat);
 
 
?>
 
      <form method="post" action="mail_envoyer.php?action=contact" name="formulaire">
      Votre Email
<br /> <?php
 if(isset($_SESSION["id"]))
 {
// on affiche le mail du membre s'il est connecté
 
?>
là jai mis un lien pour affiché mon mail mais j'ai du fermer et ouvert par <?php ?> car j'ai éssayé de le mettre avec  un echo pour mettre le lien du mail mais il se plante donc j'ai laissé comme celà
<a href="#"><?php echo $data['membre_email']; ?></a>
<?php
}
else
{
// si le membre n'est pas connecté il doit affiché un pseudo
echo'<input type="text" name="mail" value="" />';
}
 
 
		?>
 
 
        <br />
<br />
      Votre pseudo :
<br>
<?php
 if(isset($_SESSION["id"]))
 {
// on affiche le pseudo du membre s'il est connecté
echo ' <a href="../forum/voirprofil.php?m='.intval($data['membre_id']).'&amp;action=consulter">
        '.level_color(id_to_pseudo(stripslashes(htmlspecialchars($data['membre_id']))),$data['membre_rang']).'</a>';
}
else
{
// si le membre n'est pas connecté il doit affiché un pseudo
echo'<input type="text" name="pseudo" value="" />';
}
 
 
		?>
et dans mon mail_envoyer j'ai tous refais j'éspére proprement enfin tu me diras ceux qu'il faut que je corrige par quoi.

donc voilà ma page :

Code :
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
if($action=='contact')
{
$i = 0;
$msg = '';
if (isset($_SESSION["id"])) // SINON pas bessoin de pseudo
{
//le pseudo
}else{
if(!$_POST['pseudo']){ $msg .= 'Veuillez renseigner votre pseudo<br />'; $i++; }
} 
if (isset($_SESSION["id"])) // SINON pas bessoin de mail
{
//le mail
}else{
if(!$_POST['mail']){ $msg .= 'Veuillez renseigner votre e-mail<br />'; $i++; }
} 
if($_POST['sujet'] == 'none'){ $msg .= 'Veuillez choisir un sujet<br />'; $i++; }
if(!$_POST['message']){ $msg .= 'Veuillez ecrire un message</p>'; $i++; }
 
 
if($i==0){
// Plusieurs destinataires
     $mail  = 'monmail@free.fr' . ', '; // notez la virgule
 
     // Sujet
     $sujet = $_POST['sujet'];
 
     // message
     $message = '
     <html>
      <head>
       <title>Mon site</title>
      </head>
      <body>
 
       <p>Son Pseudo : ' . $_POST['pseudo'] .' ' . $_SESSION["id"] .'</p>
 
       <p>Son Message : ' . $_POST['message'] .'</p>
 
 
      </body>
     </html>
     ';
 
     // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     $headers  = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
     // En-têtes additionnels
     $headers .= 'mail: ' . "\r\n";
     $headers .= 'From: ' . "\r\n";
     $headers .= 'Cc: ' . "\r\n";
     $headers .= 'Bcc: ' . "\r\n";
 
if ( mail($mail, $sujet, $message, $headers))echo '<p align="center">Merci, votre message vient d\'&ecirc;tre envoy&eacute; &agrave; l\'&eacute;quipe du site.<br /><a href="index.php" title="Retour sur l\'index">Retour sur l\'index</a></p>'; else echo "Echec de l'envoi du mail.";
}else{
echo '<p align="center">' . $i . ' erreur(s) d&eacute;t&eacute;ct&eacute;e(s) :<br>'. "\n" . $msg . "\n" . '<p align="center"><a href="index.php" title="Retour sur l\'index">Retour sur l\'index</a>';header('refresh: 5; url=../contact.php');
 }
}       
?>
en résumer dans message j'ai mis ce code pour ceux qu'ils ne sont pas connecté et qui marché très bien donc ' . $_POST['pseudo'] .' il n'a pas de souci.

Pour ceux qui sont connectés et qui affiche bien dans mon formulaire mon mail et mon pseudo donc j'ai voulu remettre ce code dans mon message ' . $_SESSION["id"] .' pour permetre quand je recevrais un mail je verrais son pseudo hors là il met dans ma boîte de mail ce message :

Citation:
Son Pseudo : 83

Son Message : dddddddddddd
au lieu de mettre :

Citation:
Son Pseudo : tester

Son Message : dddddddddddd
et aussi j'ai voulu remettre ma fonction level color pour permettre dans mon mail le pseudo soit mis en couleur comme pour mon formulaire :

Code :
1
2
<a href="../forum/voirprofil.php?m='.intval($data['membre_id']).'&amp;action=consulter">
        '.level_color(id_to_pseudo(stripslashes(htmlspecialchars($data['membre_id']))),$data['membre_rang']).'</a>';
si quelqu'un pourrais m'aidé a remettre le pseudo au lieu du chiffre et aussi la couleur du pseudo grace au level color car là je suis coincé car je n'arrive pas a remettre le pseudo dans le mail mais juste le chiffre donc id_membre donc il faut juste trouvé le moyen d'afficher son pseudo au lieu du id et pour quoi pas la couleur du membre avec ma petit fonction qui marche dc level color

merci de votre aide je pense que c'est rie c'est juste un code que j'ai mal mis mais j'ai tout éssayé

encore merci de ton aide.
mario94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 12h49   #4
Invité de passage
 
Inscription : septembre 2010
Messages : 70
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 70
Points : 0
Points : 0
bonjour commevous êtes pas inspiré par mon code donc j'ai retesté un autre code qui et :

Code :
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
     // Sujet
     $sujet = $_POST['sujet'];
 
     // message
     $message = '
     <html>
      <head>
       <title>Mon site</title>
      </head>
      <body>
 
 
  function id2pseudo($id=0)
  {
    $id = ($id == 0) ? intval($_SESSION["id"]) : intval($id);
 
       $req = mysql_query("SELECT membre_pseudo AS pseudo, COUNT(*) AS existPseudo FROM forum_membres WHERE membre_id = " . $id);
         $res = mysql_fetch_assoc($req);
 
         if($res["existPseudo"] > 0)
       return htmlspecialchars($res["pseudo"]);
         else
       return "Anonyme member";
  }
 
 
 
       <p>Son Message : ' . $_POST['message'] .'</p>
 
 
      </body>
     </html>
     ';
il met ça

Citation:
function id2pseudo($id=0) { $id = ($id == 0) ? intval($_SESSION["id"]) : intval($id); $req = mysql_query("SELECT membre_pseudo AS pseudo, COUNT(*) AS existPseudo FROM forum_membres WHERE membre_id = " . $id); $res = mysql_fetch_assoc($req); if($res["existPseudo"] > 0) return htmlspecialchars($res["pseudo"]); else return "Anonyme member"; }
Son Message : sujet
au lieu de mettre

son pseudo : tester
son message : sujet

merci de votre ide
mario94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 14h55   #5
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
Citation:
Envoyé par mario94 Voir le message
Citation:
Son Pseudo : 83

Son Message : dddddddddddd
au lieu de mettre :


Citation:
Son Pseudo : tester

Son Message : dddddddddddd
le résultat que tu attends n'était pas conforme au code présenté.
Code :
1
2
3
4
 
       echo '<p>Son Pseudo : ' . $_POST['pseudo'] .' ' . $_SESSION["id"] .'</p>
 
       <p>Son Message : ' . $_POST['message'] .'</p>';
fait un print_r($_POST), tu verras que l'array $_POST ne contient pas les variables attendues.

quand au 2 message, tu ferais mieux de l'effacer.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 21h30   #6
Invité de passage
 
Inscription : septembre 2010
Messages : 70
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 70
Points : 0
Points : 0
merci de ta réponse enfaite ' . $_POST['pseudo'] .' ca marche bien

mais pour $_SESSION["id"] . c'est ca qui marche pas mais le numero du id au lieu du pseudo

et j'aimerais savoir comment je pourrais le remettre le pseudo

merci de votre aide car j'ai tout tester mais ça ne marche pas donc peut être avec votre on va reuissit a affiché le pseudo

merci de votre aide
mario94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h30.


 
 
 
 
Partenaires

Hébergement Web