Cyril Rabat


TP n°3 : rappels de PHP

Configuration de votre environnement de travail

Pour ce TP, vous aurez besoin d'un serveur Web avec un moteur PHP. Dans les salles machine, une solution consiste à utiliser la distribution uWamp (qui ne fonctionne que sous Windows). Elle comprend nottamment un serveur Apache et ne nécessite pas d'installation (elle fonctionne depuis une clef USB, par exemple). Téléchargez-le depuis le site officiel ( page de téléchargement de uWamp) au format zip et dézippez-le sur votre compte (ou sur une clef). Pour démarrer, exécutez le programme UwAmp.exe. Comme pour une distribution classique (comme Wamp, Lamp...), les scripts doivent être placés dans le répertoire www. Une fois le serveur démarré, testez directement son bon fonctionnement depuis  http://localhost/.

 

Vérifiez que la version de PHP est au moins 7.0 (le mieux est d'utiliser une version 7.2).

Premiers pas

Le but de cet exercice est de faire quelques rappels en PHP.

Questions

  1. Créez un fichier index.html permettant de générer une page HTML dans laquelle vous affichez bonjour.
  2. Vérifiez le bon fonctionnement du serveur à partir de l'adresse donnée précédemment.
  3. Dans le fichier HTML, ajoutez un formulaire de connexion (login + mot de passe) qui se dirige vers la page traitement.php. Dans le script PHP, vous affichez simplement les informations saisies par l'utilisateur en réalisant les vérifications d'usage.
  4. Nous supposons qu'un fichier texte, nommé password.txt contienne la liste des couples login/mots de passe : un couple par ligne, login et mot de passe séparés par un ';'. Le script doit vérifier maintenant que le login/mot de passe saisis sont bien compris dans ce fichier.
  5. Est-il possible d'accéder depuis un navigateur au fichier de mot de passe ? Pour tester, saisissez le nom du fichier dans l'URL.
  6. Trouvez une solution pour empêcher cet accès direct.

Cookie

Pour rappel, l'installation d'un cookie en PHP passe par l'utilisation de la fonction setcookie.

Questions

  1. Consultez le manuel PHP  page de setCookie pour prendre connaissance des différents paramètres de cette fonction.
  2. Quelle(s) est/sont la/les différence(s) entre un cookie classique et un cookie de session ? Quels paramètres sont nécessaires pour faire un cookie de session ?
  3. Créez deux scripts PHP. Le premier vérifie si le cookie n'existe pas et en crée un dont la durée de vie est de 1 minute. Un message est affiché pour indiquer si le cookie vient d'être créé ou non. Un lien est affiché pour accéder au second script. Le deuxième script permet uniquement d'afficher la valeur du cookie seulement s'il existe et un message d'erreur sinon.
  4. Comment détruire un cookie ? Modifiez le premier script et à la place du lien vers le second script, créez deux liens. L'un appelle le second script normalement. Le second appelle le second script en lui demandant de supprimer le cookie.
  5. Nous souhaitons réaliser un historique de navigation en exploitant les cookies. Créez un site avec plusieurs pages (index1, index2, etc.). Sur chaque page, vous devez afficher les dernières pages visitées. L'utilisateur a la possibilité de cliquer sur les dernières pages visitées et de vider l'historique. L'ensemble des fonctionnalités devra être écrit dans une classe Historique.

Session

Nous souhaitons réaliser un système basique d'authentification. Un formulaire permet de se connecter au site. Sur chaque page, nous souhaitons vérifier qu'un utilisateur est bien connecté. Pour cela, nous écrivons une classe Utilisateur. Lors de la connexion (réussie), un objet Utilisateur est placé en session contenant les informations sur l'utilisateur (nom et prénom, par exemple).

Questions

  1. Écrivez les différentes méthodes nécessaires pour réaliser les fonctionnalités demandées.
  2. Lorsqu'un utilisateur se connecte, on souhaite pré-remplir le formulaire avec le login précédemment saisi. Proposez une solution à l'aide des cookies.

Version de cette page Mardi 25 Septembre 2018

© Cyril Rabat 2018

Connexion

Mot de passe perdu

Dernières nouvelles

15/10/2018 Tous les étudiants de la Licence Informatique ont réunion sur la mobilité internationale, Mercredi 17 Octobre, de 13h30 à 14h00 (et non à 12h30), en Amphi 3.
02/10/2018 Pour la deuxième année consécutive, l'URCA est partenaire de l’événement Coding Battle. Tous les étudiants de Licence et de Master sont appelés à y participer le 17 octobre de 19h à 21h.
01/10/2018 Les emplois du temps sont maintenant accessibles depuis la page de la scolarité.
27/09/2018 Une page a été créée pour vous permettre d'obtenir toutes les informations concernant les stages pour la Licence. Contactez le responsable pour plus d'informations.

Contact

Courriel :
cyril.rabat [at] univ-reims.fr

Téléphone :
+33-326-91-33-81

Fax :
+33-326-91-33-97

Facebook :
lien Facebook direct