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� :
- du site web vers le client : download ou d�chargement;
- du client vers le site web : upload ou chargement;
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