Ce qui suit est un article sur la façon d'utiliser le cookie de session en PHP et codeigniter (explication détaillée). Le contenu est assez bon, je vais donc le partager avec vous maintenant et le donner comme référence.
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. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois ! Recommandations associées :
Comment implémenter la pagination PHP CodeIgniter et la requête multi-conditions
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!