Cookies
Résolu/Fermé
foufou
-
24 avril 2012 à 12:37
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 25 avril 2012 à 13:00
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 25 avril 2012 à 13:00
A voir également:
- Cookies
- Supprimer les cookies - Guide
- Extension refuser cookies - Guide
- Anti cookies gratuit - Télécharger - Confidentialité
- Vous devez supporter le javascript et accepter les cookies pour continuer. desactivez les plugins de type adblock qui peuvent bloquer certaines parties du service merci de reessayer ulterieurement. erreur #125 - Forum Mozilla Firefox
- Nous avons détecté un problème dans votre paramétrage des cookies - Forum Mozilla Firefox
3 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 24/04/2012 à 16:13
Modifié par [Dal] le 24/04/2012 à 16:13
Salut foufou,
Php gère normalement les variables de session dans des cookies de session. Il fait cela tout seul pourvu que tu appelles la fonction session_start();.
Vois https://www.php.net/manual/en/function.session-start.php
L'appel à session_start(); doit être placé avant l'envoi de quoi que ce soit au navigateur.
Si ton formulaire dans la page d'accueil fait un "POST" du login et mot de passe, tu vas les récupérer dans admin.php avec tes variables de session, que Php va stocker tout seul dans un cookie de session.
Pour récupérer les valeurs, Vois les exemples à la suite.
Par exemple :
Le message d'avertissement "Cannot modify header information - headers already sent ..." indique que tu as tenté d'utiliser une instruction concernant la manipulation d'entêtes http, alors qu'ils ont déjà été envoyés (ce qui est le cas, par exemple, si ton instruction est placée après avoir envoyé du texte au navigateur - à ce stade, les entêtes sont déjà partis).
C'est pour des raisons similaires que session_start(); doit être placé avant tout envoi d'une sortie quelconque au navigateur.
Dal
Php gère normalement les variables de session dans des cookies de session. Il fait cela tout seul pourvu que tu appelles la fonction session_start();.
Vois https://www.php.net/manual/en/function.session-start.php
L'appel à session_start(); doit être placé avant l'envoi de quoi que ce soit au navigateur.
Si ton formulaire dans la page d'accueil fait un "POST" du login et mot de passe, tu vas les récupérer dans admin.php avec tes variables de session, que Php va stocker tout seul dans un cookie de session.
Pour récupérer les valeurs, Vois les exemples à la suite.
Par exemple :
$identifiant = ""; $mdp = ""; if (isset($_POST['identifiant'])) { $identifiant = $_POST['identifiant']; } if (isset($_POST['mdp'])) { $mdp = $_POST['mdp']; } MaFonctionDeVerification($identifiant,$mdp);
Le message d'avertissement "Cannot modify header information - headers already sent ..." indique que tu as tenté d'utiliser une instruction concernant la manipulation d'entêtes http, alors qu'ils ont déjà été envoyés (ce qui est le cas, par exemple, si ton instruction est placée après avoir envoyé du texte au navigateur - à ce stade, les entêtes sont déjà partis).
C'est pour des raisons similaires que session_start(); doit être placé avant tout envoi d'une sortie quelconque au navigateur.
Dal
Merci de m'avoir répondu,je connais les sessions seulement le but de se TP était de ne pas s'en servir mais d'utiliser uniquement les cookies.
Finalement après avoir modifié mon code une centaine de fois,j'ai vu sur un site que l'encodage pouvait jouer.
Je suis donc passé de utf8 à utf8 sans bom et là miracle tout marche.
Merci quand même...
Finalement après avoir modifié mon code une centaine de fois,j'ai vu sur un site que l'encodage pouvait jouer.
Je suis donc passé de utf8 à utf8 sans bom et là miracle tout marche.
Merci quand même...
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 25/04/2012 à 13:11
Modifié par [Dal] le 25/04/2012 à 13:11
Content pour toi.
Tu avais omis de préciser certaines choses.
Il n'y a pas de miracle.
Le marquage "BOM" de tes sources utf8 par l'éditeur que tu utilises sont des données qui codent un caractère invisible (zero-width no-break space). Comme il est situé au tout début du fichier, Php considère qu'il s'agit d'envoi de texte, et les entêtes http sont envoyés avant que tu puisses faire quoi que ce soit.
C'est un comportement qui est corrigé lorsque Php est compilé avec l'option --enable-zend-multibyte
https://bugs.php.net/bug.php?id=22108
Si ton Php n'est pas compilé avec cette option (qui semble devoir être prévue en standard en v6), et que tu tiens à faire de l'utf8, il faut effectivement supprimer ce marquage dans tes sources.
Sous Notepad++ c'est possible en sélectionnant l'encodage "utf8 (sans BOM)". Je suppose que c'est ce que tu as fait pour résoudre ton problème.
Dal
Tu avais omis de préciser certaines choses.
Il n'y a pas de miracle.
Le marquage "BOM" de tes sources utf8 par l'éditeur que tu utilises sont des données qui codent un caractère invisible (zero-width no-break space). Comme il est situé au tout début du fichier, Php considère qu'il s'agit d'envoi de texte, et les entêtes http sont envoyés avant que tu puisses faire quoi que ce soit.
C'est un comportement qui est corrigé lorsque Php est compilé avec l'option --enable-zend-multibyte
https://bugs.php.net/bug.php?id=22108
Si ton Php n'est pas compilé avec cette option (qui semble devoir être prévue en standard en v6), et que tu tiens à faire de l'utf8, il faut effectivement supprimer ce marquage dans tes sources.
Sous Notepad++ c'est possible en sélectionnant l'encodage "utf8 (sans BOM)". Je suppose que c'est ce que tu as fait pour résoudre ton problème.
Dal