exercices 2016-2017 Fichier

Transcription

exercices 2016-2017 Fichier
TP Web2 – 2016/2017
Séance 1 : Multimédia côté serveur
Objectif : Comprendre le mécanisme des entêtes HTTP pour la gestion des contenus multimédia :
fichiers binaires, images pdf. Découvrir les fonctions de manipulation d'images Exercice 1 : Découverte 1. Renvoyer un tableau HTML avec un content­type correspondant à un fichier excel :
application/???
2. Comparer la taille indiquée par l'affichage du fichier compression.php?calculer avec la taille
indiquée dans firebug. Que s'est­il passé ?
3. Testez les fichiers de sécurisation en vérifiant que vous pouvez accéder à une ressource qui n'est
pas située sous la racine du serveur (i.e. sous le répertoire www) 4. Dans quel champ peut­on trouver le type mime d'une image à l'aide de la fonction
getimagesize ? Avec la fonction exif_read_data ? Comment savoir si une image a une miniature ? Les fichiers armand.jpeg et villa.jpeg ont­il une miniature ? Afficher la miniature contenue dans le fichier villa.jpg, Quelle est sa taille ?
5. Utiliser la librairie gd2 pour réaliser les exemples suivants : • Dessiner un carré noir sur fond blanc
• Afficher un texte dans une police de caractères téléchargée sur le site 1001 free fonts
• Dessiner un échiquier de taille configurable
• Dessiner un diagramme de type « camembert » en utilisant des données passées dans un
tableau associatif
◦ Ajouter une légende et des secteurs de couleurs différentes
◦ Utiliser un fond transparent
• Générer la miniature d'une image passée en paramètre, à l'aide de la fonction imagecopyresized
• Ajouter un logo dans une image
◦ à une position donnée avec une taille donnée
◦ dans le coin en haut à droite avec des contraintes de taille • Ajouter un texte semi­transparent en surimpression dans une image
• Ajouter un texte en bas d'une image ainsi qu'un logo en haut à droite
Exercice 2 : Image Captcha (Image anti­spam)
Objectif : Réaliser un module captcha complet, permettant de protéger simplement un formulaire
quelconque. Une page du serveur : « captcha.php » génère un chaîne de caractères aléatoire qu'elle stocke dans une
variable de session. Elle renvoie au navigateur une image dans laquelle les caractères ont subi des
rotations et des redimensionnements aléatoires pour que Les robots OCR ne puissent les reconnaître
Côté client, on appelle la page captcha.php à l'aide d'une balise image. • Un bouton permet de changer l'image au cas où l'utilisateur ne parvient pas à l'interpréter.
Comment éviter que le navigateur recharge l'image dans son cache ? • Un champ de formulaire permettra à l'utilisateur d'envoyer la valeur lue au serveur, dans la
page « recup_captcha », qui vérifie sa correspondance avec la chaîne enregistrée dans la variable
de session., et redirigera les données à la vraie cible du formulaire, passée comme champ caché
avec les données du formulaire. Quelle faille de sécurité présente notre solution ? Comment régler ce problème de manière élégante ? 3 : Galerie d'images
Compléter les fonctions de manipulation de fichiers/répertoires pour rendre l'explorateur fonctionnel. Déjà fait dans la correction : • Ajouter le code d'ajout de nouvelles images et de miniaturisation • Afficher 5 images par ligne
• Ajouter le code de suppression des images à l'aide de la commande unlink
• Ajouter le code de renommage des images à l'aide de la commande rename
• Ajouter le code de création d'un répertoire à l'aide de la fonction mkdir
◦ Ajouter le code de suppression d'un répertoire à l'aide de rmdir
A compléter : • Ajouter à la galerie un système d'identification permettant d'afficher les images de grande taille
uniquement si l'utilisateur est logué. • En fonction du statut de l'utilisateur (abonnement gratuit / premium), un copyright et un texte
en filigrane s'affichera si l'utilisateur n'a pas contracté l'abonnement payant. • On pourra sélectionner plusieurs images d'une galerie pour les télécharger toutes en un fichier
zip