Maison >développement back-end >tutoriel php >Comment résoudre le problème de session invalide et de cookie dans thinkphp

Comment résoudre le problème de session invalide et de cookie dans thinkphp

不言
不言original
2018-06-11 10:09:082341parcourir

Cet article présente principalement la solution aux sessions invalides et aux cookies dans thinkphp, impliquant la méthode d'analyse et de suppression de l'en-tête de la nomenclature. Il a une certaine valeur de référence. Les amis qui en ont besoin peuvent se référer à l'exemple de cet article

Décrit la solution aux sessions et cookies invalides dans thinkphp. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

Description du problème :

Il n'y a aucun problème avec la session et le cookie lors du débogage local. J'utilise la session pour enregistrer les informations du courant. connectez-vous au compte et téléchargez-le. Après être allé sur le serveur, j'ai constaté que la session n'existait plus après le saut. Pourquoi ? La session de sortie sur la page actuelle existe.

Je rencontre ce problème depuis trois jours Parce que je suis autodidacte, il n'y a pas de professeur pour demander conseil, et il n'y a pas beaucoup de gens autour de moi qui le sont. bon en PHP, donc c'est vraiment tragique, alors... Baidu, et beaucoup de gens sur Baidu disent des bêtises, et il n'y a rien qui puisse résoudre le problème. Après trois jours de modification, j'ai finalement trouvé la cause profonde. Si la majorité des serveurs prenant en charge thinkphp sont des systèmes Linux et que notre programmation est fondamentalement la même que celle de Windows, cela entraînera un problème d'en-tête de nomenclature, et PHP ne pourra pas analyser l'en-tête de nomenclature, mais le supprimera directement, provoquant ainsi la session et les cookies. devenir inutilisable.

Solution :

Qu'est-ce qu'un bom ? Dans un fichier codé en UTF-8, la nomenclature se trouve dans l'en-tête du fichier, occupant trois octets, ce qui est utilisé pour indiquer que le fichier appartient au codage UTF-8. Il existe désormais de nombreux logiciels qui reconnaissent l'en-tête de la nomenclature, mais là. Il y en a encore qui ne peuvent pas reconnaître l'en-tête de la nomenclature, comme PHP. L'en-tête de la nomenclature ne peut pas être reconnu, c'est pourquoi une erreur se produit après la modification de l'encodage UTF-8 avec le Bloc-notes.

Il existe deux manières simples de supprimer le. En-tête de nomenclature :

1, Comment supprimer l'en-tête de nomenclature avec editplus

Une fois l'éditeur ajusté au format d'encodage UTF8, il y aura une chaîne de caractères cachés (c'est-à-dire BOM) devant du fichier enregistré, qui est utilisé par l'éditeur pour identifier si le fichier est encodé en UTF8

Exécutez Editplus, cliquez sur Outils, sélectionnez Préférences, sélectionnez le fichier, sélectionnez Identification UTF-8 pour toujours supprimer la signature. , puis modifiez et enregistrez le fichier PHP sans BOM .

2. Méthode Ultraedit pour supprimer l'en-tête de la BOM

Après avoir ouvert le fichier, sélectionnez le format d'encodage dans l'option Enregistrer sous (utf-). 8 sans en-tête BOM), confirmez et tout ira bien. Que diriez-vous de le supprimer ? L'en-tête bom est très simple

Parlons des informations BOM de utf8. lui-même en UTF-8 avec BOM La manière chinoise tronquée des pages ordinaires n'est généralement pas causée par cette raison.


Le code est le suivant :

header("Content-type: text/html; charset=utf-8");
Cette phrase. contrôle la méthode d'encodage de la page de sortie html. La nomenclature ne peut être stockée qu'en UTF-8 en utilisant "Notepad" sous WINDOWS. Ensuite seulement, vous pouvez utiliser WINHEX pour supprimer les 2 premiers octets

dans l'encodage. Dans Dreamweaver, vous pouvez définir s'il faut inclure une nomenclature. Généralement, tant que la sortie de php n'est pas une image (flux GDI), la nomenclature le sera. Cela ne posera pas de problèmes s'il y a des caractères supplémentaires au début. GDI Stream, il sera affiché sous la forme d'une croix rouge.

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois. !

Recommandations associées :

Comment configurer la portée dans le framework thinkPHP5.0

Implémentation d'un validateur personnalisé dans le framework thinkPHP5

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn