TP 2 PHP

Tous les exercices de ce TP seront r�alis�s dans votre r�pertoire ~/public_html/TP2_PHP.

Authentification Apache

Apr�s avoir lu l'aide-m�moire Apache, on va cr�er un r�pertoire AuthApache contenant un fichier .htaccess qui n�cessitera une authentification pour tout acc�s :
mkdir AuthApache;cd AuthApache;htpasswd -c .htpasswd un Cr�ation du fichier des mots de passe avec un utilisateur "un"
cat .htpasswd Affichage du fichier des mots de passe un:$apr1$rj4.....$OEZD1ySPhILc.IbJ40euO0
htpasswd .htpasswd deux Ajout d'un utilisateur "deux"
emacs index.html & Cr�er un fichier index.html
URL : localhost/~jdupont/TP2_PHP/AuthApache/index.html Acc�der au fichier sans probl�me cliquer ICI
emacs .htaccess Editer le fichier sp�cifiant les droits d'acc�s
AuthType Basic
AuthUserFile "/nfs1/.../AuthApache/.htpasswd"
AuthName "Le Domaine Priv�"
<Limit GET POST>
require valid-user
</Limit>
Sp�cifier les droits d'acc�s
URL : localhost/~jdupont/TP2_PHP/AuthApache/index.html Acc�der au fichier en essayant plusieurs utilisateurs invalides avant de choisir un (resp. deux) de mot de passe 1 (resp. 2)
cr�er d'autres fichiers et sous-r�p. Acc�der � ces fichiers, changer de site, revenir
Ecrire un script php permettant de changer son authentification. Script permettant de se r�authentifier en cliquant sur le bouton : Nouvelle authentification. cliquer ICI

Authentification PHP

On cr�e un r�pertoire AuthPhp dans lequel on cr�e un script php non prot�g� par Apache ni par php et qui affiche les informations de php :
emacs phpinfo.php
<?php phpinfo(); ?>
Afficher les informations ! cliquer ICI
recopier dans le r�pertoire TP2_PHP/AuthPhp les 2 fichiers suivants : index.php et inc-auth.php en supprimant l'extension .txt. Pour tester l'authentification, cliquer ICI
Apr�s s'�tre authentifi� via PHP, revoir phpinfo ! Les informations d'authentification sont valables pour toutes les pages du r�pertoire.
Revoir maintenant les informations d'authentification du r�pertoire "AuthApache" AuthApache/authinfo.php ! Les informations d'authentification restent valables sur la base de chaque r�pertoire.

Courrier PHP

Envoyer des courriels (emails) depuis un site web peut �tre r�alis� simplement en faisant appel � l'application de mail (kmail, outlook, messenger) par d�faut du syst�me. Pour cela, il suffit de d�finir un lien dont la r�f�rence (href) soit une URL du type mailto:un@dom.fr, deux@aine.com.

Par exemple, si vous cliquez sur le lien suivant, votre application de mail sera ouverte avec un et deux comme destinataires : cliquer ICI.

Une autre possibilit� consiste � �crire un formulaire html contenant des champs de saisie pour les destinataires, le sujet, le corps du message et qui lorsqu'il est soumis appelle un script php ex�cutant la fonction mail :

boolean mail ( string to , string subject , string message , string additional_headers , string additional_parameters )

mail poste automatiquement le message message � destination de to . Les destinataires multiples doivent �tre s�par�s par des virgules. Les emails avec pi�ces jointes ou contenus particuliers (comme les emails en HTML, par exemple), peuvent �tre r�alis�s avec cette fonction. Il faut respecter l'encodage MIME. Pour un exemple, cliquer ICI.

R�aliser ce formulaire en v�rifiant que les valeurs des champs sont conserv�s apr�s envoi du courriel.

T�l�chargement

Le t�l�chargement de fichier peut �tre effectu� :

D�chargement

Pour cela, il suffit de r�aliser un lien r�f�ren�ant le fichier � d�charger, par exemple : Cliquer ici. Si le type du fichier est affichable par le navigateur (comme c'est le cas ici), il sera affich� (donc d�charg�), sinon il sera propos� � l'utilisateur soit de sauver le fichier, soit de lancer l'application associ�e. Remarquons que tout lien peut �tre enregistr� en utilisant le bouton droit de la souris sur le lien.

Chargement

Principe : il faut r�aliser un formulaire de chargement envoyant une requ�te POST. L'action effectu�e (script) apr�s soumission doit v�rifier que le fichier charg� est du bon type et de la bonne taille puis l'utiliser depuis la zone temporaire (tmp/) ou il est charg�. Le fichier temporaire sera automatiquement effac� de la zone � la fin du script, s'il n'a pas �t� d�plac� ou renomm�. Par exemple, le formulaire sera :
<FORM ENCTYPE="multipart/form-data" ACTION="traitement.php" METHOD="POST">
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" value="1000">
Envoyez ce fichier : <INPUT NAME="fichier" TYPE="file" SIZE=15>
<INPUT TYPE="submit" VALUE="Envoyer le fichier">
</FORM>

R�diger un script php permettant de t�l�charger un fichier texte de moins de 5 caract�res puis le contenu de ce fichier sera affich�. Pour voir un exemple, Cliquer ici.

Session

Lire l'aide-m�moire PHP pour visualiser les fonctions de gestion de session puis r�aliser un script permettant de d�marrer une session puis d'enregistrer ou de supprimer des variables de sessions saisie dans un formulaire html comme dans l'exemple suivant.
Activer et d�sactiver les cookies dans votre navigateur. Remarquer qu'avec les cookies activ�s, une seule session peut �tre active m�me avec plusieurs fen�tres de navigateur, tandis qu'avec la r��criture d'URL, chaque fen�tre peut ouvrir sa propre session et que la session est perdue si on navigue et que l'on retourne sur la page session.php sans la variable PHPSESSID d�finie dans l'URL !

Cookie

Lire l'aide-m�moire PHP puis cr�er un script php permettant d'affecter une variable de cookie "nomUtilisateur" avec un champ saisi par l'utilisateur. Ce script affichera de plus l'ensemble des variables de cookie.
Ouvrez une session PHP et v�rifiez que le PHPSESSID appara�t bien ! Voir l'exemple suivant.
Exercice : simuler le panier (caddie) d'un site de commerce � l'aide de cookies associ� � chaque aricle et contenant le nombre d'articles command�s. Un formulaire permettra d'ajouter ou de retirer des articles du panier ! Voir l'exemple suivant.

Voil�, c'est fini ! La Correction de ce TP est visualisable avec la m�me m�thode que pour le TP1 PHP.
phpinfo.php
index.php
telecharger.php
cookie.php
petit.html
mail.php
paniercookie.php
session.php
decharge.php