PHP 中 Session 和 Cookie 差異?
1、Cookie資料存放在客戶的瀏覽器中,Session資料存放在伺服器中;
2、Session根據瀏覽器進程存在,而Cookie的生存時間可以設定和調整;
3、Session必須藉助Cookie。
PHP Session 變數
當您在電腦上操作某個應用程式時,您會開啟它,做些什麼更改,然後關閉它。這很像對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程式。然而,在網路上問題出現了:由於 HTTP 位址無法保持狀態,Web 伺服器並不知道您是誰以及您做了什麼。
PHP session 解決了這個問題,它透過在伺服器上儲存使用者資訊以便隨後使用(例如使用者名稱、購買商品等)。然而,會話資訊是臨時的,在使用者離開網站後將被刪除。如果您需要永久儲存訊息,可以把資料儲存在資料庫中。
Session 的工作機制是:為每個訪客建立一個唯一的 id (UID),並基於這個 UID 來儲存變數。 UID 儲存在 cookie 中,或透過 URL 進行傳導。
使用範例
<?php// 表单提交后...$posts = $_POST;// 清除一些空白符号foreach ($posts as $key => $value) { $posts[$key] = trim($value);}$password = md5($posts["password"]);$username = $posts["username"]; $query = "SELECT `username` FROM `user` WHERE `password` = '$password' AND `username` = '$username'";// 取得查询结果$userInfo = $DB->getRow($query); if (!empty($userInfo)) { // 当验证通过后,启动 Seindex.html> 验证 session里的`admin`是否为 `true`<?php// 防止全局变量造成安全隐患$admin = false;// 启动会话,这步必不可少session_start();// 判断是否登陆if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true) { echo "您已经成功登陆";} else { // 验证失败,将 $_SESSION["admin"] 置为 false $_SESSION["admin"] = false; die("您无权访问");}?>
推薦教學:《PHP》
以上是PHP 中 Session 和 Cookie 差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!