Bonjour,

Ce que j'évoque ici est un exemple tiré d'un livre "PHP5 Le guide complet", de chez MicroApp.
Il s'agit de gérer une base de données à partir d'un formulaire.
Je précise que je ne cherche pas de script me permettant d'obtenir le même résultat que celui que je vais citer ici, je veux juste comprendre pourquoi il est sans effet.

Voilà mon index.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
 
<!--Système d'authentification du protocole HTTP-->
<?php
 
if (!($_SERVER['PHP_AUTH_USER']=="essai" &&
	  $_SERVER['PHP_AUTH_PW']=="essai"))  {
	header("status: 4O1 Unauthorized");
	header("HTTP/1.0 401 Unauthorized");
	header('WWW-authenticate: Basic '.
	'realm="acces securise au back-office"');
	print("vérification : ERREUR");
exit(0);
}
 
echo "<html>";
echo "<head>";
echo "<title>Admin Ecole</title>";
echo "</head>";
echo "<body>";
 
$liendb = mysql_connect("localhost", "root", "");
mysql_select_db("test");
 
$sql= "SELECT * FROM eleve";
$resultat= mysql_query ($sql);
 
echo "<h1>admin - ecole</h1>";
 
echo "<p align=left> :: accueil</p>";
 
echo "<table width=90% align=center border=1>";
echo "<tr><td>id</td><td>nom</td><td>prenom</td><td>naissance</td><td> </td></tr>";
 
while ($eleve = mysql_fetch_array ($resultat))
 
{
		$id = $eleve['ideleve'];
		$nom = $eleve['nom'];
		$prenom = $eleve['prenom'];
		$date = $eleve['naissance'];
 
		echo "<tr>";
		echo "<td>$id</td>";
		echo "<td>$nom</td>";
		echo "<td>$prenom</td>";
		echo "<td>$date</td>";
		echo "<td>";
		echo "<a href='eleve_edite.php?id=$id'>voir</a>";
		echo "</td>";
		echo "</tr>";
}
 
 
echo "</table>";
 
mysql_close($liendb);
 
echo "</body>";
echo "</html>";


Et voici la page contenant le formulaire et le script eleve_edite.php qui ne produit rien lorsque j'essaie de faire un update ou un delete sur une table :


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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<?php
 
$liendb = mysql_connect("localhost", "root", ""); 
mysql_select_db("test"); 
 
if ($_REQUEST['action'] == "maj")          
 
{
if (empty($_REQUEST['nom']) || empty($_REQUEST['prenom']) ||    
    empty($_REQUEST['adresse']) || empty($_REQUEST['ville']) ||
    empty($_REQUEST['codepostal']) || empty($_REQUEST['pays']) || 
    empty($_REQUEST['naissance']) || empty($_REQUEST['telephone']) ||
    empty($_REQUEST['lv']))
die("ERREUR : tous les champs doivent être remplis.");
 
 
if ($_REQUEST['sexe'] !="masculin" && $_REQUEST['sexe'] !="feminin") 
die ("ERREUR : choisissez votre sexe.");
 
if (preg_match ("/^[\w\.-]+@[\w\.-]+\.[a-z]{2,3}$/i",
	$_REQUEST['email']) == false)
die("ERREUR : adresse email non valide.");
 
 
$sql =  "UPDATE eleve SET nom = '".$_REQUEST['nom']."',".
		"prenom = '".$_REQUEST['prenom']."',".
		"adresse = '".$_REQUEST['adresse']."',".
		"ville = '".$_REQUEST['ville']."',".
		"cp = '".$_REQUEST['cp']."',".
		"pays ='".$_REQUEST['pays']."',".
		"sexe = '".$_REQUEST['sexe']."',".
		"naissance = '".$_REQUEST['naissance']."',".
		"email ='".$_REQUEST['email']."','".
		"telephone= '".$_REQUEST['telephone']."',".
		"lv ='".$_REQUEST['lv']."'".
		" WHERE ideleve = '".$_REQUEST['id']."'";
 
mysql_query($sql);
 
}                                  
elseif ($_REQUEST['action'] =="suppr" && $_REQUEST['id']>=1)
 
