| auteur : Cyberzoide | Le rôle des en-têtes est d'échanger des méta-informations (informations à propos des informations échangées que sont les pages html générées ou non dynamiquement à partir de PHP) entre le serveur et le client.
Exemples d'en-têtes
Server: Apache/1.3.9 (Unix) Debian/GNU qui renseigne le client sur la nature du serveur distant
Last-Modified: Sun, 07 Apr 2002 14:30:30 GMT qui donne la date de dernière modification du document
Envoyer des en-têtes
La commande header() du PHP permet l'envoi d'en-têtes personnalisés. Par exemple :
header(" Location : home2 . php3 " );
|
pour rediriger le navigateur sur la page "home2.php3"
Les en-têtes peuvent servir à la redirection, à l'authentification, à l'envoi d'images au navigateur...
|
lien : Le Protocole HTTP
|
| auteur : Cyberzoide | Pour effectuer une authentification HTTP, vous pouvez utiliser un fichier .htaccess, mais vous pouvez également le faire au travers d'un script PHP en renvoyant au navigateur les en-têtes HTTP adéquats <?php
if (! isset($ _SERVER [ ' PHP_AUTH_USER ' ] )) {
Header(" WWW - Authenticate : Basic realm = \ " mon domaine\ " " );
Header(" HTTP / 1 . 0 401 Unauthorized " );
echo " dommage\n " ;
exit;
} else {
echo " salut " . $ _SERVER [ ' PHP_AUTH_USER ' ] . " < br / > " ;
echo " ton mot de passe est : " . $ _SERVER [ ' PHP_AUTH_PW ' ] ;
}
?>
|
La fonction header() envoie des en-têtes HTTP au navigateur. Ce dernier, en voyant "WWW-Authenticate", va afficher une petite boite de dialogue pour la saisie du login et du mot de passe qui seront mis respectivement dans les variables d'environnement de PHP : $_SERVER['PHP_AUTH_USER'] et $_SERVER['PHP_AUTH_PW'].
Une fois les login et mot de passe du visiteur récupérés, il faut les controler (avec une base de données par exemple).
Si l'authentification a échoué (l'utilisateur n'est pas dans la base par exemple), il y a plusieurs choix possibles :
le rediriger à l'aide la fonction header() : header(" Location : pagerefus . php " );
|
arrêter le script à l'aide de la fonction die() : die(" stop ! espèce d ' intrus ! " );
|
|
| auteur : Jérôme | Toutes les informations concernant le navigateur utilisé par l'internaute se trouvent dans l'élément HTTP_USER_AGENT du tableau $_SERVER (register_globals = Off dans le php.ini) ou dans la variable $HTTP_USER_AGENT (register_globals = On).
A vous ensuite d'utiliser les fonctions de manipulation des chaînes de caractères pour extraire les infos qui vous intéressent.
|
| auteurs : Julp, Husqvarna, Guillaume Rossolini | <?php
$ user_agent = getenv(" HTTP_USER_AGENT " );
if ((strpos($ user_agent , " Nav " ) ! = = FALSE ) | | (strpos($ user_agent , " Gold " ) ! = = FALSE ) | |
(strpos($ user_agent , " X11 " ) ! = = FALSE ) | | (strpos($ user_agent , " Mozilla " ) ! = = FALSE ) | |
(strpos($ user_agent , " Netscape " ) ! = = FALSE )
AND (! strpos($ user_agent , " MSIE " ) ! = = FALSE )
AND (! strpos($ user_agent , " Konqueror " ) ! = = FALSE )
AND (! strpos($ user_agent , " Firefox " ) ! = = FALSE )
AND (! strpos($ user_agent , " Safari " ) ! = = FALSE ))
$ browser = " Netscape " ;
elseif (strpos($ user_agent , " Opera " ) ! = = FALSE )
$ browser = " Opera " ;
elseif (strpos($ user_agent , " MSIE " ) ! = = FALSE )
$ browser = " MSIE " ;
elseif (strpos($ user_agent , " Lynx " ) ! = = FALSE )
$ browser = " Lynx " ;
elseif (strpos($ user_agent , " WebTV " ) ! = = FALSE )
$ browser = " WebTV " ;
elseif (strpos($ user_agent , " Konqueror " ) ! = = FALSE )
$ browser = " Konqueror " ;
elseif (strpos($ user_agent , " Safari " ) ! = = FALSE )
$ browser = " Safari " ;
elseif (strpos($ user_agent , " Firefox " ) ! = = FALSE )
$ browser = " Firefox " ;
elseif ((stripos($ user_agent , " bot " ) ! = = FALSE ) | | (strpos($ user_agent , " Google " ) ! = = FALSE ) | |
(strpos($ user_agent , " Slurp " ) ! = = FALSE ) | | (strpos($ user_agent , " Scooter " ) ! = = FALSE ) | |
(stripos($ user_agent , " Spider " ) ! = = FALSE ) | | (stripos($ user_agent , " Infoseek " ) ! = = FALSE ))
$ browser = " Bot " ;
else
$ browser = " Autre " ;
echo $ browser ;
|
Je pense que c'est assez explicite, cette méthode de procéder est beaucoup plus sûre que d'employer la fonction get_browser() qui a besoin du fichier browscap.ini (son gros problème est qu'elle ne reconnaît pas le navigateur si plusieurs sont installés sur le système !).
|
| auteur : Julp | <?php
$ user_agent = getenv(" HTTP_USER_AGENT " );
if (strpos($ user_agent , " Win " ) ! = = FALSE )
$ os = " Windows " ;
elseif ((strpos($ user_agent , " Mac " ) ! = = FALSE ) | | (strpos($ user_agent , " PPC " ) ! = = FALSE ))
$ os = " Mac " ;
elseif (strpos($ user_agent , " Linux " ) ! = = FALSE )
$ os = " Linux " ;
elseif (strpos($ user_agent , " FreeBSD " ) ! = = FALSE )
$ os = " FreeBSD " ;
elseif (strpos($ user_agent , " SunOS " ) ! = = FALSE )
$ os = " SunOS " ;
elseif (strpos($ user_agent , " IRIX " ) ! = = FALSE )
$ os = " IRIX " ;
elseif (strpos($ user_agent , " BeOS " ) ! = = FALSE )
$ os = " BeOS " ;
elseif (strpos($ user_agent , " OS / 2 " ) ! = = FALSE )
$ os = " OS / 2 " ;
elseif (strpos($ user_agent , " AIX " ) ! = = FALSE )
$ os = " AIX " ;
else
$ os = " Autre " ;
echo $ os ;
|
Pour savoir quel système d'exploitation est utilisé par le visiteur, il faut tester les différents systèmes d'exploitation grâce à la fonction ereg() sur la variable $HTTP_USER_AGENT qui renvoie plusieurs informations sur le client.
|
Consultez les autres F.A.Q.
Les sources présentés sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2003
Developpez LLC. Tous droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérêts.
Cette page est déposée à la SACD.
|