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

PHP & Base de données Discussion :

[SQL] probleme avec script mail menu deroulant


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
    <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
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre confirmé Avatar de gtraxx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 043
    Points : 570
    Points
    570
    Par défaut
    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 .
    Au petit déjeuner, je prend du PHP et au souper du jQuery.
    AFUP 2009 : Bien optimiser son code pour le référencement
    Mon projet open source de librairie PHP 5: magix cjquery

Discussions similaires

  1. [AJAX] avec un script de menu deroulant
    Par xodeax dans le forum AJAX
    Réponses: 5
    Dernier message: 01/05/2009, 12h02
  2. [SQL] Probleme avec script de sauvegarde de BDD
    Par killbrice dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/06/2007, 00h48
  3. Probleme avec <script src=
    Par MicroPuce dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/05/2006, 15h12
  4. Probleme Avec un Extend menu
    Par sezar dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/03/2006, 13h46
  5. probleme avec script perl grab_tv_fr.pl
    Par ZiMo dans le forum Langage
    Réponses: 6
    Dernier message: 30/11/2005, 17h12

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