En testant un exemple du site de documentation php pour contourner
l'impossibilité d'utiliser les variables variables avec les superglobales
je m'apperçois que le bout de code proposé appliqué au tableau $GLOBALS :
m'affiche la valeur de toutes les propriétés d'une classe de connexion à
mysql (que je chargeais et utilisait dans mon script de test). Je vois
entre autre le mot de passe de connexion alors que dans la classe (PHP5) la
propriété qui le contient il est déclaré comme "private", que la classe et
le fichier contenant le mot de passe sont dans un répertoire d'include au
dessus d'htdocs et que cette propriété est instanciée par le constructeur
de la classe.
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans $GLOBALS,
et ce n'est pas le cas.
Donc je n'ai pas bien compris les problèmes de portée de variables dans
PHP, si quelqu'un pouvait m'éclairer un peu sur ce sujet.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal PONCET
Alarch a écrit :
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans $GLOBALS, et ce n'est pas le cas.
Bonjour, extrait de la doc PHP sur la fonction print_r() : "print_r(), var_dump() et var_export() afficheront également les propriétés protégées et privées d'un objet en PHP 5". CQFD ! Cordialement, Pascal
Alarch a écrit :
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans $GLOBALS,
et ce n'est pas le cas.
Bonjour,
extrait de la doc PHP sur la fonction print_r() : "print_r(), var_dump()
et var_export() afficheront également les propriétés protégées et
privées d'un objet en PHP 5". CQFD !
Cordialement,
Pascal
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans $GLOBALS, et ce n'est pas le cas.
Bonjour, extrait de la doc PHP sur la fonction print_r() : "print_r(), var_dump() et var_export() afficheront également les propriétés protégées et privées d'un objet en PHP 5". CQFD ! Cordialement, Pascal
Alarch
Pascal PONCET wrote:
Alarch a écrit :
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans $GLOBALS, et ce n'est pas le cas.
Bonjour, extrait de la doc PHP sur la fonction print_r() : "print_r(), var_dump() et var_export() afficheront également les propriétés protégées et privées d'un objet en PHP 5". CQFD ! Cordialement, Pascal
Merci, entre temps je m'étais rendu compte qu'on parcourant $GLOBALS dans un foreach par exemple on avait une erreur sur les objets. Mais je n'avais pas remarqué cet alinéa dans la doc, honte à moi.
Il me reste donc à regarder si l'on peut bloquer ces fonctions (je pense dans le php.ini) avant de laisser un autre que moi mettre du code sur le serveur.
Merci encore pour la réponse.
Pascal PONCET wrote:
Alarch a écrit :
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans
$GLOBALS, et ce n'est pas le cas.
Bonjour,
extrait de la doc PHP sur la fonction print_r() : "print_r(), var_dump()
et var_export() afficheront également les propriétés protégées et
privées d'un objet en PHP 5". CQFD !
Cordialement,
Pascal
Merci, entre temps je m'étais rendu compte qu'on parcourant $GLOBALS dans un
foreach par exemple on avait une erreur sur les objets. Mais je n'avais pas
remarqué cet alinéa dans la doc, honte à moi.
Il me reste donc à regarder si l'on peut bloquer ces fonctions (je pense
dans le php.ini) avant de laisser un autre que moi mettre du code sur le
serveur.
Naïvement je pensais qu'il ne pouvait ainsi pas être affiché dans $GLOBALS, et ce n'est pas le cas.
Bonjour, extrait de la doc PHP sur la fonction print_r() : "print_r(), var_dump() et var_export() afficheront également les propriétés protégées et privées d'un objet en PHP 5". CQFD ! Cordialement, Pascal
Merci, entre temps je m'étais rendu compte qu'on parcourant $GLOBALS dans un foreach par exemple on avait une erreur sur les objets. Mais je n'avais pas remarqué cet alinéa dans la doc, honte à moi.
Il me reste donc à regarder si l'on peut bloquer ces fonctions (je pense dans le php.ini) avant de laisser un autre que moi mettre du code sur le serveur.