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 13/10/2006, 01h09   #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 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 :
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
__________________
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
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 01h24   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Moi je mettrais dans cette partie certains condition portant sur le post. Exemple :
Code :
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 :
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
Citation:
$_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
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 01h47   #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
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 ???
__________________
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
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 01h59   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
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 :
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>
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 02h25   #5
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
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)
__________________
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
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 02h36   #6
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Hummm ceci
Code :
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 :
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 ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 02h48   #7
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
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 )
__________________
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
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 02h55   #8
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
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
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 17h39   #9
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
Donc le code de news_contact.php :

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
<?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 :
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
__________________
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
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 23h41   #10
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Voici une version en une page avec insertion :
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
<?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
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 15h15   #11
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 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
__________________
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
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 17h04   #12
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Voici toutes les possibilités pour faire une redirection : Comment faire une redirection ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 17h09   #13
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 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 :
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
__________________
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
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 19h06   #14
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
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
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2006, 20h53   #15
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 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
__________________
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
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h27.


 
 
 
 
Partenaires

Hébergement Web