Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
"Ce site contient des cookies.". Voici un texte que l'on rencontre souvent lorsqu'on surfe sur la toile.
Mais avant d'aborder les cookies, évoquons une notion assez proche : les variables de de session.
La création et manipulation de variables de session et de cookies en PHP est simple mais il y a des
précautions à prendre dans l'ordre de certaines instructions ...
Les sessions constituent un moyen de conserver des variables sur toutes les pages de votre site.
Un visiteur arrive sur votre site. PHP génère alors un numéro de session. Ce numéro sert d'identifiant.
Une fois la session générée on peut créer une
infinité de variables de session.
Par exemple, on peut créer une variable $_SESSION['pseudo'] qui contient le pseudo du visiteur, $_SESSION['age']
qui contient son âge, etc.
Le serveur conserve ces variables même lorsque vous changez de page car $_SESSION est certes un array mais aussi
une variable superglobale.
Lorsque le visiteur se déconnecte de votre site, la session est fermée et alors les variables de session sont supprimées.
Les variables session sont utilisées sur les sites de vente en ligne pour gérer entre autres le fameux "panier".
Examinons le code de certaines pages d'un site utilisant les variables de session.
Dès que vous manipulez dans une page des variables de session l'instruction PHP session_start() doit être la première instruction de cette page ; même avant le doctypte.
Dans le script ci-dessus la recherche dans la base de données de l'inscrit en fonction de l'identifiant et du mot de passe saisis
n'est pas évoquée car c'est prématuré ...
Sur cette question je vous invite à lire le chapitre en lien :
Les requêtes sélection
Mais revenons au script ci-dessus.
Si la variable de session n'existe pas alors le formulaire s'affiche ; si elle existe, cette dernière est affichée
suivie du message "Vous ètes déjà connecté".
Notez qu'une seule instruction echo peut générer plusieurs instructions HTML.
Toujours dans ce script la variable de session est créée.
Si la variable de session existe, le visiteur a accès à des informations sensibles ... Sinon on l'invite à se connecter à condition qu'il soit inscrit ...
Il est strictement identique à celui de la page précédente.
L'instruction session_destroy() qui supprime toutes les variables de session.
Visitez d'abord les pages 1 et 2 sans avoir renseigné le formulaire de la page d'accueil.
Renseignez le formulaire avant de revisiter ces différentes pages.
Et pour terminer accèdez à la page "fin" pour supprimer les variables de session.
Attention la fonction array_rand() retourne au hasard un indice d'un tableau (et non pas un élément).
Il faut donc ensuite accéder à cet élément en fonction de l'indice.
$_SESSION['hasard']= $entiers[$i] : entier compris entre 5 et 95 à trouver.
$_SESSION['hasard'] & $_SESSION['compteur'] sont deux variables de session
qui sont initialisées dans le script de la première page et mises à jour dans la deuxième page.
$_SESSION['propositions'] est une variable de session mais aussi un 'array' qui est vide
dans ce script et sera rempli dans le script de la deuxième page.
Notez la redirection automatique (au bout de 3 secondes) vers la deuxième page ('trouver_nbre2.php').
Redirection effectuée avec la balise meta http-equiv='refresh' de HTML.
À chaque soumission il faut incrémenter $_SESSION['compteur'].
À chaque essai infructueux il faut afficher un message aidant le joueur ("plus petit" ou "plus grand").
Si l'entier proposé correspond à celui généré alors il faut afficher un message de succès et le nombre
de tentatives et générer une balise A pour revenir à la page précédente.
Dans tous les cas il faut rajouter un élément à $_SESSION['propositions'] puis afficher
le contenu de ce tableau en guise de "pense-bête".
Temporisation de 3 secondes avant le passage automatique à la deuxième page.
La soumission du formulaire de la deuxième page ne doit pas réinitialiser les variables de session.
Donc les variables de session doivent être initialisées dans un autre script : celui accolé à la première page.
Le fait qu'il y ait deux pages ne retire rien à l'ergonomie de l'application puisque l'enchainement est automatique.
En général lorsque vous visitez un site ce dernier doit vous informer qu'il utilise des cookies.
Avec la nouvelle législation européenne, vous pouvez les accepter ou pas.
Les cookies ont mauvaise réputation. Or ils ne présentent aucune danger pour votre ordinateur et de plus comme ils
sont installés sur votre machine vous avez toujours la main : vous pouvez les supprimer quand vous voulez.
Les cookies sont utilisés par les sites marchands.
Un cookie, c'est un petit fichier qui est enregistré sur l'ordinateur du visiteur et permet de conserver des informations sur ce visiteur.
À quelles fins ? :
Les cookies permettent de créer des annonces ciblées en fonction des préférences enregistrées
et de suggérer d'autres articles proches en fonction des pages visitées.
La variable superglobale $_COOKIE() de PHP contient tous les cookies !
Pour écrire un cookie il faut utiliser la fonction setcookie().
Il faut expliquer le troisième argument.
Faut-il rappeler qu'un timestamp est le nombre de secondes écoulées depuis le 1er janvier 1970.
Pour obtenir le timestamp de l'instant présent il suffit d'utiliser la fonction time().
Pour définir un cookie qui va disparaître un mois après sa création il suffit donc d'écrire le troisième argument de la
façon suivante :
time() + 30*24*60*60.
Une journée c'est 24 heures de 60 minutes et une minute c'est 60 secondes.
Si le cookie $_COOKIE['pseudo'] existe alors affichage d'un message.
(dans ce message il y a deux points pour la concaténation et un point de ponctuation).
Sinon le formulaire de soumission est affiché.
Notez que la cible du formulaire est une autre page : "cookie_creer.php".
Notez qu'une instruction PHP peut générer plusieurs instructions HTML.
C'est ce que je fais pour produire le code du formulaire de soumission.
Dans le code du formulaire les valeurs d'attributs sont délimitées par des guillemets doubles. Donc toutes ces
instructions HTML doivent être encadrées par des guillemets simples.
Cette page permet de créer deux cookies.
Il ne doit y avoir aucun code HTML avant l'instruction setcookie(). C'est pour cette raison que je suis obligé de réserver de créer les cookies dans une autre page.
La redirection automatique vers la page d'accueil est réalisée en HTML avec la balise meta (contenant les attributs http-equiv & content ) après que l'internaute ait eu le temps de lire le message : "Votre pseudo est désormais ... ".
Visitez d'abord les pages 1 et 2 sans avoir renseigné le formulaire puis saisissez votre pseudo avant
de revisiter les mêmes pages.
Déconnectez vous du site (en fermant l'onglet) ; puis reconnectez vous quelques instants plus tard. Votre pseudo s'affiche toujours.
Le site vous a reconnu à moins qu'entre temps vous ayez supprimé les données de navigation. via le navigateur.