[PHP] Variables Globales

Statut
N'est pas ouverte pour d'autres réponses.

WaKaaN

JcQL
Bon, ca fait une grosse demi-heure que je chipote sur un code

config.php :
PHP:
define('MYSQL_HOST', 'localhost');

page.php :
PHP:
require_once('config.php');
mysql_pconnect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('<b>'. MYSQL_HOST .'</b> : '.mysql_error());
Vala, je définis une variable globale 'MYSQL_HOST' avec comme valeur 'localhost'

Normalement un simple appel 'MYSQL_HOST' devrait afficher la valeur... Ca ne m'affiche que 'MYSQL_HOST':mad:

J'ai voulu faire un test en mettant les register_global à ON, ca n'a rien changé...

THx:)
 

ozilrit

Elite
Et ainsi donc, le mot de passe de l'utilisateur va se promener sur tout le script ?
 
1er
OP
WaKaaN

WaKaaN

JcQL
Et donc les define(s ?) sont à proscrire ?

Je ne comptais pas l'utiliser mais c'est parce que j'avais trouvé un script intéressant, je voulais le tester pour voir a quoi ça ressemblait...

J'ai trouvé ma solution, mais le débat sur les variables globales m'interresse...
 

ozilrit

Elite
Les variables et les constantes ont une portée.


Au plus cette portée est grande, au plus il y a de risque.
Déclarer le mot de passe dans la constante globale MYSQL_PASS alors que celui-ci aurait pu être contenu dans la variable privée _userPassword de la classe.​


Au plus l'appel est éloigné de l'environnement de déclaration, au plus il est long pour le ZE de retrouver la variable.
/**
* Une variable à portée globale
*/
$phpVersion = 'PHP/FI';

class PHP {
function version () {
/**
* Pour retrouver la variable globale phpVersion
* le ZE devra sortir de l'environnement de la fonction
* et sortir de l'environnement de la classe.
*/
return $_GLOBAL['phpVersion'];​
}​
}​
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut