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
<1>
setcookie('name','value',time)
$this->input->set_cookie("views","test10",1000); echo $_COOKIE["views"];//此方法获取值时,如果值不存在会报错,当然可以先用isset($_COOKIE["views"])判断一下
$this->load->helper('cookie');//这行放在view也是可以的,随便 set_cookie('views','test10',1000); echo get_cookie('views');//此方法获取值如果获取不到,会返回空,不会报错
<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)
<2>Session 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
<3> 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<4>ExceptionsIl 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"
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!