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

  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 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
    Points : 20 778
    Points
    20 778
    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 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
    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
    Points : 20 778
    Points
    20 778
    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 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
    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
    Points : 20 778
    Points
    20 778
    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 ?

  7. #7
    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
    voila j'ai fais le test avec votre recommandation et il me renvoi ceci au chargement de la page :

    Array ( )

    croyer vous que c'est du au fais que le formulaire fais POST vers la page contact.php qui est la liste des contacts
    j'aurai peut etre du le preciser avant :
    la page que l'ont modifie depuis tout a l'heure est "news_contact.php" et le formulaire fais POST vers contact.php
    c'etais une mise au point
    j'ai tester mais toujours aucun changement
    la je seche lol

    edit : j'ai changer le nom de contact.php en news_contact.php pour pointer vers moi même .
    le test me renvoi donc ceci si je clique sur envoyer:

    Array ( [nom] => [email_mod] => [id_email] => 0 )

  8. #8
    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
    Points : 20 778
    Points
    20 778
    Par défaut
    Ca change tout...Comment veux tu faire un test sur l'existence d'un élément d'un formulaire si ce formulaire part sur une autre page ??? Ce test est à faire sur la page qui recoit les éléments. Si tu souhaites le faire sur la meme page dans ce cas il faut retirer le action actuel et mettre la page en cours d'execution.

    Pour ce qui est du print_r c'est normal et effectivement il existe mais il est vide. Mais le fait que tu envoies sur une autre page nous bloque, Il faut modifier tout ca

    Je te conseille de faire une seule page comme ca tu peux faire ton test à la soumission, et etc...

    Si tu souhaites pas le faire alors toute la partie else qui n'est pas utile vu l'utilisation actuelle, je te conseille de la retirer. Et ca enlèvera par la meme occasion ton echo disant que ke mail n'est pas correct.

    On va pas se compliquer : donnes tout le code pour voir

  9. #9
    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
    Donc le code de news_contact.php :

    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
    <?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 (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; }
                                    	/*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; }*/
                    }
                    print_r($_POST);
    ?>
    </p>
    <form action="news_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>
    maintenant le code de la page mail.php :

    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
    $requete="SELECT * FROM `contact` ORDER BY id_email DESC";
    $resultat= query($requete);
    //echo ("votre requete a été executée");
    if (!$resultat) {
    	print '<div style="bgcolor:red">Erreur de requete sql </div>';
    }
    ?>
    <div id="header">
    	<div id="titre1">Email des mod&eacute;rateurs</div>
    </div>
    <div id="liste_mod">
    <table border="1">
    	<tr>
    	<th id="th_titre">ID</th>
    	<th id="th_titre">Noms</th>
    	<th id="th_titre">Email</th>
    	<th id="th_titre">Supprimer</th>
    	<th id="th_titre">Modifier</th>
    	</tr>
    <?php
    //--------------------------------------------------------
    // suppression
    //--------------------------------------------------------
     
    if (isset($_GET['supprimer_contact'])) // Si on demande de supprimer un contact
    {
        // Alors on supprime l'enregistrement concerner
        $retour= query('DELETE FROM contact WHERE id_email=' . $_GET['supprimer_contact']);
    }
    //while ($resultat && $ligne=mysql_fetch_array($resultat, MYSQL_ASSOC))
    while ($donnees = mysql_fetch_array($resultat))
    {	
    echo "<tr>";
    	//foreach ($ligne as $valeurchamp)
    	{?>
    	<td id="td_mod"><?php echo $donnees['id_email'] ;?>
    	<td><?php echo $donnees['nom'] ;?></td>
    	<td><?php echo $donnees['email_mod'] ;?></td>
    	<td class="td_news"><?php echo '<a href="#" OnClick="if(confirm(\'voulez-vous supprimer cette adresse ?\'))document.location.href=\'contact.php?supprimer_contact='
     . $donnees['id_email'] . '\';">Supprimer</a>';?></td>
    	<td class="td_news"><?php echo '<a href="#" OnClick="if(confirm(\'voulez-vous modifier cette adresse ?\'))document.location.href=\'news_contact.php?modifier_contact='
     . $donnees['id_email'] . '\';">Modifier</a>';?></td>
    		<?php
    		}
    		echo "</tr>";
    	}
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une nouvelle adresse ?
    //-----------------------------------------------------
     
    if (isset($_POST['nom']) AND isset($_POST['email_mod']))
    {
        $nom = addslashes($_POST['nom']);
        $email = addslashes($_POST['email_mod']);
        // On vérifie si c'est une modification d'adresse ou pas
        if ($_POST['id_email'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            query("INSERT INTO contact VALUES('', '" . $nom . "', '" . $email . "')");
        }
        else
        {
            // C'est une modification, on met juste à jour le nom et l'email
            query("UPDATE contact SET nom='" . $nom . "', email_mod='" . $email . "' WHERE id_email=" . $_POST['id_email']);
        }
    }
     
    mysql_close();
    ?>
    </table>
    <a class="info" href="news_contact.php">Ajouter une adresse</a>
    j'aurai du le dire avant mais je ne pensais pas que cette page intervenais sur les problemes de l'autre lol

  10. #10
    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
    Points : 20 778
    Points
    20 778
    Par défaut
    Voici une version en une page avec insertion :
    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
    <?php  
     
      $nom = '';
      $email = '';
      $id_email = 0;
     
      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 
      }  
      else if(isset($_POST['new_contact']))
      {
          $nom = isset($_POST['nom'])?($_POST['nom']):'';
        $email = isset($_POST['email_mod'])?($_POST['email_mod']):'';
        $id_email = isset($_POST['id_email'])?($_POST['id_email']):0;
     
        if ((empty($nom)) 
        {  
            echo '<p class="red">Vous devez remplir le champs nom</p>'; 
            $erreur = true;
        } 
        if (empty($email)) 
        {  
            echo '<p class="red">Vous devez remplir le champs mail</p>'; 
            $erreur = true;
        } 
        else
        {
            if (!eregi('^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-_.]?[0-9a-z])*\\.[a-z]{2,4}$',$email))
            { 
                echo '<p class="red">L\'adresse e-mail n\'est pas correcte&nbsp;:</p>'; 
                $erreur = true;
            } 
        }
     
        if($erreur == false)
        {
            // On vérifie si c'est une modification d'adresse ou pas
            if ($id_email == 0)
            {
                // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
                query("INSERT INTO contact VALUES('', '" . addslashes($nom) . "', '" . addslashes($email) . "')");
            }
            else
            {
                // C'est une modification, on met juste à jour le nom et l'email
                query("UPDATE contact SET nom='" . addslashes($nom) . "', email_mod='" . addslashes($email) . "' WHERE id_email=" . $id_email);
            }
            header('location : mail.php');
        }
      }
    ?>
     
    <form action="news_contact.php" method="post">
      Nom : <input type="text" size="30" name="nom" value="<?php echo $nom; ?>" />
      <br />
      <label for="email_mod">Votre mail ?</label>
      <input type="text" size="30" name="email_mod" value="<?php echo $email; ?>" maxlength="30" />
      <br />
      <input type="hidden" name="id_email" value="<?php echo $id_email; ?>" />
      <input type="submit" name="new_contact" value="Envoyer" />
    </form>
    J'ai pas testé mais c'est censé fonctionner

    A noter que le header que j'ai mis s'il y a aucun problème pourrait peut etre ne pas fonctionner si tu as des instructions avant

  11. #11
    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 a toi , tous fonctionne .
    j'ai eu deux erreur warning

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\webhosting\inc\connection.php on line 42

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\webhosting\inc\connection.php on line 42
    Erreur SQL a la ligne :
    INSERT INTO contact VALUES('', 'monnom', 'monmail@monserveur.com')
    42

    mais j'ai resolus le probleme , la connection ne se faisais qu'en debut de script par contre le header ne produit rien ????
    En principe si l'ecriture s'effectue il doit me renvoyer sur la page liste (mail.php)
    doit je changer une derniere chose pour qu'il me redirige vers cette pas si le script est effectuer ??

    ps : en tout cas j'ai hate de continuer a étudier le fonctionnement de php et voir tout ce qu'il peux faire

  12. #12
    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
    Points : 20 778
    Points
    20 778
    Par défaut
    Voici toutes les possibilités pour faire une redirection : Comment faire une redirection ?

  13. #13
    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 a toi , le script fonctionne parfaitement et mes ajouts fonctionne aussi
    je n'ai pas oublier le script de mail que j'avais fais la fois derniere avec vous ou un des admins et je le posterai dans les tutoriaux comme suggerer

    derniere question ..
    que veux dire ses 3 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nom = isset($_POST['nom'])?($_POST['nom']):'';
        $email = isset($_POST['email_mod'])?($_POST['email_mod']):'';
        $id_email = isset($_POST['id_email'])?($_POST['id_email']):0;
    l'utilisation des deux points suivis de guillemets ou de 0 me laisse dans l'interrogation

  14. #14
    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
    Points : 20 778
    Points
    20 778
    Par défaut
    Dans l'ordre :
    Si on soumet l'input nom alors $nom prend la valeur de l'input sinon vide. Même chose pour le mail
    Si on soumet l'input id_email alors $id_mail prend la valeur de l'input sinon 0.

    Je pense meme que le isset peut etre remplacé par empty vu qu'il est déjà dans un if qui teste la soumission du form

  15. #15
    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 pour cette precision
    maintenant j'ai compris le fonctionnement et j'ai appliquer la methode pour une newsletter qui fonctionne a merveille
    encore un grand merci

+ 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, 22h24
  2. Problème avec mon script en Shell
    Par G.D.O dans le forum Linux
    Réponses: 8
    Dernier message: 05/07/2006, 17h40
  3. probleme dans mon script
    Par bigoter dans le forum Langage
    Réponses: 4
    Dernier message: 03/07/2006, 16h19
  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, 17h40
  5. Probleme avec Win32::odbc et mon script
    Par goblin dans le forum Modules
    Réponses: 1
    Dernier message: 29/11/2005, 22h40

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