一、用form表單中的hidden隱藏域。這種方法就是把待傳遞的變量用表單的方式再次傳送,比如在用戶登陸后,把他的信息如$username、$id等等信息用表單發(fā)送到下一張網(wǎng)頁,當(dāng)然,很多情況,是諸如text、option等等框體不想再被看到的話,可以采用隱藏的輸入域。下面是一個(gè)實(shí)例,假設(shè)$username是經(jīng)過上頁為驗(yàn)證身份發(fā)送到本頁并且在本頁經(jīng)過驗(yàn)證的變量,想傳遞到下一頁中去,那么可以建立文件test4.PHP:
創(chuàng)新互聯(lián)建站專注于建始網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供建始營銷型網(wǎng)站建設(shè),建始網(wǎng)站制作、建始網(wǎng)頁設(shè)計(jì)、建始網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造建始網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供建始網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
?$username="張明";?
form method="post" action="test5.php"
input type="hidden" name="username" value="?echo $username?"
input type="submit" name="submit" value="看看"
/form
test5.php:
?echo "你好,$username,歡迎光臨php自學(xué)網(wǎng)!";?
打開apache服務(wù)器,輸入在頁面的按鈕上點(diǎn)擊,會(huì)發(fā)現(xiàn)新出的網(wǎng)頁上$username的值已經(jīng)傳送過來了。
當(dāng)然這種方法的弱點(diǎn)是很明顯的,它還要再使用一個(gè)表單,而且在test5.php的網(wǎng)頁上想要刷新的話還要重新發(fā)送,這顯然是不太友好的。
二、使用session。后來,我查找了一些關(guān)于session的文章,覺得這時(shí)傳遞變量的一種非常好的方法。下面通過舉例子來說明:
建立一個(gè)新文件test6.php:
?session_start(); //初始化一個(gè)session
session_register("username"); //注冊一個(gè)session變量
$username="張明"; //要傳遞的變量值
echo "a href=test7.php去看看/a";
?
test7.php:
?session_start(); //初始化一個(gè)session
echo "你好,$username,歡迎光臨php自學(xué)網(wǎng)!";? //顯示傳遞過來的變量
使用這種方法的時(shí)候要注意:?session_start();?應(yīng)該放在文件的最前面,即"?"前面不應(yīng)有任何內(nèi)容,包括空格,這是我調(diào)試多次未成功找出的原因。
這個(gè)變量只能在當(dāng)前打開的瀏覽器中傳遞,若要在新打開的窗口中也能傳遞,剛要按下面的方法來做:
文件:test8.php
?session_start();
session_register("username");
$username="張明";
echo "a href=test7.php?$a=".session_id()." target=_blank去看看/a"; //將當(dāng)前的session的id值傳給下一個(gè)窗口。
?
test7.php
?session_start();
echo "你好,$username,歡迎你的光臨!";?
三,通過cookie
建立文件test9.php
?SetCookie("username","張明");//把username設(shè)置到cookie中去
echo "a href=test5.php target=_blank去看看/a";?
文件test5.php
建立test5.php:
?echo "你好,$username,歡迎你的光臨php自學(xué)網(wǎng)!";?
總結(jié):以上只是一些常用的方法,還有很多的方法,如可以使用數(shù)據(jù)庫,memcache等等.在此不做過多介紹.
通過session來儲(chǔ)存
?php
session_start();
$_SESSION['username'] = "userName";
?
在其它頁面直接取出就行了
?
session_start();
echo?$_SESSION['username'];
?
通過url傳向其它頁面?zhèn)鬟f參數(shù)
other.php?user=xxx
?或在php重定向到其它頁面時(shí)
$username = "xxx";
$home_url = 'logIn.php?user='.$username;
header('Location:'.$home_url);
其它頁面用$_GET["user"]來接收
3.通過表單向其它頁面?zhèn)魉蛥?shù)
其它頁面用$_POST["user"]來接收
使用數(shù)據(jù)加密,或者使用https協(xié)議來傳輸數(shù)據(jù)。
數(shù)據(jù)加密建議使用自己的加密方式,加密的key是關(guān)鍵,這個(gè)一定不能泄露,兩個(gè)網(wǎng)站的服務(wù)器都需要有這個(gè)key,發(fā)送數(shù)據(jù)時(shí)發(fā)送方加密數(shù)據(jù),將密文傳輸給接收方,接收方同樣用key解密即可。只要key不泄露,就算數(shù)據(jù)被人攔截,也是加密過的密文,通常沒有Key是解不開的。
https協(xié)議可以自動(dòng)為傳輸數(shù)據(jù)加密,不過就要求https協(xié)議證書了,這個(gè)數(shù)字證書是需要申請的。
第一種辦法:
一般web開發(fā)的通用的頁面之間傳遞方法主要有post,get,其實(shí),這個(gè)也是http協(xié)議內(nèi)容里面,所有的web開發(fā)語言都實(shí)現(xiàn)這個(gè),php也不例外,php獲取其他頁面?zhèn)鬟f過來的參數(shù)可以如下:
$var1 = $_POST['var1 '];
$var1 = $_GET['var1 '];
$var1 = $_REQUEST['var1 '];(獲取get或者post的數(shù)據(jù))
第二種辦法:
另外一種通用的辦法:可以通過服務(wù)端的session來存儲(chǔ)并獲取數(shù)據(jù)
第三種辦法:
通過php的全局變量來傳遞參數(shù)