Maison > Article > développement back-end > La relation entre cookies et sessions en PHP et configuration de session
Cet article présente principalement la relation entre les cookies et les sessions en PHP et la configuration de session. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer
1. >cookie :
setcookie(cookie键的名称,值,过期时间); setcookie('mainuser','YUEWEN',time()+3600);2. Lire
cookie :
echo $_COOKIE['mainuser'];3. Supprimer le
cookie : définir la durée de validité Pour la dernière fois
setcookie('mainuser',time()-60);4. Définir la session :
$_SESSION['Muser'] = 'HUAXIANG';5. Lire la
session :
echo $_SESSION['Muser']';6. Supprimer
SESSION:
$_SSESSION = array(); //将session的值全部清空,文件保留 unset($_SESSION['Muser']); //将该session删除 session_destroy(); //将session连同文件一并删除7. La différence entre
cookie et session :
Le cookie est stocké côté client et la session est stockée du côté du serveur. Les cookies étant stockés sur le client, ils ont une faible sécurité (risque de falsification) et la sécurité de la session est élevée. Les cookies ont une taille limite de 4K et ne peuvent stocker que 20 cookies. Il n'y a pas de limite de sessions (les cookies doivent former des en-têtes de réponse qui ne peuvent pas être trop longs). Cookie ne prend en charge que le stockage de chaînes et la session peut stocker tous les types (fichiers, chaînes sérialisées). 8. Ce que les cookies et les sessions ont en commun : Il s'agit également d'une technologie de session, fournissant une fonction de mémoire pour le protocole http et partageant les données définies par différentes pages 9 ; .La connexion entre le cookie et la session :
1.session dépend du cookie , car le Le protocole HTTP est apatride. La sauvegarde de l'état côté serveur nécessite également de stocker un identifiant côté client. Cet identifiant est stocké dans un cookie . >$_COOKIE['PHPSESSID']:En-têtes F12-Network-Response Afficher les informations :
Set-Cookie : PHPSESSID=erv417ai3mh5p85kp9cvasdc46;
2. Après avoir généré le fichier, si vous faites une nouvelle demande, les informations du fichier correspondant seront lues directement en fonction de la valeur de ce PHPSESSIONID, sans paramétrer le
cookieencore une fois ; En-têtes F12-Network-Request Afficher les informations :
Cookie : PHPSESSID=erv417ai3mh5p85kp9cvasdc46
3. La session est basée sur l'utilisation des cookies. Si les cookies sont désactivés, la session ne sera pas disponible ;
Après avoir désactivé les cookies, vous pouvez transmettre le PHPSESSID au serveur via get ou post <.>,
或者修改配置:
session.use_only_cookies=0; session.use_trans_sid=1
4.session有关配置:
php.ini 查找[session]下: (.htaccess及程序代码ini_set( )可改,具体根据PHP官方手册的函数设置规则)
session.save_handler = files //设置session保存方式(文件);可改为memeche,redis等缓存保存; session.save_path = D:/temp //session保存路径; session.use_cookies = 1 //session是否使用cookie的功能(预设1,启动),session基于cookie使用; session.name = PHPSESSION //session传递到cookie的键名,于网络的请求/响应头可查看; session.auto_start = 0 //是否自动启动session(预设0),一般不设置为1,因自动启动将每次自动调用session_start( )时向响应头传递session数据,将影响对图片文件的处理; session.cookie_lifetime = 0 //(预设0,随浏览器关闭而消失),session使用cookie的生存期,以秒为单位; session.cookie_path = / //session使用cookie的有效路径,预设为在项目根目录下有效; session.serialize_handler = php // 序列化和反序列化处理器; session.gc_probebility = 1 //(分子)垃圾收集的处理几率(预设:1); session.gc_pisor = 1000 //(分母)设置进程比率(php5新增参数),按千分之一的比率进行垃圾收集,即当session失效时删除垃圾文件,根据实际需要设置,如果100/100几率则太消耗服务器资源; session.gc_maxlifetime = 1440 //被处理钱session文件的生存期(预设:1440秒),以上三项参数同时设置;
session小应用:防止刷新执行操作:
if (!empty($_POST) && !isset($_SESSION['flag'])) { $res = fopen('a.txt','a'); //只写 $bool = fwrite($res,$_POST['username']); fclose($res); $_SESSION['flag'] = 1; //第二次刷新请求该值则已存在,不执行以上程序 }
相关推荐:
理解PHP中的Session及对Session有效期的控制,session有效期
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!