Module M2105 - RT web dyna - TD/P 2

En cas de problèmes avec le démarrage d'apache :
  • Lancer le bash setup-xampp.bat du dossier de xampp
  • Démarrer xampp-control
  • Démarrer le serveur Apache
  • Tester la réponse du serveur en allant à l'adresse http://127.0.0.1 dans un navigateur client

Notions abordées

  • Formulaires
  • Tableaux associatifs
  • Mémorisation des données du client de manière temporaire :
    • sessions
    • cookies

Préambule

  • En invite de commande ou à partir de l'explorateur, aller à la racine de votre serveur web local {xampp-folder}/htdocs où {xampp-folder}=dossier de base de xampp
  • Créer éventuellement un dossier tps{votreNom}{votreNom}=votre nom
  • Créer un sous dossier de tps{votreNom} nommé tp2
  • Aller à l'adresse
    http://127.0.0.1/tps{votreNom}/tp2

Exercices

Il s'agit de préparer un module permettant la réalisation de QCM.

Intro

  1. Créer un fichier functions.php qui contiendra toutes les fonctions implémentées dans la suite du TP
  2. Créer la fonction getHeader($startSession,$title) permettant d'insérer l'en-tête HTML5 d'une page, où $startSession est un booléen permettant de démarrer éventuellement la session, et où $title est le titre de la page
  3. Créer la fonction getFooter() permettant d'inclure la fermeture du body et de la page.

Exercice 1

  1. Créer un formulaire permettant à l'utilisateur de saisir son nom
  2. Valider vers une page créant une variable de session de nom user stockant le nom saisi
  3. Afficher le nom saisi pour contrôle
  4. Créer une page de test permettant d'afficher toutes les variables de session (elle servira pour la suite à vérifier le contenu de la session)

Exercice 2

  1. Ajouter la possibilité pour l'utilisateur d'être reconnu automatiquement à sa prochaine visite sur la page (case à cocher dans le formulaire de saisie du nom), en créant un cookie de durée de vie 5 minutes, mémorisant le nom saisi.
  2. La reconnaissance automatique activée doit permettre à l'utilisateur d'arriver sans passer par la connexion à une page recoAuto.php affichant un message de reconnaissance mentionnant son nom.

Exercice 3

  1. Réaliser le formulaire ci-dessous
  2. le post du formulaire doit permettre de mémoriser le navigateur favori dans une variable de session navigateur
  3. Afficher le résultat du POST pour vérification

Exercice 4

  1. Réaliser le formulaire ci-dessous, en tenant compte du fait que les checkbox vont produire un tableau de valeurs (les cases cochées)
  2. le post du formulaire doit permettre de mémoriser les réseaux sociaux utilisés dans une variable de session socialNetworks
  3. Afficher le résultat du POST pour vérification

Exercice 5

  1. Créer une page reset.php permettant de fermer la session et de détruire l'ensemble des variables définies.
  2. Afficher le résultat de la fermeture, et proposer une nouvelle connexion (accès à la page de l'exercice 1)

Exercice 6

  1. Créer une page resetCookie.php permettant de supprimer le cookie créé à l'exercice 2.
  2. Appeler resetCookie depuis un bouton présent sur une nouvelle page affichant les informations de cookie de l'utilisateur

Exercice 7

  • Les questions du QCM et les réponses possibles sont stockées dans un tableau associatif initialisé de la manière suivante :

<?php
function getQuestions(){
$questions=array();

$questions[]=["Quel est votre navigateur favori ?",
				["multiple"=>false,
					"reponses"=>["Chrome"=>1,"Firefox"=>2,"IE"=>3,"Opera"=>4,"Autre"=>10]
				]
			];

$questions[]=["Quels réseaux sociaux utilisez vous fréquemment ?",
				["multiple"=>true,
					"reponses"=>["Facebook"=>1,"Twitter"=>2,"Badoo"=>3,"Google+"=>4,"Autre"=>10]
				]
			];
return $questions;
}

  1. Créer une fonction afficheQuestions($questions) parcourant le tableau et affichant la liste des questions comme ci-dessous
  2. Créer une page testant la fonction afficheQuestions

Exercice 8

  1. Créer une fonction afficheQuestion($index) affichant une question pour intégration à un formulaire, $index étant le numéro de la question à afficher.
  2. Réunir les fichiers des exercices 3 et 4 en utilisant cette fonction, le numéro de la question à afficher sera passé dans l'URL sous la form ?num=1

Exercice 9

  • Créer une fonction getButtons($index) permettant d'afficher les boutons submit gérant le déplacement entre les questions du QCM, $index est le numéro de la question active.

Pour un questionnaire de 3 questions, getButtons doit produire les résultats suivants :

getButtons(0);

getButtons(1);

getButtons(2);

Exercice de Synthèse

Il s'agit maintenant d'utiliser les sources des exercices précédents pour permettre le scénario suivant :

  1. L'utilisateur arrive sur la page d'accueil
    • S'il n'est pas connecté
      • en présence d'un cookie → affichage des infos utilisateur + lien vers question 1 du QCM
      • sinon → affichage formulaire de connexion
    • sinon → affichage des infos utilisateur + lien vers question 1 du QCM
  2. Affichage et réponse à chaque question du QCM
  3. possibilité de naviguer entre les questions
  4. Affichage des réponses en fin et possibilité de déconnexion
  5. Déconnexion
php-rt/tp2-old.txt · Dernière modification: 2018/02/13 02:04 par jcheron
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0