![]() |
Formation PHP |
||
|
|||
$_SERVER : ce sont des valeurs utiles que nous donne le serveur.
Pour accéder à ces informations, il faut indiquer ce qu'on demande exactement entre crochets (vu que c'est un array)
$_SERVER['PHP_SELF'] : c'est le chemin de la page que vous êtes en train d'exécuter, par rapport à la racine de votre site web.
Exemple : si vous êtes sur la page http://www.monsite.com/scripts/monscript.php, alors $_SERVER['PHP_SELF'] aura pour valeur : /scripts/monscript.php
$_SERVER['HTTP_REFERER'] : c'est l'url de la page qui a amené le visiteur sur la page courante. Cela peut être utile notamment pour faire des statistiques : vous saurez par exemple que le site "supersite.com" a fait un lien vers votre site et vous amène des visiteurs
$_SERVER['REMOTE_ADDR'] : sans aucun doute l'information la plus intéressante de $_SERVER. Elle nous donne l'adresse IP du client qui a demandé à voir la page.
On se servira de cette variable plusieurs fois dans les prochains TP (pour repérer un même visiteur), donc souvenez-vous qu'elle existe !
$_ENV : ce sont des variables d'environnement, toujours données par le serveur. Plus précisément, le système d'exploitation (Linux) donne ces informations.
Mais bon, il n'y a rien de vraiment bien utile et de toute façon je suis incapable de vous donner une liste de ce que renvoit cette superglobale. Donc on l'oublie
$_GET : vous la connaissez bien, c'est elle qui vous donne les valeurs des informations indiquées dans l'url.
Par exemple, si la page appelée est :
http://www.site.com/mapage.php?jour=18&mois=avril&annee=2000
... on aura une superglobale $_GET découpée en 3 parties :
$_POST : c'est là-dedans que vous venez récupérer les informations issues d'un formulaire.
$_FILES : cette superglobale est utilisée lorsqu'on envoie des fichiers sur le serveur à partir d'un formulaire..
$_SESSION : c'est là-dedans que l'on retrouve les variables de session.<
$_COOKIE : C'est là-dedans que l'on retrouve les valeurs des cookies enregistrés sur l'ordinateur du visiteur.
Les sessions en PHP permettent de sauvegarder des variables de page en page pendant une certaine durée prédéfinie par PHP (et modifiable bien entendu).
Chaque utilisateur ayant besoin des sessions se voit attribuer un identifiant unique appelé ID de session.
Cet identifiant est stocké sur le poste de l'internaute sous forme d'un cookie ou transite via l'URL si l'option session.use_trans_sid est à 1 (ou On) dans le fichier php.ini.
Utiliser la méthode du cookie est plus que recommandée : un identifiant de session dans l'URL empêche de retenir l'adresse d'une page simplement par le visiteur néophyte, cela rallonge donc l'adresse de votre page. Cela nuit également au référencement de votre page. En effet, l'identifiant étant unique, lorsque le robot du moteur de recherche scanne votre site, il ne retombera jamais sur la même URL plusieurs fois de suite.
Avant d'utiliser les sessions sur une page, on doit toujours utiliser la fonction session_start() placée avant tout envoi de code HTML, et donc généralement tout en haut de votre page PHP :
Pourquoi session_start() doit-elle être placée de la sorte ? et bien parce que si PHP utilise les cookies pour repérer quel est l'id de session utilisé par l'internaute, il va écrire cet id de session dans un cookie. Or, le protocole HTTP fonctionne de telle sorte que les en-têtes (qui permettent de dire à votre navigateur "crée un cookie ayant tel nom et telle valeur") sont envoyés avant le premier caractère HTML transmis.
Cela veut dire que dès que vous transmettrez un caractère HTML, les en-têtes seront envoyés et vous ne pourrez plus les modifier, vous ne pourrez donc plus écrire le cookie de session.
En général, si vous faites une maladresse de ce style, vous vous retrouverez avec une erreur de headers already sent.
Dès que l'on ferme le navigateur la session est détruite.
Sauf à configurer le fichier php.ini avec session.lifetime qui fixe la durée de vie, en secondes, du cookie envoyé au client. La valeur 0 signifie "jusqu'à ce que le client soit fermé". Par défaut à 0.
Donc si on le laisse à zéro la session dure jusqu'à la fermeture du navigateur, pour laisser les données durant 30 minutes, il faut remplacer 0 par 1800 (= 30 minutes * 60 secondes dans une minute).
session.lifetime = 0
La commande session_unregister() supprime une variable dans la session courante. Elle a pour syntaxe :
Elle retourne TRUE si success, FALSE sinon.
Il est aussi possible de purger toutes les variables de la session avec
Si vous utilisez le tableau superglobal $_SESSION, il suffit alors d'utiliser unset() :
La commande session_write_close() écrit les valeurs des variables de session sur le serveur et ferme la session.
Enfin, si vous voulez détruire la session du visiteur, vous pouvez faire un lien "Déconnexion" qui amène vers une page qui fait appel à la fonction session_destroy()
La commande session_destroy() détruit toutes les données enregistrées d'une session.
Cette dernière commande est la plus utilisée car n'impose aucune sauvegarde au serveur. Retourne TRUE en cas de succès, et FALSE sinon.
Un cookie, c'est un petit fichier que l'on enregistre sur l'ordinateur du visiteur.
Ce fichier contient du texte et permet de "retenir" des informations sur le visiteur.
Par exemple, vous inscrivez dans un cookie le pseudo du visiteur, comme ça la prochaine fois qu'il viendra sur votre site vous pourrez lire son pseudo en allant regarder ce que son cookie contient.
Chaque cookie peut contenir plusieurs informations.
Exemple
Créer 2 cookies: Un qui retient mon pseudo pendant un an, et un autre qui retient le nom de mon pays
Définir et afficher un cookie
Définir un cookie, l'afficher sur une autre page
Pour supprimer un cookie, Il suffit de déclarer le cookie sans mettre de valeur
La fonction fopen() renvoie true si l'ouverture est possible et false si elle ne l'est pas.
Afficher le contenu d'un fichier dans un navigateur
La fonction fgets() permet d'extraire une chaîne d'une certaine longueur.
Il faut aussi savoir que la fonction extrait la chaîne de la longueur précise définie en argument, plus un caractère et que la fonction s'arrête aux sauts de lignes
fgetc() permet d'extraire le premier caractère du fichier
La fonction fgets() permet d'extraire une chaîne d'une certaine longueur.
Il faut aussi savoir que la fonction extrait la chaîne de la longueur précise définie en argument, plus un caractère et que la fonction s'arrête aux sauts de lignes
La fonction fgetss() a quasiment la même utilité que la fonction fgets() sauf qu'elle n'extrait ni les balises HTML, ni les balises PHP
Exemple :
Pour un fichier contenant : '< b>Bonjour !< /b>< br>Test de la fonction fgetss', la fonction ne renverra que les caractères, la mise en forme HTML sera ignorée : 'Bonjour !Test de la fonction fgetss'
La fonction fread() permet de lire une chaîne de caractère dans un fichier ouvert, jusqu'a la longueur indiquée en argument
Pour écrire dans un fichier, on peut utiliser au choix la fonction fwrite() ou fputs()
La fonction retourne TRUE si l'écriture se passe normalement, sinon elle retourne FALSE.
Attention toutefois : le fichier doit bien être ouvert en mode écriture : w, a ou r+.
Pour vérifier si un fichier existe, on utilise la fonction file_exists()
il faut utiliser la fonction rename()
C'est la fonction unlink() que l'on utilise
| Nous sommes le 30/07/2010 | LC Formateur |