Anonymus
dimanche 25 avril 2004 à 07:11
Lorsque l'on dit que les variables globales sont à ON, cela signifie que :
Un certain nombre de variables sont disponibles, sans avoir besoin de les déclarer. En général, ce sont des variables dont a besoin php pour tourner. Elles sont visibles lorsque tu fais la fonction : phpinfo();.
Donc, une option de configuration permet de rendre visible un certain nombre de variables.
Ainsi :
Si, dans ton fichier php.ini, l'option de configuration error_reporting est à E_ALL, tu demandes à php de déclarer toutes les erreurs.
Si tu le mets à E_ERROR, alors php ne déclarera pas les erreurs qu'il rencontrera.
Donc :
A supposer que tu demandes à php de déclarer toutes les erreurs, tu peux essayer de faire juste ce petit code :
CODE
<?
echo $a;
?>
Normalement, cela va te renvoyer une erreur, disant que $a n'est pas déclaré. En effet, tu demandes à php d'afficher une variable qu'il ne connait pas.
Mais :
Tu peux demander à php d'afficher des variables qu'il connait, même si tu ne les as pas déclaré. Ce sont les variables globales. Par exemple ?
Essaie de faire :
CODE
<?
echo getenv("SERVER_NAME");
?>
Tu auras le nom du serveur qui tourne sur ta machine. Normalement, c'est 'localhost'.
Cette variable, php a besoin de la connaitre, meme si tu ne la déclare pas.
Si tu fais :
CODE
<?
echo $a;
?>
le navigateur te dira :
CODE
Notice: Undefined variable: a in ton_fichier.php on line ligne
Autrement dit, il te retournera une erreur.
Imagines un script que tu trouves sur internet, ou dont tu postes le code, inocemment, dans un forum. Les personnes qui voient ce script peuvent être tentés d'essayer d'entrer dans ton code en utilisant les variables que tu ne testes pas. Exemple :
CODE
if (auth='admin'){
// gestion de l'administration
}
Là, il suffit de faire :
CODE
http://localhost/mon_script.php?auth=admin
pour entrer dans le code.
Et ca marchera... si ton script est réglé sur register_globals = on
par contre, s'il est réglé sur register_globals = off ca ne marchera pas.
Jettes un oeil au fichier php.ini, dans le répertoires windows, tu trouveras tout un tas d'options de configuration bien utiles à connaitre (mais attention, les manipulations peuvent être... dangereuses).
Si tu as besoin de plus d'infos, n'hésites pas

Anonymus.