Apprendre comment créer un site Web pour les débutants


Gamme cours gratuit en HTML XHTML CSS et PHP

Recherche personnalisée

Site optimisé pour Firefox - Navigateur Internet gratuit

New Year's Web Hosting



Annuaire Webmaster

Les variables superglobales.

Les Superglobales sont des variables internes qui sont toujours disponibles, quelque soit le contexte Description
Énormément de variables prédéfinies en PHP sont "superglobales", ce qui signifie qu'elles sont disponibles quelque soit le contexte du script. Il est inutile de faire global $variable; avant d'y accéder dans les fonctions ou les méthodes.
Les variables superglobales sont :

    * $_GET
    * $_POST
    * $_COOKIE
    * $_SESSION
    * $_ENV
    * $_SERVER  
    
Nous avons déjà manipulé les variables $_GET  et  $_POST vous les reconnaissez donc.
On va voir $_COOKIE  et $_SESSION car elles sont les plus intéressantes à mon avis.

Mais avant sachez que les superglobales sont écrites en majuscules et commencent toutes par un _ (le trait 
de soulignement).
Les superglobales sont toutes des array.
Ces variables sont automatiquement créées par PHP à chaque fois qu'une page est chargée. Ces variables existent
 donc sur toutes les pages et sont accessibles partout d’où le nom globale.

$_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). Voici quelques-unes dont vous aurez peut-être à vous servir :

    * $_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.
    * $_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 tel site 
		a fait un lien vers votre site et vous amène des visiteurs.
    * $_ENV : ce sont des variables d'environnement, toujours données par le serveur.
    * # $_GET : Vous donne les valeurs des informations indiquées dans l'url.
Par exemple, si la page appelée est :
http://www.site.com/ma-page.php?jour=18&mois=avril&annee=2000
... on aura une superglobale $_GET en 3 parties :

    $_GET['jour'] = "18"
    $_GET['mois'] = "avril"
    $_GET['annee'] = "2000"

# $_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. Nous allons voir ce qu'est une 
	session en PHP plus loin dans ce chapitre.
* # $_COOKIE : de même, c'est là-dedans que l'on retrouve les valeurs des cookies enregistrés sur l'ordinateur 
	du visiteur. Nous étudierons les cookies dans ce chapitre.

Les sessions

Les sessions sont un moyen de conserver des variables sur toutes les pages de votre site. Jusqu'ici, on était arrivés à passer des variables de page en page via la méthode GET (en modifiant l'url : page.php?variable=valeur) et via la méthode POST (un formulaire quoi). Mais si on veut transmettre une ou plusieurs variables sur TOUTES les pages de son site, c'est très lourd avec GET et POST... D'où l'invention des sessions. Que faire ? 1. Un visiteur se connecte. On demande à créer une session pour lui : PHP génère un numéro. Pour cela, on utilise la fonction session_start(). Ce numéro est souvent très gros et écrit en hexadécimal. Ce numéro est l’ID de la page il sert d’identifiant. PHP transmet automatiquement cet ID de page en page en utilisant un cookie ou via l'url. 2. A partir de là, on peut créer une infinité de variables de session. Par exemple : $_SESSION['login'] contient le login du visiteur, $_SESSION['password'] contient le mot de passe etc... L'avantage, c'est que le serveur conserve ces variables même lorsque la page PHP a fini d'être générée. Ce qui veut dire que, quelle que soit la page de votre site, vous pourrez récupérer par exemple le login et le mot de passe du visiteur ! 3. Lorsque le visiteur se déconnecte (il a cliqué sur un bouton "Déconnecter" ou est resté inactif trop longtemps), alors la session est fermée avec session_destroy() Mais il faut appeler session_start() sur chacune de vos pages AVANT d'écrire le moindre code HTML. Si vous oubliez session_start(), vous ne pourrez pas accéder aux variables superglobales $_SESSION. Code PHP :
<?php
session_start(); // On démarre la session AVANT toute chose //Pour cet exemple on crée quelques variables de session : $_SESSION['prenom'] = 'carlos'; $_SESSION['nom'] = 'roberto'; $_SESSION['age'] = 32; // Maintenant que la session_start est là, on peut écrire du code HTML ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Titre de la page</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <p> Bonjour ! <?php echo $_SESSION['prenom']; ?> !<br /> Tu es ici à l'accueil du site (index.php). Tu veux aller sur une autre page ? </p> <p> <a href="mapage1.php">Lien vers mapage1.php</a><br /> <a href="mapage2.php">Lien vers mapage2.php</a><br /> <a href="mapage3.php">Lien vers mapage3.php</a><br /> </p> </body> </html>
On peut créer des variables de session n'importe où dans le code. Ici je les ai créé en haut de la page, 
mais j'aurais pu le faire ailleurs.
La seule chose qui importe, c'est que le session_start() soit fait au tout début de la page.

