Langages de développement Web - TP 4, 5 et 6


Initiation à PHP

Lors du TP précédent, vous avez commencé à entrevoir les possibilités de PHP pour générer du code HTML.
Si ce n'est pas encore fait, initialisez votre répertoire de travail sur saturnin (dans le tutoriel PHP, en bas de la page d'accueil).

Vous disposez à présent d'un espace de travail sur le serveur qui vous permet de télécharger vos fichiers HTML, CSS et PHP (écrits en local sur votre machine), et ainsi de permettre l'interprétation de vos scripts PHP. Attention : n'oubliez pas de télécharger vos pages sur le serveur après chaque modification locale !

Quelques bonnes habitudes à prendre pour l'utilisation de PHP :

  1. N'hésitez pas à utiliser des fonctions que vous aurez au préalable définies dans un fichier spécifique (nommé par exemple fonctions.php) que vous incluerez dans vos scripts.

  2. Tout traitement qui doit être reproduit à l'identique plus d'une fois doit être écrit dans une fonction. Ainsi les modifications éventuelles se feront directement dans le code de la fonction et celles-ci seront automatiquement propagées dans toutes les pages concernées.

  3. Ne perdez pas de vue que le code HTML généré à travers un script PHP doit toujours être "bien formé", c'est-à-dire qu'il contient les balises HTML <html>, <head> et <body>

Récupération des données à partir d'un formulaire

PHP donne la possibilité de récupérer des données venant d'un formulaire, soit par une méthode "post" ($_POST), soit par une méthode "get" ($_GET).

Dans le but de tester les données réceptionnées par un formulaire, créez une page "result_form.php" qui permet d'afficher toutes les valeurs venant d'un formulaire. On distinguera dans cette page les éléments venant de chacune des deux méthodes possibles d'envoi du formulaire.

Cette page est très utile pour la suite : vous permettra de contrôler, avant d'entreprendre des traitements, les données venant de vos formulaires, et en particulier les noms des zones de saisie qui sont souvent source d'erreurs.

Pour tester ce principe, créez la page de saisie ci-dessous et vérifiez les informations reçue depuis ce formulaire avec la page précédemment créée. Pensez également à appliquer les conseils donnés au début de cette page.

Pour anticiper un peu sur la suite, une fois le formulaire validé, créez une page de traitement qui réalise déjà la vérification des données saisies. On s'assurera que le libellé du rendez-vous est non vide, que les dates saisies existent réellement (par exemple, le 31 février n'existe pas) et que la date de fin est bien postérieure à la date de début. On affichera un message d'erreur relatif à l'erreur détectée.

Plus tard, vous reprendrez cette page pour réaliser l'ajout du rendez-vous dans la base de données.

Calendrier PHP

Codez le calendrier vu lors du premier TD. Ajoutez deux listes déroulantes permettant de choisir le mois et l'année, comme dans l'illustration ci-dessous. Vous pouvez également ajouter des liens permettant de passer au mois précédent/suivant et à l'année précédente/suivante.

Les sessions

A partir du formulaire d'identification d'un utilisateur décrit dans le TP précédent, on souhaite permettre d'ouvrir une session lorsque l'utilisateur a été reconnu. Consultez le tutoriel PHP pour connaître le fonctionnement des sessions.

  1. Ecrivez un script qui réalise l'ouverture de la session de l'utilisateur suite à son identification et qui redirige sur une page nommée "test_session.php" décrite au point 3. (pour l'instant, l'identification obéit à une règle simple, que nous vous laissons définir, par exemple un nom d'utilisateur et un mot de passe bien précis que le script PHP se chargera de vérifier).

  2. Ecrivez une fonction PHP qui permet de savoir si une session est bien ouverte et qui redirige sur la page d'identification si aucune session n'est commencée.

  3. Pour finir, créez la page "test_session.php" qui ne peut être accessible qu'une fois une session ouverte. Testez votre système en essayant d'y accéder après vous être identifié (ce qui doit normalement vous permettre de voir le contenu de "test_session.php") et en essayant d'y accéder sans vous être identifié (ce qui devrait normalement vous ramener à l'identification).

Ce mécanisme sera ensuite utilisé dans le projet pour forcer l'identification d'un utilisateur pour l'utilisation de l'agenda.