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 :

probleme d'ordre de mon script


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut probleme d'ordre de mon script
    bonjour a tous j'ai fais u script pour recuperer les données a modifier pour des adresse mails.
    pour ce qui est de modifier les données pas de probleme .
    mais j'ai tous de même un souçis pour cette partie c'est que la verification ce fais dés l'ouverture donc j'ai le message comme quoi l'adresse mail est invalide.
    ceci dit ce n'est pas bien grave pour l'instant.
    par contre lorsque j'ouvre la page sans devoir modifier mais seulement rediger une nouvelle adresse les verification de mails sont faites avant d'avoir posté et envoi les données même non remplie .
    plutot contraignant je me suis un peux embrouillé avec mes conditions :-°

    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
    <?php
    if (isset($_GET['modifier_contact'])) // Si on demande de modifier une adresse mail
                {
                            se_connecter();
                      // On récupère les infos de la correspondante
                      $retour = query('SELECT * FROM contact WHERE id_email=' . $_GET['modifier_contact']);
                      $donnees = mysql_fetch_array($retour);
                   
                      // On place le nom et le mail dans des variables simples
                      $nom = $donnees['nom'];
                      $email = $donnees['email_mod'];
                      $id_email = $donnees['id_email']; // Cette variable va servir pour se souvenir que c'est une modification
                      if (isset($donnees['email_mod']))
                            {
                                  if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $_GET['email_mod']))
                                  {
                                        echo 'L\'adresse ' . $donnees['email_mod'] . ' est <strong>valide</strong> !';
                                  }
                                  else
                                  {
                                        echo 'L\'adresse ' . $donnees['email_mod'] . ' n\'est pas valide, recommencez !';
                                  }
                            }
                }
                else // C'est qu'on rédige  un nouveau contact
                {
                      // Les variables $nom et $email sont vides, puisque c'est un nouveau contact
                      $nom = '';
                      $email = '';
                      $id_email = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
                      if (empty($nom) || empty($email)) {
                            echo "<p class='red'>Vous n'avez pas compl&egrave;t&eacute; 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}$",$email) && ($erreur<>1)){
                            echo "<p class='red'>L'adresse e-mail n'est pas correcte&nbsp;:</p>";
                            $erreur=1;
                            }
                }
    ?>
    </p>
    <form action="contact.php" method="post">
    <p>
                <tr><td class="td_titre"><p>Nom : <input type="text" size="30" name="nom" value="<?php echo $nom; ?>" /></td></tr>
          <label for="modifier_contact">Votre mail ?</label> 
          <tr><td class="td_titre"><input type="text" size="30" name="email_mod" value="<?php echo $email; ?>" maxlength="30" /><br />
          <tr><td class="td_titre"><input type="hidden" name="id_email" value="<?php echo $id_email; ?>" /></td></tr>
          <input type="submit" value="Envoyer" />
    </p>
    pour infos query est une fonction regroupant mysql_query et des tests supplementaire

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Moi je mettrais dans cette partie certains condition portant sur le post. Exemple :
    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
    else if(isset($_POST))// C'est qu'on rédige  un nouveau contact
                {
                      // Les variables $nom et $email sont vides, puisque c'est un nouveau contact
                      $nom = '';
                      $email = '';
                      $id_email = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
                      if (empty($nom) || empty($email)) {
                            echo "<p class='red'>Vous n'avez pas compl&egrave;t&eacute; 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}$",$email) && ($erreur<>1)){
                            echo "<p class='red'>L'adresse e-mail n'est pas correcte&nbsp;:</p>";
                            $erreur=1;
                            }
                }
    Si vraiment il ne veut pas de cette modification alors ceci :
    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
                 else if(isset($_POST['nom']))// C'est qu'on rédige  un nouveau contact
                {
                      // Les variables $nom et $email sont vides, puisque c'est un nouveau contact
                      $nom = '';
                      $email = '';
                      $id_email = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
                      if (empty($nom) || empty($email)) {
                            echo "<p class='red'>Vous n'avez pas compl&egrave;t&eacute; 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}$",$email) && ($erreur<>1)){
                            echo "<p class='red'>L'adresse e-mail n'est pas correcte&nbsp;:</p>";
                            $erreur=1;
                            }
                }
    Pourquoi
    $_POST['nom']
    tu te demandes certainement. Ben la réponse est simple, c'est l'un des éléments du formulaire et il est obligatoirement envoyé. Tu aurais très bien pu mettre un autre et meme le submit s'il avait un nom

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    j'ai essayer comme vous me l'avez indiquez mais rien y fais.
    si je ne remplis pas les champs et que je clique sur envoyer il l'envois vide ....
    pour ce qui est du débuts du script je n'ai pas trouver non plus pourquoi il fais la verification avant l'envoi
    j'ai surement mal imbriquer les conditions ou un truc du genre ???

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Alors plusieurs choses :
    1. le nom et l'email (je parle des variables) doivent récupérer celles qui sont transmises par le POST ce qui n'était pas fait. Et donc tu insérais toujours des valeurs vides.
    2. Toujours tester la transmission du POST, ce qui évitera l'affichage de tes echos
    3. Le plus important : Toujours indenté le code, c'est plus lisible pour le lecteur
    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
    <?php
        if (isset($_GET['modifier_contact'])) // Si on demande de modifier une adresse mail
                    {
                                    se_connecter();
                              // On récupère les infos de la correspondante
                              $retour = query('SELECT * FROM contact WHERE id_email=' . $_GET['modifier_contact']);
                              $donnees = mysql_fetch_array($retour);
                   
                              // On place le nom et le mail dans des variables simples
                              $nom = $donnees['nom'];
                              $email = $donnees['email_mod'];
                              $id_email = $donnees['id_email']; // Cette variable va servir pour se souvenir que c'est une modification
                              if (isset($donnees['email_mod']))
            {
                                              if (preg_match("!^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$!", $_GET['email_mod']))
                                              {
                                                        echo 'L\'adresse ' . $donnees['email_mod'] . ' est <strong>valide</strong> !';
                                              }
                                              else
                                              {
                                                        echo 'L\'adresse ' . $donnees['email_mod'] . ' n\'est pas valide, recommencez !';
                                              }
                                    }
                    }
                    else // C'est qu'on rédige  un nouveau contact
                    {
                              // Les variables $nom et $email sont vides, puisque c'est un nouveau contact
                              $nom = isset($_POST['nom'])?($_POST['nom']):'';
                              $email = isset($_POST['email_mod'])?($_POST['email_mod']):'';
                              $id_email = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
                              if ((empty($nom) || empty($email)) and isset($_POST)) {
                                        echo "<p class='red'>Vous n'avez pas compl&egrave;t&eacute; toutes les zones&nbsp;:</p>";
                                        $erreur=1;
                              }
                            
                                    if (empty($email) and !eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-_.]?[0-9a-z])*\\.[a-z]{2,4}$",$email) and ($erreur<>1)){
                                        echo "<p class='red'>L'adresse e-mail n'est pas correcte&nbsp;:</p>";
                                        $erreur=1;
                                    }
                    }
    ?>
    </p>
    <form action="contact.php" method="post">
        <p>
                        <tr><td class="td_titre"><p>Nom : <input type="text" size="30" name="nom" value="<?php echo $nom; ?>" /></td></tr>
            <label for="modifier_contact">Votre mail ?</label> 
                  <tr><td class="td_titre"><input type="text" size="30" name="email_mod" value="<?php echo $email; ?>" maxlength="30" /><br />
                  <tr><td class="td_titre"><input type="hidden" name="id_email" value="<?php echo $id_email; ?>" /></td></tr>
                  <input type="submit" value="Envoyer" />
        </p>

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    oui c'est vrai j'aurai du y penser d'indenter mieux que sa mon code

    par contre j'ai tester et j'ai toujours le même souçis ,il ne veux pas effectuer les tests donc je peux toujours envoyé des données vide (même avec le test des $_POST)
    il effectue les tests avant de cliquer sur un bouton donc il ne verifie pas les champs
    c'est assez drole de voir "L'adresse e-mail n'est pas correcte" avant de la modifier et de mettre n'importe quoi ....
    de plus si je veux simplement rediger une nouvelle adresse mail j'ai droit a vous n'avez pas remplis tous les champs avant de mettre quoi que ce soit de plus il ne verifie pas l'adresse mail pour la redaction d'une adresse .
    ça me fais rire alors que je ne devrais pas (mon boss va me tuer lol)

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Hummm ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (empty($email) and !eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-_.]?[0-9a-z])*\\.[a-z]{2,4}$",$email) and ($erreur<>1)){
                                        echo "<p class='red'>L'adresse e-mail n'est pas correcte&nbsp;:</p>";
                                        $erreur=1;
                                    }
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_POST) and empty($_POST['email_mod']) and !eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-_.]?[0-9a-z])*\\.[a-z]{2,4}$",$email) and ($erreur<>1)){
                                        echo "<p class='red'>L'adresse e-mail n'est pas correcte&nbsp;:</p>";
                                        $erreur=1;
                                    }
    Le problème est que si $email n'est pas vide ca veut dire que le formulaire a été envoyé donc je voulais éviter le isset de $_POST.

    Sinon tu peux faire un test en faisant ceci :
    et dire ce qui se passe à lancement de la page et après soumission du form ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme sur mon script !
    Par bull100 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 08/07/2008, 21h24
  2. Problème avec mon script en Shell
    Par G.D.O dans le forum Linux
    Réponses: 8
    Dernier message: 05/07/2006, 16h40
  3. probleme dans mon script
    Par bigoter dans le forum Langage
    Réponses: 4
    Dernier message: 03/07/2006, 15h19
  4. P'tit probleme de creation de formulaire dans mon script
    Par Jim_Nastiq dans le forum Langage
    Réponses: 2
    Dernier message: 28/04/2006, 16h40
  5. Probleme avec Win32::odbc et mon script
    Par goblin dans le forum Modules
    Réponses: 1
    Dernier message: 29/11/2005, 21h40

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