在實際的網站開發(fā)當中,我們經常會遇到在一個頁面定義的變量,在另外一個頁面也要使用,這就需要我們在頁面之間傳遞變量.下面介紹一些常用的方法: 一、用form表單中的hidden隱藏域。這種方法就是把待傳遞的變量用表單的方式再次傳送,比如在用戶登陸后,把他的信息如$username、$id等等信息用表單發(fā)送到下一張網頁,當然,很多情況,是諸如text、option等等框體不想再被看到的話,可以采用隱藏的輸入域。下面是一個實例,假設$username是經過上頁為驗證身份發(fā)送到本頁并且在本頁經過驗證的變量,想傳遞到下一頁中去,那么可以建立文件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自學網!";?> 打開apache服務器,輸入http://127.0.0.1/test4.php在頁面的按鈕上點擊,會發(fā)現(xiàn)新出的網頁上$username的值已經傳送過來了。 當然這種方法的弱點是很明顯的,它還要再使用一個表單,而且在test5.php的網頁上想要刷新的話還要重新發(fā)送,這顯然是不太友好的。 二、使用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,歡迎光臨php自學網!";?> //顯示傳遞過來的變量 使用這種方法的時候要注意:<?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,歡迎你的光臨php自學網!";?> 總結:以上只是一些常用的方法,還有很多的方法,如可以使用數(shù)據庫,memcache等等.在此不做過多介紹. |
|
來自: 小小243 > 《php mysql》