Problème avec $HTTP_GET_VARS et EASYPHP v1.7

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec $HTTP_GET_VARS et EASYPHP v1.7

par rami » 24 sept. 2005, 11:34

Comme te l'a dit pjl, le problème ne vient pas de l'utilisation de $HTTP_GET_VARS (même si elle est dépréciée), mais du fait qu'avant d'utiliser une variable, il faut s'assurer de son existence.

Tu fais:
$VarNom = $_GET["Nom"]; 

Or $_GET["Nom"] n'a été défini nulle part avant (ce qui signifie que l'url ayant appelé cette page ne contenait pas: url.php?Nom=valeur), d'où l'erreur très explicite:
Notice: Undefined index: <Variable> in <fichier> on line xx

Avant toute utilisation de $_GET ou $_POST, il faut toujours tester l'existence de la variable que tu veux utiliser (cf. post de pjl).

Bon courage à toi ;)

par Cyrano » 24 sept. 2005, 08:54

Alors c'est parfait. Je te conseille quand même de mettre tes scripts à jour et de remplacer : Tu as mentionné 30 pages : il te faudrait moins de 10 minutes pour remplacer tous les $HTTP_GET_VARS par $_GET, même avec le Bloc-Note : Édition>Rechercher/Remplacer et tu fais le tour des pages, c'est l'affaire d'environ 3 minutes montre en main ;)

Et si jamais tu as WebExpert, tu peux même le faire en une seule fois en faisant un "rechercher/remplacer dans les dossiers" sans même avoir besoin d'ouvrir les fichiers : durée de l'opération, environ 25 secondes montre en main ;) Pour illustrer la chose, je me suis une fois modifié tous les liens d'un manuel PHP de .html en .php, et le manuel PHP comporte 4171 fichiers : ça ne m'a pas pris une heure pour tout faire et ça fonctionnne très bien.

Problème résolé avec WAMP

par mkel » 24 sept. 2005, 01:40

J'ai suvi tonseil Cyrano..j'installé WAMP...
PLUS AUCUN PROBLEME....
Je me voyais mal en train de remplacer mes 30 pages par le $_GET...

Merci de ton aide, Cyrano... :o :o
Tu as bien senti d'où venait le problème...

Ah oui...Pour pjl...je me suis acheté un camion universel...Ainsi plus de prob. pour les nouvelles versions... :cry: :cry:

mkel

par Cyrano » 22 sept. 2005, 23:53

La formulation $HTTP_GET_VARS est obsolete depuis pas mal de temps et a été simplifiée. Un rechercher/remplacer par $_GET et tu modifie tout un script relativement rapidement.

Non, mais....

par mkel » 22 sept. 2005, 23:46

Monter vers EasyPho v1.7 me fait revoir tout mon code..A CAUSE DE CE $HTTP_GET_VAR...de malheur, qui n'est pas reconnu par ... par qui d'ailleurs ? :cry: :P

Ca en devient Bill Gatien avec son Windows de m...

De plus, si on m'annonce une voiture toute neuve...et qu'il faille chercher partout la pédale de frein.. (He oui, elle a changé de place entre 1920 et 2005)...
:cry: :cry: :cry:

Plus sérieux : Si oin montant vers le hau, on bousille ce qu'il y a en-dessous...On va surement se casser la figure non ? :twisted:

Bon, allez...je vais télécharger WAMP...Parait qu'il fonctionne super bien...

mkel

par pjl » 22 sept. 2005, 23:16

Tu as raison.
J'ai fait pareil avec ma voiture.
Comme elle ne marchait pas bien, j'ai récupérer la ford T de mon grand père par contre, je ne comprends pas pourquoi on me klaxonne sans arret quand je suis sur le périf.

Sérieusement, tu as choisi de faire de la programation, le langage choisi évolue, à toi de suivre ses évolutions.
Si tu ne le voulais pas, il fallait faire autre chose, du macramé par exemple.

Et pour ton problème : essaye cette syntaxe :
if (isset($_GET['nom'])) $varnom = $_GET['nom']; 
et prends l'habitude de mettre tes noms de variable en minuscule.

par Cyrano » 22 sept. 2005, 23:07

Remplace EasyPHP par WAMP, ça marche bien et tu auras PHP5 en plus

$HTTP_GET_VARS

par mkel » 22 sept. 2005, 23:05

Merci de la réponse

Tout marchait TRES BIEN avec EasyPhp v1.6 :o :o
Mais quand je suis passé en EasyPhp v1.7.. PATATRA..Rien ne va plus.. :oops:

J'ai plus de 30 pages dans mon site qui font référence à $HTTP_GET_VARS.

J'attends encore qq jours. Si j'arrive pas à me dépatouiller, alors je reviendrais en EasyPhp v1.6

Ca m'apprendra... :cry: :cry:

mkel

par Cyrano » 22 sept. 2005, 20:36

Est-ce que le formulaire d'où arrivent les données a une méthode post ou get ? Si c'est post, alors tu ne pourras récupérer les informations que dans $_POST.

Ce que tu peux faire, c'est un bout de code de débuggage pour vérifier:
<p>Valeurs envoyées:</p>
<?php
if(isset($_GET))
{
?>
<p>Valeurs tranférées via l'url ($_GET) :</p>
<ul>
<?php
    foreach($_GET as $index => $valeur)
    {
        echo("<li>index ". $index ." ; valeur :". $valeur ."</li>\n");
    }
?>
</ul>
<?php
}
if(isset($_POST))
{
?>
<p>Valeurs tranférées selon la méthode post ($_POST) :</p>
<ul>
<?php
    foreach($_POST as $index => $valeur)
    {
        echo("<li>index ". $index ." ; valeur :". $valeur ."</li>\n");
    }
?>
</ul>
<?php
}
?>

Problème avec $HTTP_GET_VARS et EASYPHP v1.7

par mkel » 22 sept. 2005, 19:44

Bonjour à tous.. :)

Lorsqu'on passe de EasyPhp v1.6 vers EasyPhp v1.7
L'erreur suivante apparait :
Notice: Undefined index: <Variable> in <fichier> on line xx

Cette ligne correspon à :
$VarNom = $HTTP_GET_VARS["Nom"];

Dans les forums, on me dit de remplacer $HTTP_GET_VARS par $_GET afin que cela marche...

Je remplace donc par : :D
$VarNom = $_GET["Nom"];

Rt la même erreur apparait. :o :o

J'ai bien vérifié que dans le fichier PHP.INI que :
register_globals = Off


je pense que bcp de PHPistes ont eu le même problème...

Merci de me répondre. :oops: :oops:


Mkel