PHP頁(yè)面間傳遞值和保持值的方法
一、目錄結(jié)構(gòu)
二、兩次頁(yè)面間傳遞值
在兩次頁(yè)面之間傳遞少量數(shù)據(jù),可以使用get提交,也可以使用post提交,二者的區(qū)別恕不贅述。
1、get提交
使用get提交來(lái)傳遞數(shù)據(jù),在鏈接地址中修改發(fā)送到服務(wù)器的 URL 如下所示
從帶有 GET 方法的表單發(fā)送的信息,對(duì)任何人都是可見(jiàn)的(會(huì)顯示在瀏覽器的地址欄),并且對(duì)發(fā)送信息的量也有限制。
<html> <head> <meta charset="utf-8"> <title>get提交值</title> </head> <body> <form action="getPage.php" method="get"> 名字: <input type="text" name="gName"> 年齡: <input type="text" name="gAge"> <input type="submit" value="提交"> </form> </body> </html>
"getPage.php" 文件現(xiàn)在可以通過(guò) $_GET 變量來(lái)收集表單數(shù)據(jù)了(請(qǐng)注意,表單域的名稱會(huì)自動(dòng)成為 $_GET 數(shù)組中的鍵):
1 歡迎 <?php echo $_GET["gName"]; ?>!<br> 2 你的年齡是 <?php echo $_GET["gAge"]; ?> 歲。
2、post提交
使用post提交來(lái)傳遞數(shù)據(jù),在表單中設(shè)置method="post",php中接收post提交的數(shù)據(jù)值,使用預(yù)定義$_POST變量
從帶有 POST 方法的表單發(fā)送的信息,對(duì)任何人都是不可見(jiàn)的(不會(huì)顯示在瀏覽器的地址欄),并且對(duì)發(fā)送信息的量也沒(méi)有限制。
注釋:然而,默認(rèn)情況下,POST 方法的發(fā)送信息的量最大值為 8 MB(可通過(guò)設(shè)置 php.ini 文件中的 post_max_size 進(jìn)行更改)。
<html> <head> <meta charset="utf-8"> <title>post提交值</title> </head> <body> <form action="postPage.php" method="post"> 名字: <input type="text" name="pName"> 年齡: <input type="text" name="pAge"> <input type="submit" value="提交"> </form> </body> </html>
"postPage.php" 文件現(xiàn)在可以通過(guò) $_POST 變量來(lái)收集表單數(shù)據(jù)了(請(qǐng)注意,表單域的名稱會(huì)自動(dòng)成為 $_POST 數(shù)組中的鍵):
歡迎 <?php echo $_POST["pName"]; ?>!<br> 你的年齡是 <?php echo $_POST["pAge"]; ?> 歲。
三、多個(gè)頁(yè)面之間保持值
在多個(gè)頁(yè)面之間保持?jǐn)?shù)據(jù),可以使用session保存,也可以使用cookie保存,二者的區(qū)別恕不贅述。
1、session保存數(shù)據(jù)
PHP session 變量用于存儲(chǔ)關(guān)于用戶會(huì)話(session)的信息,或者更改用戶會(huì)話(session)的設(shè)置。Session 變量存儲(chǔ)單一用戶的信息,并且對(duì)于應(yīng)用程序中的所有頁(yè)面都是可用的。Session 的工作機(jī)制是:為每個(gè)訪客創(chuàng)建一個(gè)唯一的 id (UID),并基于這個(gè) UID 來(lái)存儲(chǔ)變量。UID 存儲(chǔ)在 cookie 中,或者通過(guò) URL 進(jìn)行傳導(dǎo)。
在您把用戶信息存儲(chǔ)到 PHP session 中之前,首先必須啟動(dòng)會(huì)話。
注釋:session_start() 函數(shù)必須位于 <html> 標(biāo)簽之前:
存儲(chǔ)和取回 session 變量的正確方法是使用 PHP的$_SESSION變量:
<?php session_start(); // 存儲(chǔ) session 數(shù)據(jù) $_SESSION['viewCount']=1; ?> <html> <head> <meta charset="utf-8"> <title>session保持?jǐn)?shù)據(jù)值</title> </head> <body> <?php // 取出 session 數(shù)據(jù) echo "瀏覽量:". $_SESSION['viewCount']; ?> </body> </html>
2、cookie保存數(shù)據(jù)
cookie 常用于識(shí)別用戶。cookie 是一種服務(wù)器留在用戶計(jì)算機(jī)上的小文件。每當(dāng)同一臺(tái)計(jì)算機(jī)通過(guò)瀏覽器請(qǐng)求頁(yè)面時(shí),這臺(tái)計(jì)算機(jī)將會(huì)發(fā)送 cookie。通過(guò) PHP,您能夠創(chuàng)建并取回 cookie 的值。
setcookie() 函數(shù)用于設(shè)置 cookie。
注釋:setcookie() 函數(shù)必須位于 <html> 標(biāo)簽之前。
語(yǔ)法如下
//name存儲(chǔ)的鍵名 //value存儲(chǔ)的鍵值 //expire存儲(chǔ)的超時(shí)時(shí)間 //path存儲(chǔ)的位置 //domain存儲(chǔ)區(qū)別的域名 setcookie(name, value, expire, path, domain);
$_COOKIE 變量用于取回 cookie 的值。
<?php // 輸出 cookie 值 echo $_COOKIE["user"]; // 查看所有 cookie print_r($_COOKIE); ?>
當(dāng)刪除 cookie 時(shí),您應(yīng)當(dāng)使過(guò)期日期變更為過(guò)去的時(shí)間點(diǎn):
<?php // 設(shè)置 cookie 過(guò)期時(shí)間為過(guò)去 1 小時(shí) setcookie("user", "", time()-3600); ?>
以上所述是小編給大家介紹的PHP頁(yè)面間傳遞值和保持值的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Laravel5.1自定義500錯(cuò)誤頁(yè)面示例
這篇文章主要介紹了Laravel5.1自定義500錯(cuò)誤頁(yè)面的方法,結(jié)合實(shí)例形式分析了Laravel5.1自定義錯(cuò)誤頁(yè)面的相關(guān)文件修改技巧,需要的朋友可以參考下2016-10-10再談Yii Framework框架中的事件event原理與應(yīng)用
這篇文章主要介紹了再談Yii Framework框架中的事件event原理與應(yīng)用,結(jié)合實(shí)例形式分析了再談Yii框架中的事件event相關(guān)原理、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04php項(xiàng)目接入xxl-job調(diào)度系統(tǒng)的示例詳解
這篇文章主要介紹了php項(xiàng)目接入xxl-job調(diào)度系統(tǒng)的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12PHP隊(duì)列場(chǎng)景以及實(shí)現(xiàn)代碼實(shí)例詳解
這篇文章主要介紹了PHP隊(duì)列場(chǎng)景以及實(shí)現(xiàn)代碼實(shí)例詳解,有感興趣的同學(xué)可以跟著學(xué)習(xí)研究下2021-02-02PHP登錄(ajax提交數(shù)據(jù)和后臺(tái)校驗(yàn))實(shí)例分享
本文主要分享了PHP登錄(ajax提交數(shù)據(jù)和后臺(tái)校驗(yàn))的實(shí)例代碼,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2016-12-12php獲取POST數(shù)據(jù)的三種方法實(shí)例詳解
本文介紹php獲取POST數(shù)據(jù)的三種方法,第一種方法是$_POST,第二種方法是使用file_get_contents,第三種方法是使用全局變量$GLOBALS, 具體請(qǐng)看下面說(shuō)明2016-12-12