この記事では主に PHP における Cookie とセッションの関係とセッション構成について説明します。必要な方は参考にしてください。
1. 、cookie の読み取り:
setcookie(cookie键的名称,值,过期时间); setcookie('mainuser','YUEWEN',time()+3600);
3. cookie の削除: 有効期間を過去の時刻に設定します
echo $_COOKIE['mainuser'];
4. セッションの設定: setcookie('mainuser',time()-60);
5.
の読み取り:
$_SESSION['Muser'] = 'HUAXIANG';
6. SESSIONを削除:
echo $_SESSION['Muser']';
7. cookie とセッションの違い:
Cookie はクライアント側に保存され、セッションはサーバー側に保存されます。 Cookieはクライアントに保存されるため、セキュリティは低く(改ざんのリスク)、セッションのセキュリティは高くなります。
Cookieには4Kのサイズ制限があり、保存できるCookieは20個のみです。セッションに制限はありません(Cookieは長すぎることができない応答ヘッダーを形成する必要があります)。
Cookieは文字列の保存のみをサポートし、セッションはすべてのタイプ(ファイル、シリアル化された文字列)を保存できます。
8. Cookie とセッションの共通点:
もセッションテクノロジーであり、http プロトコルにメモリ機能を提供し、さまざまなページでデータセットを共有します。
sessionは cookie
に依存します。これは、HTTP プロトコルがステートレスであり、サーバー側の状態保存でもクライアントに識別子を保存する必要があるためです。この識別子は
cookieに保存されます。キーは $_COOKIE['PHPSESSID ']:F12-Network-Response ヘッダー 表示情報:Set-Cookie: PHPSESSID=erv417ai3mh5p85kp9cvasdc46;
2ファイル生成後、再度リクエストしてください。によると、この PHPSESSIONID の値は、対応するファイル情報を直接読み取ります。再設定する必要はありません。3 .s セッションは Cookie の使用に基づいています。Cookie を無効にすると、セッションは利用できなくなります
Cookie を無効にした後、、 を通じて PHPSESSID をサーバーに渡すことができます。
或者修改配置:
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有效期
以上がPHP における Cookie とセッションの関係とセッション構成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。