php中兩個網頁之間的變數傳送 [ 作者: 豆牙齒 添加時間: 2001-5-28 22:53:08 ]
在網站設計中,我們常常用到使用者登陸這一方法,在登陸後,一般的網站都會根據不同的使用者來給定不同的頁面,在連結到該站的一個新的網頁或者開啟一張新網頁時,我們也會看到使用者的資訊能夠被記住,現在尤其常用的是,登陸後連結或開啟該站的其它網頁都會看到諸如"XXX,晚上好"之類的問候語,這些當然都是在登陸後變數傳送的結果,在我做個人首頁的過程中,曾嘗試幾種變數傳送的方法,現寫出來與大家探討一下。 一、這是最笨的方法,也是我最初沒有接觸session、cookie想出來的方法。這種方法就是把待傳遞的變數用表單的方式再次傳送,比如在使用者登陸後,把他的資訊如$username、$id等等資訊用表單發送到下一張網頁,當然,很多情況,是諸如text、option等等框體不想再被看到的話,可以採用隱藏的輸入欄位。下面是一個執行個體,假設$username是經過上頁為驗證身份發送到本頁並且在本頁經過驗證的變數,想傳遞到下一頁中去,那麼可以建立檔案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,歡迎你的光臨!";?> 開啟apache伺服器,輸入http://127.0.0.1/test4.php在頁面的按鈕上點擊,會發現新出的網頁上$username的值已經傳送過來了。 當然這種方法的弱點是很明顯的,它還要再使用一個表單,而且在test5.php的網頁上想要重新整理的話還要重新發送,這顯然是不太友好的。 二、使用session。後來,我尋找了一些關於session的文章,覺得這時傳遞變數的一種非常好的方法。下面通過舉例子來說明: 建立一個新檔案test6.php: <?session_start(); //初始化一個session session_register("username"); //註冊一個session變數 $username="張小明"; //要傳遞的變數值 echo "<a href=test7.php>去看看</a>"; ?> 建立test7.php: <?session_start(); //初始化一個session echo "你好,$username,歡迎你的光臨!";?> //顯示傳遞過來的變數 使用這種方法的時候要注意:<?session_start();?>應該放在檔案的最前面,即"<?"前面不應有任何內容,包括空格,這是我調試多次未成功找出的原因。 這個變數只能在當前開啟的瀏覽器中傳遞,若要在新開啟的視窗中也能傳遞,剛要按下面的方法來做: 檔案:test8.php <?session_start(); session_register("username"); $username="張小明"; echo "<a href=test7.php?$a=".session_id()." target=_blank>去看看</a>"; //將當前的session的id值傳給下一個視窗。 ?> 檔案test7.php <?session_start(); echo "你好,$username,歡迎你的光臨!";?> 三,通過cookie。還是通過例子說明: 建立檔案test9.php <?SetCookie("username","張小明");//把username設定到cookie中去 echo "<a href=test5.php target=_blank>去看看</a>";?> 檔案test5.php 建立test5.php: <?echo "你好,$username,歡迎你的光臨!";?> 以上是我在設計網頁及參考一些文章得出的方法,這裡注重的時介紹傳遞方法,而不是session和cookie的介紹,兩者具體的使用方法別的高手已經介紹多次,我就不在這裡班門弄斧了。如果文章發表後我又發現錯誤的話,會在下面的"發表意見"欄中給出改正方法,謝謝瀏覽。 |