Administrateur PHPfrance |
3131 Messages
04 juil. 2005, 15:23
Les changements induits par register_globals à Off (c'est une option importante, plus personne aujourd'hui ne code en register_globals à On, elle est à Off par défaut partout ou devrait l'être) :
===============------------------------------
- Une variable passée par url
script.php?variable=valeur n'est plus accédée par
$variable mais par
$_GET['variable'] (utilisation du tableau superglobal $_GET).
===============------------------------------
- Une variable passée par formulaire
<form method="POST" ...>...<input type="text" name="variable" value="valeur" />... n'est plus accédée par
$variable mais par
$_POST['variable'] (utilisation du tableau superglobal $_POST). Si la méthode du formulaire n'est pas POST, mais GET, les variables sont passées par url et c'est la première méthode.
===============------------------------------
- La manipulation des sessions n'est pas la même. Les fonction
session_register() & cie sont désuées. On préfèrera l'utilisation directe du tableau superglobal $_SESSION.
// ouverture d'une session utilisateur
session_start();
// déclaration ou modification d'une variable de session : pas de session_register !
$_SESSION['variable'] = 'valeur';
// utilisation d'une variable de session
echo $_SESSION['variable'];
// vérification de l'existence d'une variable de session
if (isset($_SESSION['variable'])) {
// la variable existe dans la session
}
else {
// elle n'existe pas
}
===============------------------------------
- idem pour les cookies (utilisation du tableau superglobal $_COOKIE) et pour l'upload de fichier (tableau superglobal $_FILE ou $_FILES j'oublie tout le temps).
===============------------------------------
Le safe_mode implique d'autres restrictions que je n'ai pas en tête, mais a priori pour des scripts classiques, seul le register_globals pose vraiment problème.
Note que si tu suis ces bonnes pratiques, ton script fonctionnera en mode register_globals=Off, mais AUSSI register_globals=On. C'est donc la bonne façon de faire
