OVH Community, votre nouvel espace communautaire.

index.php?var=xxxx , je n'ai rien


vilain_mamuth
13/02/2004, 15h37
ce guide est la uniquement pour montrer la solution à un certain problème

il est evident que la solution de facilite est de mettre la valeur à on
Mais Ils allaient pas dire : pour que ca marche, modifier tous les fichiers de votre applis (souvent recuperee sur le web) et changez les $var en $_Get['var'], encore faut il connaitre la structure de l'appli pour pouvoir le deduire facilement....

je suis entierement d'accord sur le fait qu'il faudrait qu'ovh precise dans ce guide qu'il est preferable que register_globals soit à Off

Ronan
13/02/2004, 10h15
Daweb écrivait :
Cela dit, les risques de faille du à ce problèmes sont tout simplement inexistants si on programme proprement...
LOL : si on programme correctement, on n'a pas besoin d'avoir register_globals activé, les scripts marcheraient directement et la question ne se poserait pas !
Si la question se pose, c'est forcément que le code est mal fait !

Daweb écrivait :
Et si je me suis mis petit à petit à la nouvelle manière, cela n'a encore rien d'indispensable...
Ce n'est pas parce que tu n'es pas conscient du problème qu'il n'existe pas : tu te trompes en pensant qu'il n'y a pas de problème de sécurité.
Le raisonnement c'est l'inverse : en désactivant register_globals on est obligé de spécifier l'origine des variables dans le code et on évite donc forcément les problèmes qui en découlent.

Maintenant chacun fait comme il veut, mais au moins espérons que c'est en toute connaissance de cause (c'est ça que je reproche au guide OVH : il met en avant un fonctionnement potentiellement insécurisé sans faire les recommandations qui vont avec).

Titeuf
13/02/2004, 09h40
//----****VAR POST----****//
reset ($_POST);
while (list ($key, $val) = each ($_POST)) {
${$key} = $val;
}

//---****VAR GET----****//
$tParam = $_SERVER["argv"];
$tParam = explode("&",$_SERVER["QUERY_STRING"]);
for($t=0;$t $tVar = explode("=",$tParam[$t]);
${$tVar[0]} = $tVar[1];
}
//--

Bon, ça c'est ce qu'on appel une rustine, ça te permet de travailler avec l'ancienne notation des variables...
Disons que ça marche le temps que tu modifies ton code sans que les utilisateurs soient en manque de ton site

@++

Daweb
13/02/2004, 02h38
Cela dit, les risques de faille du à ce problèmes sont tout simplement inexistants si on programme proprement...

Maintenant il est vrai qu'il faudrait prevenir les gens d'linteret de ne pas le faire, avec un lien vers l'excellent article cité plus haut ou un autre.

De là à dire que c'est n'importe quoi...
Il ne faut pas exagerer... 90% des sites PHP fontionnent à l'ancienne, sans problèmes particuliers...

Et si je me suis mis petit à petit à la nouvelle manière, cela n'a encore rien d'indispensable...

Ronan
12/02/2004, 23h51
Germain écrivait :
Vas-y doucement quand même...
Désolé si j'ai été un peu abrupt, mais :
- j'ai détaillé en quoi ce guide posait des problèmes techniques
- j'ai fait une suggestion d'amélioration du guide

Comme je l'indiquais dans mon post, ce guide n'est pas -à mon avis- au niveau du reste du service OVH.
Si je prends le temps de l'écrire, c'est parce que la critique est constructive, non ?

Ronan

Germain
12/02/2004, 23h41
Ronan écrivait :
Pfff, ce guide d'OVH c'est n'importe quoi.
Vas-y doucement quand même...

TranSGeniK
12/02/2004, 23h24
patfromh,

Si tu ne souhaites pas modifier register_globals

Tu dois ecrire:

print("valeur=".$_GET['var']);
?>

Dans ce cas là tu peux trouver des informations supplementaires ici:
http://fr.php.net/register_globals

Psyk
12/02/2004, 23h05
ou récupérer sa varible en $_GET['var'] , c'est plus mieux

Ronan
12/02/2004, 23h05
TranSGeniK écrivait :
Oui, il faut modifier le php.ini et mettre:
register_globals à On

http://guides.ovh.com/PassageParametreEnPhp/
Pfff, ce guide d'OVH c'est n'importe quoi. D'ailleurs c'est inhabituel chez OVH de fournir des conseils de cet ordre.

Activer "register_globals" est tout sauf recommandé (si cette fonction a été désactivée par défaut par les développeurs de PHP, ce n'est pas pour rien).

Les inconvénients du register_globals sont nombreux :
- cela ouvre des brèches de sécurité
- cela mélange les variables locales et celles issues de GET, POST, SESSION, etc.
- mais cela nuit à la lisibilité du code ($var c'est nettement moins clair que $_GET['var'], ce dernier indiquant clairement "la variable var transmise par la méthode GET").
- etc.

Le seul "avantage" du register_globals... c'est de faire fonctionner des applis écrites par le passé sans les modifier. Mais cette économie est au détriment de la sécurité.

Bref, ce guide devrait plutôt indiquer la méthode correcte pour traiter les variables (c'est à dire les tableaux superglobaux $_GET, $_POST, $_SESSION, ...). Et éventuellement indiquer l'activation du register_globals comme un mode de fonctionnement "dégradé".

Ronan

patfromh
12/02/2004, 21h56
Merci pour l'info

A+

TranSGeniK
12/02/2004, 20h06
Oui, il faut modifier le php.ini et mettre:
register_globals à On

http://guides.ovh.com/PassageParametreEnPhp/

patfromh
12/02/2004, 19h28
Bonjour,

question bete:
j'ai une page: http://mondomaine.com/index.php?var=12345

dans index.php j'ai:

print("valeur=".$var);
?>

je n'ai que:

valeur=

$var est egale à rien

d'ou vient l'erreur?
il y a une modif à faire dans la config du dédié?

Patrice?!!