Maison >développement back-end >tutoriel php >Explication détaillée de la façon d'utiliser le cookie de session en php et codeigniter
Cet article présente principalement la méthode d'utilisation des cookies de session en PHP et codeigniter. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
1. Lire et écrire des cookies
f35d6e602fd7d0f0edfa6f7d103c1b57
setcookie('name','value',time)Échec de la configuration, pas écrit normalement dans le navigateur, échec du test, raison inconnue 2cc198a1d5eb0d3eb508d858c9f5cbdbCI cadre
$this->input->set_cookie("views","test10",1000); echo $_COOKIE["views"];//此方法获取值时,如果值不存在会报错,当然可以先用isset($_COOKIE["views"])判断一下5bdf4c78156c7953567bb5a0aef2fc53Par assistant
$this->load->helper('cookie');//这行放在view也是可以的,随便 set_cookie('views','test10',1000); echo get_cookie('views');//此方法获取值如果获取不到,会返回空,不会报错2. Séance de lecture et d'écriture
<1> ; Session native
Démarrer :
<?php session_start(); ?>
Attribuer :
$_SESSION['views'] = "test20";
Valeur :
echo "Session:". $_SESSION['views'];
Durée :
séance. Lorsque le navigateur est fermé, la session php dans le cookie sera effacée et un
sera régénéré à la prochaine ouverture, bien que le serveur enregistre toujours la session. Le délai d'expiration de la session est défini dans php.ini, voir un autre articleConsidérations de sécurité php (codeigniter)
2cc198a1d5eb0d3eb508d858c9f5cbdbSession du framework CI
Début :
$this->load->library('session');//load必须在controller完成,当要使用session必须先load赋值: $this->session->views = "test11";
Valeur :
echo "Session:". $_SESSION['views'];
Temps d'existence :
Le client a 2 heures de temps d'existence, lorsque le serveur La session est supprimé car l'ID de session du client est toujours valide, donc lorsqu'il sera rouvert, le serveur créera une session avec le même ID de session que celui du client. Bien sûr, peu importe qu'il faut créer un nouvel ID ou un ancien ID, parce que c'est juste L'identifiant a le même nom, mais il ne contient aucune donnée
5bdf4c78156c7953567bb5a0aef2fc53 Différence> deux noms de session sont différents, l'un s'appelle phpsession , l'autre s'appelle ci_session
> Un seul peut être démarré, pas les deux > 🎜>> Ne mélangez pas les deux. La méthode native doit être complètement abandonnée > La session php native est accessible de manière informelle, et ci_session est httponly, ce qui signifie que la session native peut être attaquée via xxs, et les cookies peuvent être obtenus via js 23889872c2e8594e0f446a471a78ec4cExceptionsIl existe une situation comme celle-ci :
Quand ci_session existe déjà à cet instant, car ce ci_ est persistant
En regardant le cookie , il s'avère qu'aucune session native n'existe, cela ne peut l'être que si vous utilisez une session ci, recherchez ce fichier dans la session du serveur et constatez que la valeur n'est pas écrite. Si session_start() est déclaré, il ira à le mode natif, recréez une phpsession, et la valeur sera écrite en
//session_start();//没有启动原生的session //$this->load->library('session');//没有启动ci的session $_SESSION['views'] = "test23";//直接用原生的方式进行赋值 echo "Session:". $_SESSION['views'];//可以正常取值出来"test23"Si rien n'est déclaré et qu'aucune valeur n'est assignée, et que la valeur est prise directement, une erreur sera rapportée, car utiliser ci_session , le chargement doit être requis. Si nous ne chargeons pas, une erreur sera signalée. Par conséquent, il est prouvé que lors de l'attribution d'une valeur de manière native, cela équivaut à démarrer la session et à activer ci_session, mais il n'a pas l'autorisation de le faire. écrire. Cela peut être considéré comme un bug 43ad812d3a971134e40facaca816c822Comment fonctionne la session
Le fonctionnement des cookies est relativement simple à comprendre. . Il est écrit dans le cookie utilisateur et tout ce qui est écrit est lu. Tant qu'il s'agit d'un cookie sur ce site, il peut être lu par valeur clé. La valeur de session est stockée dans le serveur, mais comment savoir à quel utilisateur appartient cette valeur ? En stockant le nom du fichier de session dans le cookie utilisateur, la valeur enregistrée est placée dans un fichier du même nom sur le serveur. Le vol de cookies fait référence au vol de ces informations importantes qui sont stockées sur le serveur, mais si celles-ci sont volées, ce sera terminé. Par conséquent, la clé de session stockée dans le cookie n’est pas fiable et une authentification doit être effectuée.
Notez que lorsque écrit la session, il écrit automatiquement la clé de session dans le cookie de l'utilisateur. Cette durée doit être définie dans le php du serveur configuré dans .ini. .Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.
Recommandations associées :
+Solution du problème de traitement des transactions à verrouillage à haute concurrence MySQL
PHP
Utiliser file_get_contents pour envoyer la fonction de requête http est simple
Algorithme du Roi Singe (Le Singe choisit le roi) implémenté par PHP
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!