Cours 420-2D7-LL Développement web

*** lundi, 20 avril 2026 --> semaine 12 !!! ***



Semaine 3

 

Terminer exercice PHP 1 à 20

Appuyer-ici...

 


 

PHP-Cookie-Session

Module PHP sous Apache

(Programmation PHP, cookie et session)

 

Télécharger : Note de cours Cookie et session.docx

 

ref.: www.phpdebutant.org

 

Qu'est-ce qu'un cookie ?

Un cookie est un fichier texte de taille limitée (65ko) permettant de stocker certaines informations. Le but premier de ce type de fichier et de pouvoir garder en mémoire les informations d'un visiteur afin de pouvoir les réutiliser à chacune de ses visites. Par exemple on y stocke son NOM, son PRENOM, son Nickname, etc... Bien sûr cela n'est possible qu'à partir du moment où le visiteur a entré lui-même ses informations dans un formulaire sur le site.

Ou sont stockés les cookies ?

Cela dépend du navigateur que vous utilisez

Moi: C:Documents and SettingsAdministrateur.MERSCookies

 

De quoi est constitué le contenu d'un cookie ?

 (fpotec@www.phpdebutant[1].txt), la valeur entre crochets: [1] indique combien de cookies sont stockés dans le fichier :

- La première valeur (DESIGN) est le nom du cookie. Notez que le nom du cookie n'est pas le nom du fichier (Cookie: fpotec@www.phpdebutant.com/).
- La seconde valeur (gray) est la valeur assignée au cookie.
- La troisième valeur (www.phpdebutant.com/) indique d'où provient le cookie et par quel site il est utilisé.
- Les valeurs suivantes sont des valeurs par défaut (à moins que vous ne les spécifiez lors de la génération du cookie comme la date d'expiration).

N.B : Si plusieurs cookies proviennent du même site ils sont tous stockés dans le même fichier (ici: Cookie: fpotec@www.phpdebutant.com/)

Comment générer un cookie avec PHP ?

C'est la fonction setcookie() qui permet l'envoi de cookie :

 

Code PHP

<?
$expire = 365*24*3600; // on définit la durée du cookie, 1 an
setcookie("nickname","xeros",time()+$expire);  // on l'envoi
?>

 

Comment lire les cookies quand un visiteur revient sur mon site ?

Là encore c'est un jeu d'enfant car php va regarder si un fichier contenant des éventuels cookies existe sur la machine du visiteur. Vous il ne vous reste plus qu'à appeler la valeur stockée dans le cookie à l'aide du tableau global $_COOKIE :

Code PHP

<?

// On affiche la valeur de nickname
echo "Bonjour $_COOKIE["nickname"]";
?>

 

ref.: www.phpfrance.com/

1- Lecture du cookie

Les cookies disponibles sont automatiquement stockés dans le tableau $HTTP_COOKIE_VARS. Selon la configuration de votre serveur, ils sont également stockés dans la variable correspondant au nom du cookie.

<?

echo $PHPFranceTutorialsUserSessionCookie;
echo $HTTP_COOKIE_VARS["PHPFranceTutorialsUserSessionCookie"];

?>


2- Suppression du cookie

Il arrive de vouloir supprimer certains cookies, par exemple, lors d'une session, pour se déconnecter.

<?

// on laisse uniquement le nom du cookie
setcookie("PHPFranceTutorialsUserSessionCookie");

// date d'epiration dépassée
setcookie("PHPFranceTutorialsUserSessionCookie","",0,"/","",0);

?>

 

 

 

Exemples de cookie avec 3 fichiers:

cookie.php

<HTML>

<HEAD>

<TITLE>Fichier de test</TITLE>

</HEAD>

<BODY>

<CENTER>

<form method="post" action="cookie1.php">

<p>Donnez un nom au cookie "Monster":</p>

nom :

<input type="text" name="nom" size="40">

</p>

<input type="submit" name="Submit" value="R-envoyer">

</form>    

</CENTER>

</BODY>

</HTML>

 

cookie1.php

<?php

$nomcookie=$_REQUEST["nom"];

setcookie("Monster",$nomcookie,time()+(40)); //365*24*3600  //= 1 an

?>

<HTML>

<HEAD>

<TITLE>Fichier de test de COOKIE</TITLE>

</HEAD>

<BODY>

<CENTER>

Cookie manger le:

                    <?php

                   

                    $date = date("d-m-Y");

                    echo "$date";

                   

                    ?>

<P><A HREF="cookie2.php">Lien vers cookie2.php:</A><P>

<IMG SRC="cookie.gif" border =0">           

</CENTER>

</BODY>

</HTML>

 

cookie2.php

<HTML>

<HEAD>

<TITLE>Fichier de test</TITLE>

</HEAD>

<BODY>

<CENTER>

<?php

 

if ($_COOKIE["Monster"])

{                 

                    echo "Nom du cookie trouver: ";

                    echo $_COOKIE['Monster'];

}

else echo "Cookie non présent!!! Deja mangé!";

 

?>

<P><A HREF="cookie.php">Lien vers cookie.php:</A>

</CENTER>

</BODY>

</HTML>

 


 

ref.: www.phpdebutant.org

 

Quelques petites choses à savoir sur les sessions

Une session est en fait un fichier conservé sur le serveur et accessible à vos scripts en fonction d'un identifiant généré à la création. Chaque fois qu'un de vos visiteurs génère une session, un identifiant lui est attribué. Tout ce qui est dans cette session est accessible de partout à vos scripts. On comprend dès lors très vite tout l'intérêt de la chose. En effet, si chaque session est propre à un visiteur, on peut personnaliser nos scripts en fonction du visiteur, ou encore alléger nos requêtes : plutôt que d'aller chercher un pseudonyme dans la base de donnée sur chaque page, vous le rapatriez à l'arrivée du visiteur sur le site, vous le stockez en session et c'est de là que vous y accéderez par la suite.

La session est finalement l'équivalent d'un cookie en plus sécurisé. En effet, étant stocké sur le serveur et non chez le client, elle est plus difficile d'accès aux éventuels pirates. Mais un risque demeure, prenez donc l'habitude de ne pas y stocker des informations trop sensibles. N'oubliez pas également que la session, à la différence du cookie, n'est valable qu'un temps limité (aux alentours des 30 minutes, mais cela dépend de la configuration de votre serveur), et est automatiquement détruite à la fermeture du navigateur du visiteur.

Vous pouvez enregistrer en session tout type de variable : du simple numérique au tableau en passant par la chaîne de caractères.

Il existe plusieurs fonctions liées aux sessions, mais deux seulement sont essentielles à leur fonctionnement, ainsi qu'un tableau :

 

session_start();
Cette fonction sert à démarrer une session OU appeler la session existante. Elle doit donc être présente sur toutes les pages de votre site. A savoir que cette fonction ne tolère pas d'envoi au navigateur avant elle. Plus simplement il ne faut aucune sortie avant elle : pas de html, pas de echo. Prenez l'habitude de la placer au début du fichier, avant quoi que ce soit d'autre et tout se passera bien.

session_destroy();
Cette fonction détruit la session en cours. Mais elle ne détruit pas les variables de sessions associées à la session courante. Nous verrons plus loin comment détruire une session complètement et proprement.



$_SESSION
Il s'agit du tableau global contenant toutes les variables de sessions pour la session courante. Son utilisation est exactement identique aux tableaux habituels, à savoir :

 

Utilisation du tableau global $_SESSION

// Nous allons créer une variable de session appellée "nombre" et qui contient "1234" :
$_SESSION['nombre'] = 1234;

// Nous pouvons maintenant afficher la variable "nombre"
echo $_SESSION['nombre'];  // Ceci va afficher 1234

www.phpfrance.com/

 

1- Comment configurer de php.ini ?

Rappelons, tout d'abord, qu'il est nécessaire de disposer de PHP !
L'utilisation des sessions entraîne l'enregistrement de fichiers contenant des informations sur vos variables de sessions.
Un cookie se trouve sur votre ordinateur contenant l'identificateur de session.
C'est la seule information présente sur votre ordinateur.
Le reste des informations se trouvent sur le serveur. Il faut donc configurer le chemin d'accès dans lequel seront les fichiers.
Dans le fichier php.ini, il faut changer session.save_path
Par exemple j'ai mis : session.save_path = c:session ; argument passed to save_handler

Les sessions ont plusieurs options de configuration possibles paramétrables dans php.ini :

session.save_path définit le repertoire dans lequel les fichiers de session seront créés.

session.name définit le nom de session qui sera utilisé comme nom de cookie. Il ne peut contenir que des caractères alphanumériques. Par défaut : PHPSESSID.

session.auto_start spécifie si le module de session doit démarrer automatiquement. Valeur par défaut : 0.

session.lifetime définit le temps de vie du cookie en secondes, celui-ci est envoyé au navigateur. La valeur 0 signifie que le navigateur est ouvert. Valeur par défaut : 0.
session.use_cookies spécifie si le module utilisera les cookies pour sauvegarder l'identificateur de la session du côté client. Valeur par défaut : 1.

 

php.ini pour cookie et session

++++++++

display_errors = On


Pour voir les messages d'erreurs, les avertissements (notice et warning)
....et a quelle ligne

dans php.ini du dossier apache2 de php (dans etc)

 


2- Comment ça marche ?

La fonction session_start() essaye de trouver l'identificateur de la session dans les cookies se trouvant sur votre disque dur.

Pour enregistrer une variable de session, il suffit d'assigner une valeur à la superglobale $_SESSION[''].

<?php
session_start();
$_SESSION['nom_de_la_var']= "42 est la réponse";
?>

 

 

Exemples de session avec 3 fichiers:

 

session1.php

<?php

session_start(); //demarrage de la session

$_SESSION['equipe']="Vive les Steelers!!!";

?>

                    <HTML>

                    <HEAD>

                    <TITLE>Fichier de test</TITLE>

                    </HEAD>

                    <BODY>

                    <CENTER>

                                       <?php

                   

                   

                                       ?>              

                    Variable session equipe créer!<BR>

                    <A HREF="session2.php">Page suivante...</A>

                    </CENTER>

                    </BODY>

                    </HTML>

 

session2.php

<?php

session_start(); //demarrage de la session

?>

<HTML>

<HEAD>

<TITLE>Fichier de test session2</TITLE>

</HEAD>

<BODY>

<CENTER>

                    <?php

                    if ($_SESSION['equipe'] )//== "Vive les Steelers!!!")

                    {

                                       echo "Affichage de la variable session: ";

                                       echo $_SESSION['equipe'];

                                       echo "<BR><A HREF='session3.php'>Fermer la session</A><BR>";

                    }

                    else

                    {

                    echo "Variable session inexistante!!!";

                    }

                    ?>              

<BR>

<A HREF="session1.php">...Page precedante</A>

</CENTER>

</BODY>

</HTML>

 


session3.php

<?php

session_start(); //demarrage de la session

?>

<HTML>

<HEAD>

<TITLE>Fichier de test session3</TITLE>

</HEAD>

<BODY>

<CENTER>

                    <?php

                    session_destroy();

                    echo "Session détruite...Merci";

                    ?>              

<BR>

<A HREF="session1.php">Page session1.php (Création de cookie!)</A><BR>

<A HREF="session2.php">...Page precedante</A>

</CENTER>

</BODY>

</HTML>

 

 


 

Objet PHP

 

Résumé…

La création d’un objet reste très simple comme dans la plupart des autres langages.

class Televiseur {

     public $dimension;

var $allume = false;

 

function bouton_power() {

                              // Fonction qui bascule l’état de allumé/éteint

 

Fichiers exemples : objet_tv.php et objet1.php

Pour plus de programmation orientée objet (POO) en PHP: php objet.docx

 

 


   

Voici mes coordonnees: Stéphane Mercier (Mers), stephane.mercier@cegeplevis.ca, 418 833-5110, poste 5511, Local G205A (disponnible par MIO)

Tout droit réservé à personne !!!

.