Avec la superglobale nous créons les lien tout simplement sans avoir besoin de transmettre ni ID du visiteur 
ni pseudo ni rien dés que  la session_start() est là PHP s’occupe de tout automatiquement sur toute page de 
votre site.

Alors un exemple enregistrez cette page sous le nom mapage1.php dans le même répertoire que la précédente et
 testez le code.

Code PHP :
<?php
session_start(); // On démarre la session AVANT toute chose
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Titre de la page</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
 
    <p>Re-bonjour !</p>
 
    <p>
        PHP se souvient de toi ! Tu t'appelles 
		<?php echo $_SESSION['prenom'] . ' ' . $_SESSION['nom']; ?> !<br />
        Et ton âge hummm... Tu as <?php echo $_SESSION['age']; ?> ans, n'est ce pas ? 
    </p>
    
    </body>
</html>
Et bien PHP s’est occupé de tout transmettre ?
En résumé, si vous créez des variables que vous voulez transmettre sur toutes les pages du site vous faites 
 comme vous créeriez des variables normales, sauf que vous mettez le préfixe $_SESSION devant pour que PHP 
 sache qu'il doit "retenir" ces variables sur toutes les pages.

Exemple :
$_SESSION['prenom'] = 'carlos';
$_SESSION['nom'] = 'roberto';
$_SESSION['age'] = 32;


Les cookies.

Un cookie, c'est un petit fichier que l'on enregistre sur l'ordinateur du visiteur. Il 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. Ce ne sont pas des virus ou des scriptes malicieux, c’est juste des petits fichiers textes qui permettent de retenir des informations. Rassurez-vous ils sont inoffensif. Internet Explorer les stocke dans le dossier "Temporary Internet Files". Pour écrire un cookie, on utilise la fonction PHP setcookie ("Placer un cookie" en anglais). On lui donne en général 3 paramètres, dans l'ordre suivant : 1. Le nom du cookie (ex : "pseudo") 2. La valeur du cookie (ex : "carabde") 3. La date d'expiration du cookie, sous forme de timestamp (ex : 1542041013) Un cookie a une durée de vie limitée. Il est automatiquement "supprimé" au bout d'un certain temps. Si vous voulez supprimer le cookie dans un mois, il vous faudra faire : time() + 30*24*3600 Cela veut dire : timestamp actuel + nombre de secondes dans un mois. Cela aura pour effet de voir votre cookie disparaître dans exactement un mois. Là aussi, comme pour session_start, la fonction setcookie ne marche que si vous la mettez avant tout code HTML. Code PHP :
<?php
$timestamp_expire = time() + 365*24*3600; // Le cookie expirera dans un an
setcookie('pseudo', 'carabde, $timestamp_expire); // On écrit un cookie
setcookie('pays', 'France', $timestamp_expire); // On écrit un autre cookie...

// Maintenant, on peut écrire du code html
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Ma super page PHP</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    
    </body>
</html>
Si je veux ressortir le pseudo du visiteur que j'avais inscrit dans un cookie, il suffirait d'écrire :
$_COOKIE['pseudo']

Code PHP :
<p>
   Je me souviens de toi !<br />
    Tu t'appelles <?php echo $_COOKIE['pseudo']; ?>
	et ton payé est : <?php echo $_COOKIE['pays']; ?> ?
</p>
Si le cookie n'existe pas, la variable superglobale n'existe pas. C'est-à-dire vous n’avez pas placé 
de cookie ou il a été supprimé par le visiteur.


Retourner au haut de la page..haut de page…
Précèdent…...Précèdent...  		Vous êtes ici:les variables superglobales		Voir la suite…suivant…
						


Vous pouvez copier, modifier des copies de cette page, tant que cette note apparaît clairement
Vous devez citer le nom de l'auteur original et faire un lien hypertexte vers http://apprendre.uuuq.com


Valid XHTML 1.0 Transitional Annuaire gratuit pour webmasters



Consultez mes statistiques

Ce site est listé dans la catégorie Web designer : Aides et tutoriels création web de l'annuaire Referencement organique et Les actualités du Dicodunet


Publicite Afrique
Aquitaweb > L'Aquitaine a référencé ce site Annuaire généraliste Glaneur.fr

petites annonces gratuites

Meilleur du Web : Annuaire des meilleurs sites Web. publimaxi.com: affichez vos sites au maximum ! !
Moteur de Recherche. Inscription Gratuite.
Le Moteur
Recherche-Web
référencement gratuit
•  référencement  •    positionnement    •  référencement manuel professionnel discount  •
annuaires et moteurs

referencement gratuit royaume