ホームページ >バックエンド開発 >PHPチュートリアル >11 セッションとデータ保持
1 SessionID を通じて Web サイト内のユーザー情報を管理します
<code><span><span><?php</span> session_start(); <span>$_SESSION</span>[<span>'visits'</span>]++; <span>print</span><span>'You have visited here '</span>.<span>$_SESSION</span>[<span>'visits'</span>].<span>' times.<br>'</span>; <span>echo</span><span>'session id = '</span>.<span>$_COOKIE</span>[<span>'PHPSESSID'</span>]; <span>echo</span><span>"<br>"</span>; <span>echo</span><span>"session name = "</span>.session_name().<span>"<br>"</span>; <span>?></span></span></code>
SessionID はグローバル変数 _COOKIE に記録されます。SessionID の名前は PHPSESSID であり、PHPSESSID は session_name() を通じて取得することもできます。
2 セッションハイジャックを防止します
<code><span><span><span><?php</span> ini_set(<span>'sessio.use_only_cookies'</span>, <span>true</span>); session_start(); <span>$salt</span> = <span>'YourSpecialValueHere'</span>; <span>$tokenstr</span> = date(<span>'W'</span>).<span>$salt</span>; <span>$token</span> = md5(<span>$tokenstr</span>); <span>echo</span><span>'token = '</span>.<span>$token</span>.<span>'<br>'</span>; <span>if</span>(!<span>isset</span>(<span>$_REQUEST</span>[<span>'token'</span>]) || <span>$_REQUEST</span>[<span>'token'</span>] != <span>$token</span>) { <span>exit</span>; } <span>$_SESSION</span>[<span>'token'</span>] = <span>$token</span>; output_add_rewrite_var(<span>'token'</span>, <span>$token</span>); <span>echo</span><span>'<a href="test.php">link</a>'</span>; ob_flush(); output_reset_rewrite_vars(); <span>?></span></span></span></code>
<code><span><span><span><?php</span> session_start(); output_add_rewrite_var(<span>'var'</span>, <span>'value'</span>); <span>echo</span><span>'<a href="file.php">link</a>'</span>; ob_flush(); output_reset_rewrite_vars(); <span>echo</span><span>'<a href="file.php">link</a>'</span>; <span>?></span></span>以上例程会输出: <span><<span>a</span><span>href</span>=<span>"file.php?PHPSESSID=xxx&var=value"</span>></span>link<span></<span>a</span>></span><span><<span>a</span><span>href</span>=<span>"file.php"</span>></span>link<span></<span>a</span>></span></span></code>
3 セッションのカスタマイズを防止します
<code><span><span><?php</span> ini_set(<span>'session.use_only_cookie'</span>, <span>true</span>); session_start(); <span>if</span>(!<span>isset</span>(<span>$_SESSION</span>[<span>'generated'</span>]) || <span>$_SESSION</span>[<span>'generated'</span>] < (time() - <span>30</span>)) { session_regenerate_id(); <span>$_SESSION</span>[<span>'generated'</span>] = time(); } <span>echo</span><span>$_COOKIE</span>[<span>'PHPSESSID'</span>]</span></code>').addClass('pre-numbering ')。隠れる(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });
以上、11 セッションとデータ保持について、その側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。