Formation à PHP - TP1

Licence Professionnelle, Université Lyon 1, Bourg-en-Bresse


Le but de ce TP est de se familiariser avec le langage PHP, de présenter les instructions de base (structure de contrôle, manipulation de fichier) et d'étudier l'interaction PHP-HTML.
On se reportera en cas de besoin à la documentation officielle de PHP. Les transparents du cours sont également disponibles.
On utilisera de préférence un navigateur de type Netscape ou Mozilla pour tester les différents scripts. En effet, les navigateurs de type Internet Explorer, en cas de rappel de page, délivrent souvent une version cached, masquant ainsi une éventuelle modification de script.
Un compte-rendu au format HTML est demandé individuellement pour chaque étudiant. Il comportera des extraits pertinents de code PHP, ainsi que des commentaires sur ce code (validité, limitation, améliorations, etc...)

Activité 1 - Premiers pas

Vous avez utilisé la variable $_SERVER["HTTP_USER_AGENT"] (ou $HTTP_SERVER_VARS['REMOTE_ADDR']) dans la question précédente. PHP dispose en fait d'un certains nombre de variables prédéfinies, sous formes de tableaux associatifs, visibles automatiquement sans avoir à les déclarer en tant que global. Pour cette raison, elles sont appelées auto globales. Ces variables portent différents types d'informations liées au serveur ($_SERVER), aux requêtes ($_GET, $_POST, $_REQUEST), à l'environnement ($_ENV), etc... Ces variables ont été introduites à partir de la version 4.1.0 et remplacent les variables de type $HTTP_*_VARS (qui existent toujours néanmoins). Nous verrons plus tard dans le TP comment utiliser certaines de ces variables.

Activité 2 - Traitement des formulaires

PHP se révèle être particulièrement efficace dans le traitement des formulaires. Nous allons étudier ici un exemple de formulaire d'inscription: la personne est censée fournir ses noms, prénoms (obligatoires), sexe, âge et une liste de centre d'intérêt, afin de s'inscrire à un service quelconque.

Plusieurs possibilités existent pour récupérer les données soumises par le formulaire. La plus élégante consiste à passer par les variables $_POST, $_GET ou $_REQUEST, suivant la requête. Par exemple, si le champ nom était décrit dans le formulaire par une balise du type <input type="text" name="nom">, la valeur saisie se trouve dans $REQUEST['nom'].
Une autre possibilité consiste à utiliser directement $nom_de_variable (par exemple $nom dans l'exemple précédent). Ceci ne fonctionne que si l'option register_globals est positionné à on dans le script php.ini. Mais cette manière de faire est déconseillée pour des raisons de sécurité. Voir le chapitre sur la sécurité de la documentation PHP à ce sujet. Notez que par défaut, register_globals est positionné à off.

Activité 3- Création d'un compteur

Nous allons maintenant créer un compteur "intelligent" d'accès de pages, en utilisant divers mécanismes. Il s'agit donc de pouvoir être capable de comptabiliser le nombre de fois qu'une page est appelée.


TP du 5/02/2004 - nicolas.zlatoff@liris.cnrs.fr