2010-01-04 4 views

Répondre

17

Ceci est une mauvaise pratique, mais pas à cause de l'espace.

// file foo.php 
$_SESSION['stuff to keep'] = 42; 

// file bar.php 
if ($_SESSION['stufft o keep'] == 42) frobnicate(); 

Ici, votre code se comporte mal, et le bug peut prendre un certain temps. Une bonne pratique consiste à utiliser un nom appliqué PHP, comme une constante de classe:

$_SESSION[Stuff::TO_KEEP] = 42; 

if($_SESSION[Stuff::TOO_KEEP] == 42) 
// error: no constant TOO_KEEP in class Stuff 

Vous pouvez alors définir cette constante à tout vous trouvez intéressant ou lisible, constante comme "stuff to keep" (avec des espaces). Bien sûr, extract() et le casting à object ne fonctionnera plus, mais vous ne devriez pas le faire de toute façon avec votre session.

Autoriser le texte saisi par l'utilisateur dans les clés de session est, bien sûr, un défaut de sécurité flagrant.

+0

Works: http://ideone.com/4OYl1B Do not: http: // ideone.com/51uC5D – Prasanth

3

Il ne causera pas un problème, mais les clés du tableau sont généralement considérés comme des noms de variables doivent donc être choisis avec les mêmes considérations

0

On dirait que l'ajout d'espaces inutiles à mon avis ... Je ne l'utilise généralement pas les espaces. Si vous le faites, assurez-vous de citer les clés du tableau.

8

Vous pouvez le faire, ça va marcher - et même si je ne le fais généralement pas quand je mets les touches de mes tableaux "à la main", il arrive parfois quand je reçois les clés d'un fichier (par exemple), et je n'ai jamais eu aucun problème avec cela.

Peut-être que cela pourrait causer une sorte de problème si vous utilisez les fonctions extract, cependant. S'il crée des variables avec des espaces dans leurs noms (ne sait pas si cela va) ce sera difficile (mais pas impossible) pour accéder à vos variables.

+0

+1 Bon point - l'extrait produira une erreur (avertissement?) S'il est demandé d'extraire un tableau dont les clés ont été invalidées –

Questions connexes