variable global en PHP [EXPERT]

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

variable global en PHP [EXPERT]

Message le Ven Juil 07, 2006 11:15

Hello,

j'ai un doute donc je vous demande confirmation.

Code: Tout sélectionner
<?php
$a = 1;

function test() {
   global $a;
echo $a; /* portée globale */
}
test(); //écrit 1 puisque $a est défini en global dans la fonction test()
?>



La définition de variable "global" au sein d'une fonction :
- ne pose aucun problème de sécurité ?
- fonctionnera chez tous les hébergeurs ?

Si vous pouviez me le confirmer, ça serait bien sympa parce qu'on est en train de développer une très grosse application ( http://www.webrankinfo.com/forums/viewtopic_45874.htm avec Moktoipas) et ce type de variable m'est très utile.


Bacteries
WRInaute accro
WRInaute accro
 
Messages: 1333
Inscription: Jeu Mai 27, 2004 13:04

Message le Ven Juil 07, 2006 11:52

Rien à voir : mais en gros tu programme un ERP?
Y'a des solutions open source déjà pour ça.

Pour tes variables je pense que ça marche chez n'importe qui; mais si tu es sur un dédié de toute façon tu peux tout configurer comme tu veux.

Niveau sécu c'est un peu comme toute variables de ton script, il vaut mieux empécher tout ce qui est injection de code. Après ça reste une variable comme une autre mais accessible en dehors de la portée habituele.


e-kiwi
Modérateur
Modérateur
 
Messages: 13857
Inscription: Mar Déc 23, 2003 9:04

Message le Ven Juil 07, 2006 12:09

- ne pose aucun problème de sécurité ?
non, tant que tu programme correctement derriere (en utilisant bien les $_GET, $_POST, ...)

- fonctionnera chez tous les hébergeurs ?
oui


blman
WRInaute accro
WRInaute accro
 
Messages: 2915
Inscription: Ven Sep 05, 2003 10:46

Message le Ven Juil 07, 2006 13:08

D'accord, merci à vous 2 de m'otez ce doute.

Je serais hébergé en interne pour le moment mais on pourrait imaginer à l'avenir que cette application soit partagée entre plusieurs sociétés (un magasin, un stock ou un centre d'expédition internet, ...). Donc si ça fonctionne en standard chez tous les hébergeurs, ça me rassure.

Côté sécurité, merci aussi. Evidemment, mes variables qui sont utilisées en global dans mes fonctions, sont initialisées en début de script. Il n'y a donc pas moyen de faire de l'injection.

Merci encore !


mr_go
WRInaute accro
WRInaute accro
 
Messages: 1945
Inscription: Mer Sep 21, 2005 16:02

Message le Ven Juil 07, 2006 13:23

+1.

J'en rajoute une petite couche, est ce que cette solution est plus sécuriée qu'un define("VARIABLE_A",1) (pour peu que VARIABLE_A ne subisse aucun traitement en aval bien évidemment) ?


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Ven Juil 07, 2006 21:32

Je vois pas comment on pourrait exploiter un global dans une fonction ! Ca permet simplement à la fonction d'avoir accès à la variable ! rien de plus !

shrom
WRInaute passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

Message le Ven Juil 07, 2006 22:50

La question n'est pas de savoir si les variables globales ont des problèmes de sécurité, la question est ai-je besoin d'utiliser des variables globales ?

Je connais très peu de cas ou il y a obligation de les utiliser.

1) on peut passer des arguments aux fonctions, c'est pas pour rien
2 ) il est très difficile de tracer les fonctions qui modifient les variables globales puisque celle-ci n'apparait pas dans la signature de la fonction
3) ca donne du code très peu lisible


e-kiwi
Modérateur
Modérateur
 
Messages: 13857
Inscription: Mar Déc 23, 2003 9:04

Message le Sam Juil 08, 2006 6:54

si les variabls globales existent, c est bien pour les utiliser ^^ par exemple j'ai le prefixe de mes tables en varaible globale, je ne vais pas m amuser à la passer an argument de chaque fonction. par principe, mes variables globales ne sont jamais modifiées

shrom
WRInaute passionné
WRInaute passionné
 
Messages: 865
Inscription: Lun Juil 05, 2004 22:37

Message le Sam Juil 08, 2006 12:10

par principe, mes variables globales ne sont jamais modifiées


LOL.

On appelle cela des constantes.

Maintenant, si tu veux faire un code illisible, très dur à maintenir et à déboguer, libre à toi.


PS: ce n'est pas parce que ça existe que c'est forcément bien. Cf tout un tas d'imbécilités qui ont été introduites dans PHP pour des raisons aussi obscures les unes que les autres et dont les dev ont du mal à se séparer ( enfin ils ont décidé de faire du ménage en PHP6 ).


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités