lundi 1 avril 2013

Programmer avec register_globals à off

Quand on apprend à programmer, on ne sais pas tout de suite ce qu'il faut faire, ou, ne pas faire. Les choses qui sont indispensables, les choses superflues... Ce petit récapitulatif n'est pas exhaustif, mais, j'espère qu'elle vous aidera pour débuter sans faire les même erreurs que moi :) Ici, je suppose que vous avez néanmoins déjà un minimum d'expérience en programmation PHP.

Les variables
Depuis PHP plus récent que la version 4.1.0, les serveur sont générale configurer avec les variables globales à OFF. Ça veut dire quoi?
 En gros, vous devez précisez la provenance de chaque variables.
exemple :

* Dans l'url : index.php?page=truc , $page est récupéré avec $_GET[page]
* Par un formulaire : <form type="input" name="page"> , $page est récupéré avec $_POST[page]
* D'une sessions : Les sessions sont particulière, on déclare une sessions grace au tableau $_SESSION[].
Ex : <?php sessions_start(); $_SESSION[page]="accueil"; ?>

Il en existe d'autre comme $_SERVER[] et $_ENV[], mais, elle sont moins importante au début. Du moins, je trouve. Pour une liste des variables, voir : les types de variables PHP .

Tout cela pour dire que vous avez peut être appris que l'on pouvais faire ceci :
<?php
echo $page;
?>

pour afficher la variable qui provient de l'url index.php?page=accueil.
On PEUT le faire sur certain serveur encore, MAIS, imaginer que vous avez un formulaire avec un champs qui s'appelle "page".
Le code le voici :
<form type="input" name="page" value="accueil">

Sur la page (recup.php), qui récupère les donnée du formulaire, on écrirai :
<?php
echo $page;
?>


Et, si maintenant, je fais ceci :
recup.php?page=coucou

La page recup.php va afficher la variable $page de l'url, et non celle du formulaire.

Ce n'est qu'un exemple tout bête, mais il faut TOUJOURS programmer en utilisant les bonnes variable pour chaque type !
$_GET pour l'url
$_POST pour les formulaire
$_SESSION pour les sessions
$_COOKIE pour les cookies

Aucun commentaire:

Enregistrer un commentaire