Trucs pratiques

R�alisons maintenant quelque chose de plus puissant. Nous allons v�rifier le type de navigateur que le visiteur de notre site utilise. Pour cela, nous allons acc�der aux informations que le navigateur du visiteur nous envoie, lors de sa requ�te HTTP. Cette information est stock�e dans une variable. Les variables sont faciles � rep�rer, car elles commencent toutes par un signe dollar. La variable qui nous int�resse ici est $_SERVER['HTTP_USER_AGENT'].

Note: $_SERVER est une variable sp�ciale de PHP, qui contient toutes les informations relatives au serveur web. C'est une variable r�serv�e de PHP, et une superglobale. Reportez-vous aux pages du manuel traitant des Auto-globales (aussi connues sous le nom de super-globales). Ces variables sp�ciales ont �t� introduites en » PHP 4.1.0. Auparavant, il fallait utiliser les variables $HTTP_*_VARS, comme $HTTP_SERVER_VARS. Bien qu'obsol�tes, ces variables existent toujours. (Voir aussi la note sur l'ancien code.)

Pour afficher cette variable, nous pouvons simplement faire :

Exemple #1 Afficher le contenu d'une variable (�l�ment de tableau)

<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>

Un r�sultat possible du script pourra alors �tre :


Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Il y a de nombreux types de variables disponibles en PHP. Dans l'exemple ci-dessus, nous avons affich� un �l�ment de Tableau (Array). Les tableaux peuvent �tre tr�s utiles.

$_SERVER est juste une variable qui est automatiquement disponible dans votre script. Une liste de toutes les variables qui sont rendues disponibles est fournie dans la section Variables r�serv�es ou vous pouvez aussi en obtenir une liste compl�te en lisant l'affichage de la fonction phpinfo() utilis�e dans l'exemple de la section pr�c�dente.

Vous pouvez ajouter plusieurs commandes PHP dans une balise PHP, et cr�er de petits blocs de code qui r�alisent des op�rations plus complexes qu'un simple affichage. Par exemple, si nous voulons v�rifier que le navigateur est bien de la famille des Internet Explorer, nous pouvons faire cela :

Exemple #2 Exemple utilisant les structures de contr�le et les fonctions

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo 
'Vous utilisez Internet Explorer<br />';
}
?>

Le r�sultat de ce script, si vous utilisez Internet Explorer, sera :

Vous utilisez Internet Explorer<br />

Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une structure if. Si vous �tes familier avec les syntaxes de base du langage C, cela ne vous surprendra pas. Si vous ne connaissez pas assez le langage C ou un autre langage o� la syntaxe est similaire � celle ci-dessus, il vaudrait mieux que vous lisiez une introduction � PHP, et assimiliez les premiers chapitres, ou bien lisez le chapitre consacr� � la r�f�rence du langage.

Le second concept que nous avons introduit est la fonction strpos(). strpos() est une fonction int�gr�e � PHP, qui recherche la pr�sence d'une cha�ne dans une autre. Dans notre cas, nous avons recherch� la cha�ne "MSIE" dans la cha�ne $_SERVER['HTTP_USER_AGENT']. Si cette cha�ne est trouv�e, la fonction retourne sa position dans la cha�ne et, sinon, FALSE. Si elle ne retourne pas FALSE, la structure if re�oit TRUE et le code entre accolades {} est ex�cut�. Sinon, le code n'est pas ex�cut�. N'h�sitez pas � exp�rimenter d'autres exemples, � l'aide de if, else, et d'autres fonctions comme strtoupper() et strlen(). Chaque page de la documentation contient aussi des exemples. Si vous n'�tes pas s�r de l'utilisation de ces fonctions, vous devez lire la page du manuel "comment lire une d�finition de fonction" ainsi que la section sur les fonctions PHP.

Nous pouvons maintenant progresser et vous montrer comment utiliser le mode PHP, au milieu du code HTML :

Exemple #3 Passer du mode PHP au mode HTML et vice-versa

<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() n'a pas retourn� FALSE</h3>
<p>Vous utilisez Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() a retourn� FALSE</h3>
<p>Vous n'utilisez pas Internet Explorer</p>
<?php
}
?>

Un exemple de r�sultat obtenu dans ce script est :

<h3>strpos() n'a pas retourn� FALSE</h3>
<p>Vous utilisez Internet Explorer</p>

Au lieu d'utiliser une commande echo(), pour afficher du texte, vous pouvez utiliser du code HTML pur. Le point important a noter ici et que la logique de programmation est conserv�e. Seul un des deux blocs HTML sera affich�, suivant le r�sultat de la fonction strpos(). En d'autres termes, cela d�pend si la cha�ne MSIE a �t� trouv�e ou non.