Problème de la syntaxe each dans mon code php

Fermé
gmartine Messages postés 3 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 28 mars 2010 - 23 mars 2010 à 18:39
 le père - 23 mars 2010 à 22:11
Bonjour,

voici mon code

<?php
include("config.inc.php");
?>
<html>
<title>Ajout d'un enregistrement</title>
<body>
<?php


/* _________________RECUP_DES_DONNEES____________________ */

while (list($var, $value) = each($HTTP_GET_VARS))
{
$tab_asso["$var"] = $value;
}



/* ____________________FORMULAIRE________________________ */

switch ($tab_asso[ok]) {

/* ____ENREGISTREMENT_____ */
case 1;
$requete=mysql_query("insert into carnet values('','$nom','$prenom','$adresse1','$adresse2','$cpostal','$ville','$tel','$fax','$email')");
echo "<p align=center><h1 align=center>Enregistrement réussi.<br><br><a href='carnet.php'>Retour</a></p>";
break;



/* ______AFFICHAGE DU FORMULAIRE____ */
default;
echo "<blockquote><table border=0><form method='get' action='ajout.php'><input type='hidden' name=ok value=1>
<td>Nom</td><td><input type='text' name=nom size=30 maxlenght=50></td>
<td align=right>Prénom</td><td><input type='text' name=prenom size=30 maxlenght=50></td><tr>
<td>Adresse</td><td><input type='text' name=adresse1 size=30 maxlenght=60></td>
<td align=right>Adresse (complément)</td><td><input type='text' name=adresse2 size=30 maxlenght=60></td><tr>
<td>Code postal</td><td><input type='text' name=cpostal size=30 maxlenght=5></td>
<td align=right>Ville</td><td><input type='text' name=ville size=30 maxlenght=30></td><tr>
<td>Téléphone</td><td><input type='text' name=tel size=30 maxlenght=15></td>
<td align=right>Fax</td><td><input type='text' name=fax size=30 maxlenght=15></td><tr>
<td>E-mail</td><td><input type='text' name=email size=30 maxlenght=30></td><tr>
</table></blockquote>";
echo "<table align=center><tr><td><input type='submit' value='Ajouter'></td><td><input type='reset' value='Tout effacer'></td></form><td><form method=get action='carnet.php'><input type=submit value='Annuler'></td></form></table>";
break;
}

MYSQL_CLOSE($db_link);
?>
</body>
</html>

et voici l'insulte qu'il me répond^^

Warning: Variable passed to each() is not an array or object in C:\Users\Guillaume\Desktop\xampp\htdocs\adresse\ajout.php on line 16

avez vous une solution
est-ce à cause de la version de php entre php4 et php5?

merci de m'aider c'est important
A voir également:

1 réponse

Bonjour

Oui, c'est probablement ça la raison. En PHP5, si la variable de configuration register_long_arrays est à false, les tableaux comme $HTTP_GET_VARS n'existent pas.
Il suffit d'utiliser $_GET à la place.

Remarques au passage :
Ne pas oublier les balises <head> et </head> autour de l'en-tête HTML
Cette méthode de récupération des variables est pour le moins bizarre ; à moins que tu n'aies déjà initialisé certains éléments de $tab_asso quelque part, elle revient à faire $tab_asso = $_GET; on ne voit pas très bien l'intérêt
0