Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 21/09/2006, 13h01   #1
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

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

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Par défaut [SQL] probleme avec script mail menu deroulant

Bonjour a tous , j'ai un pti souçis avec mon script de contact .
j'arrive a le faire fonctionner avec une variable contenant mon adresse mail .
mais j'ai voulus installer quelque chose d'un peux plus pratique car nous somme plusieurs a devoir recevoir le mail donc j'ai ajouter une table sql en plus dans ma base pour l'occasion.
je ne sors pas encore le champagne car j'ai essayer de faire un select qui choisi dans la base l'adresse mail .
je ne sais pas ou j'ai rater mais mon select est vide ????
Est ce du a une mauvaise table sql ou simplement le script???

Code :
1
2
3
4
5
6
CREATE TABLE `contact` (
  `id_email` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(100) collate utf8_bin NOT NULL,
  `email_mod` varchar(50) collate utf8_bin NOT NULL,
  PRIMARY KEY  (`id_email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2 ;

ou le script php (attention il est long):
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
61
62
63
64
65
66
67
68
69
70
71
<input type="text" name="Nom" class="form" value="<?php echo trim(htmlentities($Nom)) ?>" /><br>
<br style="line-height:13px ">
<input type="text" class="form" name="Profession" value="<?php echo trim(htmlentities($Profession)) ?>"><br>
<br style="line-height:13px ">
<input type="text" class="form" name="Email" value="<?php echo trim(htmlentities($Email)) ?>"><br>
<br style="line-height:4px ">
<?php se_connecter();
   $destinataire = '<select name="contact">';
        $req = mysql_query('select nom from contact');
        while($res = mysql_fetch_assoc($req))
    $destinataire .= '
    <option value="'.$res['contact'].'">'.$res['contact'].'</option>';
        $destinataire .= '
        </select>';
        echo $destinataire;?><br>
        </td>
    <td width="121" valign="top" style="padding-top:3px ">
        <div style="margin-right:7px " align="right">
        Comments & questions:
        </div>
        </td>
    <td width="139" valign="top">
<textarea class="textarea" cols="5" rows="5"><?php if (ereg("[]%~#`$&|}{^[><]",$Message)) { echo "Certains caractères utilisés sont interdits";
  $erreur=1; }
  else {echo trim($Message); } ?></textarea><br>
<br style="line-height:9px "> 
<div align="right"><input name="" type="image" src="images/reset.jpg" title="Reset">
<input name="Submit" value="Envoi" alt="Envoi" type="image" src="images/submit_b.jpg" title="Envoi de votre message" style="margin-left:43px; margin-right:5px ">
</div>        
<?php
}
if(!isset($Nom)) { 
        formulaire();
}
else {
        $vNom=trim(htmlentities($_POST["Nom"]));
        $vProfession=trim(htmlentities($_POST["Profession"]));
        $vMessage=trim($_POST["Message"]);
        $vEmail=trim(htmlentities($_POST["Email"]));
        $destinataire;
        $titre="Contact";
        $message="Provenance : $HTTP_REFERER\n";//affiche la provenence dans le message reçus
        $message.="Adresse IP : $REMOTE_ADDR,\n";//affiche l'ip dans le message reçus
        $message.="Navigateur : $HTTP_USER_AGENT\n";//affiche le navigateur utiliser par le client dans le message reçus
        $message.="Nom : $vNom\n";//affiche le nom 
        $message.="Profession : $vProfession\n";//affiche la profession
        $message.="E-mail : $vEmail\n";//affiche le mail
        $message.="Message : $vMessage\n";//affiche le message
        if (empty($vNom) || empty($Message) || empty($Email)) {
                echo "<p class='red'>Vous n'avez pas complété toutes les zones&nbsp;:</p>";
                $erreur=1;
        }
        if (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-_.]?[0-9a-z])*\\.[a-z]{2,4}$",$vEmail) && ($erreur<>1)){
                echo "<p class='red'>L'adresse e-mail n'est pas correcte&nbsp;:</p>";
                $erreur=1;
        }
        if ($erreur==1) {
                formulaire($Nom,$Profession,$Email,$Message);
        }
        else {
                mail($destinataire,$titre,$message,"From: $vEmail") ;
                echo "<p class='vi4'>Votre message :</p>";
                echo "<ul><li>Nom : <span class='red'>" . $vNom . "</span><br />";
                echo "<li>Profession : <span class='red'>" . $vProfession. "</span></li>";
                echo "<li>E-mail : <span class='red'>" . $vEmail. "</span></li>";
                echo "<li>Message : <span class='red'>" . $vMessage.'</span></li></ul>';
                echo "<p class='vi4'>a bien été envoyé au webmestre du site. Nous vous remercions.</p>\n" ;
                echo "<form name='boutons'><table border='0' cellspacing='0' cellpadding='0' width='200px' align='left'><tr><td><center>" ;
        }
}
?>
ahh oui avant d'oublier , pourquoi je n'arrive pas a tester le script en local .
je dit sa parce que lorsque je clique rien ne se passe mais si je le mets en ligne il marche sans le select bien sur ce serai mieux avec lol
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 20h08   #2
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Plusieurs points font que cela ne marcheras pas

Alimentation du select

la requete est interresante mais pour éviter que les utilisateurs voient l'adresse mail ( ou pire les robots spammeurs ), je modifierai la requete de cette façon

Code :
select id,nom from contact
Accès aux resultats
Ensuite, l'accès aux résultats de la requete ne se fait pas de cette façon :

le mysql_fetch_assoc() remplit un tableau avec comme index les noms des colone de la table

Code :
1
2
 
$destinataire .= '<option value="'.$res['id'].'">'.$res['nom'].'</option>';
Dans la partie récupération, tu ne récuperais pas le nom du contact, oubli peut-être ???

Maintenant, avec les changements effectués dans le select, cela donne ceci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
$destinataire_id=intval($_POST['contact']);
//Maintenant on recherche l'email dans la base ne fonction de l'id transmis
$requete = 'select email from contact where id=' .$destinataire_id;
$res = mysql_query($requete);
if (mysql_num_rows($res) > 0 ) {//email trouvé
$destinataire=mysql_result($res,0,0);
}
else {
//Erreur pas d'email sléectionnée
//A completer, pour genere une erreur
}
En esperant t'avoir aidé et appris quelques trucs
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 03h04   #3
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

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

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
merci beaucoups je vois le bouts du tunnel .
mais comment faire pour voir ce que cela genere , en local pas moyen de tester .
il ne me retourne aucun message d'erreur ou de champs non remplis .
gtraxx 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 08h52.


 
 
 
 
Partenaires

Hébergement Web