probleme avec php 5

Eléphant du PHP | 51 Messages

01 juin 2009, 13:32

bonjour à tout mes amis,
j'ai développé un formulaire où l'utilisateur fait des upload d'images, et tt marche avec php4 (easyphp 1.8), mais quand j'ai installé le easyphp 3.0 (php 5), je reçois un message d'erreur à la ligne où j'utilise la commande ($HTTP_POST_FILES)

Notice: Undefined variable: HTTP_POST_FILES in C:\Program Files\EasyPHP 3.0\www\fiche-produit\ajout_prd.php on line 15


alors svp, pouvais vous m'aider à corriger mon formulaire

et merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

01 juin 2009, 15:43

L'usage de $HTTP_POST_FILES est déprécié. Il te faut utiliser $_FILES :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 51 Messages

01 juin 2009, 16:26

merci de m'avoir répondu, mais svp, pouvais vous m'expliquer plus
coordialement

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

01 juin 2009, 16:39

au début, PHP 3, proposait une séries de variables globales pour récupérer les données GET, POST et les fichiers uploadés : respectivement $HTTP_GET_VAR, $HTTP_POST_VAR et $HTTP_POST_FILES.

Depuis PHP 4, le langage a voulu remplacer ces variables par d'autres qui sont : $_GET, $_POST et $_FILES.
Pendant un moment, les 2 étaient disponibles, même si le PHPGroup encouragait l'utilisation des versions courtes.

Depuis PHP 5, le PHPGroup a décidé qu'il ne fallait plus utiliser les versions longues. Pour cela, non seulement elles ne sont plus remplies par défaut, mais en plus, leur utilisation entraine l'affichage d'un NOTICE (ton erreur)

Pour PHP 6, qui se profile, ces variables n'existeront même plus du tout.

Donc, pour résoudre ton problème, tu as 2 solutions :
  • Transformer toutes tes variables $HTTP_GET_VAR, $HTTP_POST_VAR et $HTTP_POST_FILES et $_GET, $_POST et $_FILES (avec la recherche multi-fichiers de la plupart des éditeurs actuels, c'est très simple)
  • modifier le php.ini pour que PHP remplisse ces variables. Mais je te déconseille cette solution, car elle est possible en PHP 5, mais ne sera plus disponible en PHP 6.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer