Langages et normes: Difference between revisions

Line 29: Line 29:
* L'appel aux variables superglobales PHP doit passer par les opérateurs dédiés $_COOKIES, $_SERVER, $_ENV mais par la fonction dolibarr GETPOST() pour récupérer les contenus de $_GET ou $_POST.
* L'appel aux variables superglobales PHP doit passer par les opérateurs dédiés $_COOKIES, $_SERVER, $_ENV mais par la fonction dolibarr GETPOST() pour récupérer les contenus de $_GET ou $_POST.
Les autres opérateurs ($HTTP_SERVER_GET, ...) ayant été passés en deprecated au sein de PHP, ne doivent plus être utilisés. Ainsi le code doit fonctionner y compris quand l'option '''register_long_arrays''' est à off.
Les autres opérateurs ($HTTP_SERVER_GET, ...) ayant été passés en deprecated au sein de PHP, ne doivent plus être utilisés. Ainsi le code doit fonctionner y compris quand l'option '''register_long_arrays''' est à off.
De plus, le code doit fonctionner quand l'option PHP '''register_globals''' est à off (recommandé par PHP) aussi bien que quand l'option '''register_globals''' à on (par défaut sur de nombreuses installations).
De plus, le code doit fonctionner aussi bien quand l'option PHP '''register_globals''' est à off (recommandé par PHP) que quand l'option '''register_globals''' est à on (par défaut sur de nombreuses installations).


* Pas d'utilisation de la variable '''PHP_SELF'''. Utiliser à la place $_SERVER["PHP_SELF"]. Notez aussi que le framework Dolibarr passe une routine pour rendre plus sure le contenu du $_SERVER["PHP_SELF"] (dans le fichier main.inc.php, donc avant tout traitement métier)
* Pas d'utilisation de la variable '''PHP_SELF'''. Utiliser à la place $_SERVER["PHP_SELF"]. Notez aussi que le framework Dolibarr passe une routine pour rendre plus sûr le contenu du $_SERVER["PHP_SELF"] (dans le fichier main.inc.php, donc avant tout traitement métier)


* Quand plusieurs variables doivent être initialisées avec la même valeur, il faut utiliser plusieurs instructions:
* Quand plusieurs variables doivent être initialisées avec la même valeur, il faut utiliser plusieurs instructions: