梦想加空间 -久久高清免费视频- 一个程序猿的个人博客网站

您現在的位置是:首頁 >php教程 >php初級教程五 Cookie和Session網站首頁php教程

php初級教程五 Cookie和Session

三只小菜猿 2023-02-15 11:15:34
簡介PHP session 變量用于存儲關于用戶會話(session)的信息,或者更改用戶會話(session)的設置。Session 變量存儲單一用戶的信息,并且對于應用程序中的所有頁面都是可用的。如果您的應用程序需要與不支持 cookie 的瀏覽器打交道,那么您不得不使用其他的辦法在您的應用程序中的頁面之間傳遞信息。在下面的例子中,我們將創建名為 “user” 的 cookie,并為它賦值 “dyf”。上面的代碼會向服務器注冊用戶的會話,以便您可以開始保存用戶信息,同時會為用戶會話分配一個 UID。

PHP Cookie

cookie 常用于識別用戶。

Cookie 是什么?

cookie 常用于識別用戶。cookie 是一種服務器留在用戶計算機上的小文件。每當同一臺計算機通過瀏覽器請求頁面時,這臺計算機將會發送 cookie。通過 PHP,您能夠創建并取回 cookie 的值。

如何創建 Cookie?

setcookie() 函數用于設置 cookie。

注釋:setcookie() 函數必須位于  標簽之前。

語法

setcookie(name, value, expire, path, domain);

實例 1

在下面的例子中,我們將創建名為 "user" 的 cookie,并為它賦值 "dyf"。我們也規定了此 cookie 在一小時后過期:

<?php
setcookie("user""dyf", time()+3600);
?>

<html>
.....

注釋:在發送 cookie 時,cookie 的值會自動進行 URL 編碼,在取回時進行自動解碼。(為防止 URL 編碼,請使用 setrawcookie() 取而代之。)

實例 2

您還可以通過另一種方式設置 cookie 的過期時間。這也許比使用秒表示的方式簡單。

<?php
$expire=time()+60*60*24*30;
setcookie("user""runoob"$expire);
?>

<html>
.....

在上面的實例中,過期時間被設置為一個月(60 秒 * 60 分 * 24 小時 * 30 天)。

如何取回 Cookie 的值?

PHP 的 $_COOKIE 變量用于取回 cookie 的值。

在下面的實例中,我們取回了名為 "user" 的 cookie 的值,并把它顯示在了頁面上:

<?php
// 輸出 cookie 值
echo $_COOKIE["user"];

// 查看所有 cookie
print_r($_COOKIE);
?>

在下面的實例中,我們使用 isset() 函數來確認是否已設置了 cookie:

<html>
<head>
<meta charset="utf-8">
<title>標題</title>
</head>
<body>

<?php
if (isset($_COOKIE["user"]))
    echo "歡迎 " . $_COOKIE["user"] . "!<br>";
else
    echo "普通訪客!<br>";
?>

</body>
</html>

如何刪除 Cookie?

當刪除 cookie 時,您應當使過期日期變更為過去的時間點。

刪除的實例:

<?php
// 設置 cookie 過期時間為過去 1 小時
setcookie("user""", time()-3600);
?>

如果瀏覽器不支持 Cookie 該怎么辦?

如果您的應用程序需要與不支持 cookie 的瀏覽器打交道,那么您不得不使用其他的辦法在您的應用程序中的頁面之間傳遞信息。一種方式是通過表單傳遞數據。

下面的表單在用戶單點擊 "Submit" 按鈕時,向 "welcome.php" 提交了用戶輸入:

<html>
<head>
<meta charset="utf-8">
<title>標題</title>
</head>
<body>

<form action="welcome.php" method="post">
名字: <input type="text" name="name">
年齡: <input type="text" name="age">
<input type="submit">
</form>

</body>
</html>

取回 "welcome.php" 文件中的值,如下所示:

<html>
<head>
<meta charset="utf-8">
<title>標題</title>
</head>
<body>

歡迎 <?php echo $_POST["name"]; ?>.<br>
你 <?php echo $_POST["age"]; ?> 歲了。

</body>
</html>

PHP Session

PHP session 變量用于存儲關于用戶會話(session)的信息,或者更改用戶會話(session)的設置。Session 變量存儲單一用戶的信息,并且對于應用程序中的所有頁面都是可用的。

PHP Session 變量

您在計算機上操作某個應用程序時,您打開它,做些更改,然后關閉它。這很像一次對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程序。然而,在因特網上問題出現了:由于 HTTP 地址無法保持狀態,Web 服務器并不知道您是誰以及您做了什么。

PHP session 解決了這個問題,它通過在服務器上存儲用戶信息以便隨后使用(比如用戶名稱、購買商品等)。然而,會話信息是臨時的,在用戶離開網站后將被刪除。如果您需要永久存儲信息,可以把數據存儲在數據庫中。

Session 的工作機制是:為每個訪客創建一個唯一的 id (UID),并基于這個 UID 來存儲變量。UID 存儲在 cookie 中,或者通過 URL 進行傳導。

開始 PHP Session

在您把用戶信息存儲到 PHP session 中之前,首先必須啟動會話。

注釋:session_start() 函數必須位于  標簽之前:

<?php session_start(); ?>
 
<html>
<body>
 
</body>
</html>

上面的代碼會向服務器注冊用戶的會話,以便您可以開始保存用戶信息,同時會為用戶會話分配一個 UID。

存儲 Session 變量

存儲和取回 session 變量的正確方法是使用 PHP $_SESSION 變量:

<?php
session_start();
// 存儲 session 數據
$_SESSION['views']=1;
?>
 
<html>
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
 
<?php
// 檢索 session 數據
echo "瀏覽量:"$_SESSION['views'];
?>
 
</body>
</html>

輸出:

瀏覽量:1

在下面的實例中,我們創建了一個簡單的 page-view 計數器。isset() 函數檢測是否已設置 "views" 變量。如果已設置 "views" 變量,我們累加計數器。如果 "views" 不存在,則創建 "views" 變量,并把它設置為 1:

<?php
session_start();
 
if(isset($_SESSION['views']))
{
    $_SESSION['views']=$_SESSION['views']+1;
}
else
{
    $_SESSION['views']=1;
}
echo "瀏覽量:"$_SESSION['views'];
?>

銷毀 Session

如果您希望刪除某些 session 數據,可以使用 unset() 或 session_destroy() 函數。

unset() 函數用于釋放指定的 session 變量:

<?php
session_start();
if(isset($_SESSION['views']))
{
    unset($_SESSION['views']);
}
?>

您也可以通過調用 session_destroy() 函數徹底銷毀 session:

<?php
session_destroy();
?>

注釋:session_destroy() 將重置 session,您將失去所有已存儲的 session 數據。


夢想加空間!平時喜歡研究各種技術,目前在從事后端開發工作,熱愛生活、熱愛工作。
主站蜘蛛池模板: 扭力扳手_扭力扳手检定仪_数显扭力扳手_扭力测试仪_测力计_推拉力计_拉力测试仪_测试台架-上海实干实业有限公司 | 厦门鼎星五金制品有限公司-厦门弹簧,电池簧,扣簧 | 泡沫|水罐|干粉消防车价格_特种消防洒水车厂家-湖北江南 | 生物除臭剂-养殖场垃圾除臭剂-垃圾填埋场除臭剂-成都微菌环境 | 手术示教系统-实训示教系统-数字化手术室-直播录播系统 - 深圳市视源视讯技术有限公司 | 乐贝贝童装批发网-外贸童装批发厂家直销|网上品牌童装批发市场|儿童服装批发首选 | 上海礼品公司_定制商务礼品_促销礼品_福利礼品_创意礼品_上海普田商贸有限公司 | 气体灭火安装,气体灭火系统安装,七氟丙烷灭火系统安装,消防气体灭火控制系统 | 液晶模组铁框_液晶显示压框-南皮县卓腾金属制品有限公司 | 增压泵-离心泵-管道泵-排污泵-上海渤泉泵业制造有限公司 【官方网站】 | 小鼠实验(试验)用臭氧发生器_进口臭氧发生器 - 北京同林臭氧实验网 | 智能档案柜,回转柜,密集架,密集柜厂家-北京及尚智能家具 | 清河县隆鑫密封件有限公司,汽车用密封条,配电箱柜、集装箱密封胶条,建筑门窗、家具用密封条,无毒环保医用密封条,船舶、农机用密封条,异型产品 | 华帝衣柜定制_全屋家具定制_橱柜定制-华帝家居 | 激光切割加工,佛山激光切割加工,钣金加工,机加工-佛山市华锐达金属制品有限公司 | 营口新北方制糖有限公司| 郑州建网站,郑州做网站,郑州网站建设,郑州网站制作,郑州高端定制网站,郑州APP开发 | 空气能热水器|空气能热水器工程|太阳能热水器工程|蓝冠机电 | 四字成语大全6000个,经典成语大全及解释,1000个50000个成语及解释 - 同鑫成语网 | 木工圆锯片,进口锯片厂家,合金锯片生产厂家,木工合金锯片,BAK(百恪)刀具有限公司 | 河卵石制砂机|鹅卵石制砂机-移动制砂机-制砂设备-郑州秦星机械设备有限公司 | 济南海纳特科技有限公司| 泥沙泵_脱硫泵_潜水泵_离心泵_渣浆泵厂家|诚信为先-泰安华泰泵业制造有限公司 | 三氯异氰尿酸_二水二氯异氰尿酸钠_氰尿酸 | 十树品牌策划—品牌战略、品牌策划、品牌定位、品牌设计、包装设计、品牌营销-上海十树品牌管理咨询有限公司官网 | 苏州探测器清洗_烟感探头清洗_感烟探测器维修清洗_火灾探测器清洗报价/价格_进口国产消防设备清洗_江苏智淼探测器清洗厂家- | 展会设计搭建-展厅设计施工公司-展位展台设计搭建-深圳鼎泰展览 展柜设计定制-品牌展柜订做-展柜制作厂家「广州嘉艺展柜」 | 清研集团 - 北京清研灵智科技有限公司 | 无线对讲系统-海能达对讲机-广州中达慧通科技有限公司 | 专业色素炭黑生产厂家,提供各种用途色素炭黑价格-枣庄鑫源化工 | 真空清洗炉_电磁感应真空清洗炉-盐城市盛逸化纤机械有限公司 | 数据交易导航,数据资产入表,数据交易平台,数据要素市场 | 浙江世杰阀门有限公司| 昆山精鑫模具有限公司-模具研发生产 | 一站式服务体验 | 天津实验室纯水机-GMP认证制药纯化水设备-天津开发区瑞尔环保科技有限公司 | 叶片泵,液压电机,油泵电机,变量叶片泵,油压电机-广东俊泰液压科技有限公司 | 涡流探伤仪-超声波探伤仪-上海仓信电子科技有限公司 | 温湿度变送器_pm2.5传感器_湿敏电阻_二氧化碳传感器_甲醛传感器-美特瑞科技 | 易居房产律师网|北京房产律师|房产纠纷律师|房产律师 | 在线BMI计算器 - 免费计算身体质量指数(BMI) | 江苏广分检测技术有限公司、电力安全工具检测、苏州绝缘工具检测、昆山电力安全工具检测-广分检测技术(苏州)有限公司 |