|
在實際的網(wǎng)站開發(fā)當(dāng)中,我們經(jīng)常會遇到在一個頁面定義的變量,在另外一個頁面也要使用,這就需要我們在頁面之間傳遞變量.下面介紹一些常用的方法: 一、用form表單中的hidden隱藏域。這種方法就是把待傳遞的變量用表單的方式再次傳送,比如在用戶登陸后,把他的信息如$username、$id等等信息用表單發(fā)送到下一張網(wǎng)頁,當(dāng)然,很多情況,是諸如text、option等等框體不想再被看到的話,可以采用隱藏的輸入域。下面是一個實例,假設(shè)$username是經(jīng)過上頁為驗證身份發(fā)送到本頁并且在本頁經(jīng)過驗證的變量,想傳遞到下一頁中去,那么可以建立文件test4.php: <?$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ù)器,輸入http://127.0.0.1/test4.php在頁面的按鈕上點擊,會發(fā)現(xiàn)新出的網(wǎng)頁上$username的值已經(jīng)傳送過來了。 當(dāng)然這種方法的弱點是很明顯的,它還要再使用一個表單,而且在test5.php的網(wǎng)頁上想要刷新的話還要重新發(fā)送,這顯然是不太友好的。 二、使用session。后來,我查找了一些關(guān)于session的文章,覺得這時傳遞變量的一種非常好的方法。下面通過舉例子來說明: 建立一個新文件test6.php: <?session_start(); //初始化一個session session_register("username"); //注冊一個session變量 $username="張明"; //要傳遞的變量值 echo "<a href=test7.php>去看看</a>"; ?> test7.php: <?session_start(); //初始化一個session echo "你好,$username,歡迎光臨php自學(xué)網(wǎng)!";?> //顯示傳遞過來的變量 使用這種方法的時候要注意:<?session_start();?>應(yīng)該放在文件的最前面,即"<?"前面不應(yīng)有任何內(nèi)容,包括空格,這是我調(diào)試多次未成功找出的原因。 這個變量只能在當(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值傳給下一個窗口。 ?> 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等等.在此不做過多介紹. |
|
|
來自: 小小243 > 《php mysql》