Maitriser PHP

Cookies PHP : créer, lire, supprimer + erreur headers

01 mars 2026 | 4 min de lecture
Retour aux maitriser php
Les cookies PHP permettent de mémoriser un utilisateur, stocker une préférence (langue, thème), gérer un panier ou suivre un identifiant. Mais une mauvaise utilisation de setcookie() provoque rapidement l’erreur classique Cannot modify header information – headers already sent. Dans ce guide complet, vous allez comprendre le fonctionnement interne des cookies HTTP, voir les exemples modernes (PHP 8+), éviter les pièges classiques et appliquer les bonnes pratiques de sécurité.










1) Comment fonctionnent les cookies PHP


Un cookie PHP est une donnée envoyée par le serveur dans les en-têtes HTTP. Le navigateur la stocke puis la renvoie automatiquement lors des prochaines requêtes vers le même domaine.

Techniquement, setcookie() ajoute une ligne Set-Cookie dans la réponse HTTP. Le navigateur enregistre cette valeur et l’enverra ensuite dans l’en-tête Cookie.
Important : les cookies sont envoyés dans les headers HTTP. Dès qu’un contenu HTML est affiché, les headers sont verrouillés.


6) Corriger l’erreur headers already sent


L’erreur headers already sent PHP signifie qu’un contenu a été envoyé avant l’appel à setcookie().

Mauvais exemple :


[php]echo « Bonjour »;
setcookie(« test », « 1 »);[/php]
Erreur : l’affichage bloque l’envoi des headers HTTP.

Bonne pratique :


[php]setcookie(« test », « 1 »);
echo « Bonjour »;[/php]

Autres causes fréquentes



  • Espace avant <?php

  • BOM UTF-8 invisible

  • Fichier inclus affichant du HTML



7) Sécurité et bonnes pratiques



  • Ne jamais stocker un mot de passe en cookie

  • Activer httponly

  • Activer secure en HTTPS

  • Configurer samesite=Lax ou Strict


Info : pour l’authentification sécurisée, privilégiez les sessions PHP.


8) Erreurs fréquentes



  • Modifier un cookie après affichage

  • Oublier isset()

  • Confondre cookie et session



Questions fréquentes


Quelle est la taille maximale d’un cookie ?


Environ 4 Ko par cookie selon les navigateurs.

Cookie PHP ou session PHP ?


Le cookie est côté client. La session est côté serveur.

Pourquoi mon cookie ne fonctionne pas ?


La cause la plus fréquente est un affichage avant setcookie().

Comment vérifier qu’un cookie existe ?


Avec isset($_COOKIE["nom"]).


Conclusion


Les cookies PHP sont simples mais exigent une gestion stricte des headers HTTP. En respectant l’ordre d’exécution et les bonnes pratiques de sécurité, vous éviterez l’erreur headers already sent et garantirez un fonctionnement fiable.


Pour aller plus loin :

  • Sessions PHP sécurisées

  • Authentification login en PHP

  • Protection CSRF



Déployez une application Laravel MCP en production grâce à Laravel Cloud

Les développeurs Laravel disposent désormais d’une solution puissante pour déployer des applications web intégrant le Model Context Protocol (MCP) en production avec une simplicité déconcertante. Laravel Cloud révolutionne l’hébergement et le déploiement en offrant une scalabilité automatique, une sécurisation des…

Intégration de l’IA dans Laravel : Créez un agent intelligent pour la recherche de documents

La montée en puissance de l’Intelligence Artificielle (IA) dans le développement web révolutionne la manière dont les applications sont conçues et exploitées. Grâce à Laravel, framework PHP de référence, cette intégration devient plus accessible, notamment pour créer des agents intelligents…

Laravel Cloud API et CLI : Accélérez vos déploiements et automatisez vos workflows

Laravel révolutionne une nouvelle fois son écosystème avec la sortie généralisée de Laravel Cloud API et CLI, des outils destinés à transformer la manière dont les équipes développent, déploient et gèrent leurs applications. En 2026, ces nouveautés poussent plus loin…

Laravel MCP Server : Guide complet des meilleures pratiques d’authentification et de sécurité

Face à la montée en puissance des technologies d’intelligence artificielle et des applications connectées, sécuriser l’accès à ses services est plus crucial que jamais. Le serveur MCP (Model-Controller-Presenter) dans Laravel représente une interface puissante pour exposer les fonctionnalités internes d’une…