{
	$sql = "DELETE FROM eleve WHERE ideleve'".$_REQUEST['id']."'";
	mysql_query ($sql);
	header("Location: http://localhost/mysql/authentification/index.php");
}
 
 
echo "<html>";
echo "<head>";
echo "<title>Admin Ecole</title>";
echo "</head>";
echo "<body>";
 
 
 
echo "<h1>admin - ecole</h1>";
echo "<p align=left> :: fiche d'eleve [".$_REQUEST['id']."]</p>"; //GET et REQUEST ont le meme effet
 
$sql= "SELECT * FROM eleve WHERE ideleve = '".$_REQUEST['id']."'";
$resultat = mysql_query ($sql);
$eleve = mysql_fetch_array ($resultat);
 
?>
 
 
<form action="eleve_edite.php" method="post">
<input type="hidden" name="enregistre" value="oui" />
<input type="hidden" name="id" value="<?php echo $_REQUEST['id']; ?>" />
 
<table>
<tr>
	<td>nom</td>
	<td><input type="text" name="nom" value="<?php echo $eleve['nom']; ?>" /></td>
</tr>
 
<tr>
	<td>prenom</td>
	<td><input type="text" name="prenom" value="<?php echo $eleve['prenom']; ?>" /></td>
</tr>
 
<tr>
	<td>adresse</td>
	<td><textarea name="adresse"><?php echo $eleve['adresse']; ?></textarea></td>
</tr>
 
<tr>
	<td>ville</td>
	<td><input type="text" name="ville" value="<?php echo $eleve['ville']; ?>" /></td>
</tr>
 
<tr>
	<td>code postal</td>
	<td><input type="text" name="codepostal" value="<?php echo $eleve['cp']; ?>" /></td>
</tr>
 
 
<tr>
	<td>pays</td>
	<td><input type="text" name="pays" value="<?php echo $eleve['pays']; ?>" /></td>
</tr>
 
<tr>
	<td>sexe</td>
	<td>
	Masculin <input type="radio" name="sexe" value="masculin" <?php if($eleve['sexe'] == "masculin") echo "CHECKED"; ?>> 
	Féminin <input type="radio" name="sexe" value="feminin" <?php if($eleve['sexe'] == "feminin") echo "CHECKED"; ?>>
	</td>
</tr>
 
<tr>
	<td>date naissance</td>
	<td><input type="text" name="naissance" value="<?php echo $eleve['naissance']; ?>" /></td>
</tr>
 
 
<tr>
	<td>email</td>
	<td><input type="text" name="email" value="<?php echo $eleve['email']; ?>" /></td>
</tr>
 
<tr>
	<td>téléphone</td>
	<td><input type="text" name="telephone" value="<?php echo $eleve['telephone']; ?>" /></td>
</tr>
 
<tr>
	<td>langue vivante</td>
	<td>
	<select name="lv">
		<option value="anglais">anglais</option>
		<option value="espagnol" <?php if ($eleve['lv'] == "espagnol") echo "SELECTED"; ?>>espagnol</option>
		<option value="allemand" <?php if ($eleve['lv'] == "allemand") echo "SELECTED"; ?>>allemand</option>
	</select>
	</td>
</tr>
 
</table>
 
 
<br/>
 
 
<select name="action">
	<option value="maj"> Enregistrer la fiche </option>
	<option value="suppr"> Supprimer la fiche </option>
</select>
 
<input type="submit" value="effectuer">
 
</form>
 
</body>
</html>
 
<?php mysql_close($liendb); ?>



Lorsque je modifie un élément et que je clique sur effectuer, j'ai le die("ERREUR : tous les champs doivent être remplis.");, alors que pourtant le script affiche le formulaire déjà rempli pour chaque élève.

Lorsque je choisis de supprimer un élève, je reviens à index.php comme prévu, mais rien n'a été supprimé!

Y'a-t-il une erreur de syntaxe?

Je ne sais pas si vous aurez le courage de me lire en entier, mais ce serait sympa parce que là je sèche!


Merci!