[PHP] Variables Globales

Discussion dans 'Web, design' créé par WaKaaN, 23 Avril 2008.

Statut de la discussion:
Fermée.
  1. Offline
    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_HOSTMYSQL_USERMYSQL_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:)
    WaKaaN, 23 Avril 2008
    #1
  2. Offline
    ozilrit Touriste
    Et ainsi donc, le mot de passe de l'utilisateur va se promener sur tout le script ?
    ozilrit, 23 Avril 2008
    #2
  3. Offline
    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...
    WaKaaN, 24 Avril 2008
    #3
  4. Offline
    ozilrit Touriste
    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'];
    }
    }
    ozilrit, 24 Avril 2008
    #4
Statut de la discussion:
Fermée.