php中兩個網頁之間的變數傳送

來源:互聯網
上載者:User

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的介紹,兩者具體的使用方法別的高手已經介紹多次,我就不在這裡班門弄斧了。如果文章發表後我又發現錯誤的話,會在下面的"發表意見"欄中給出改正方法,謝謝瀏覽。

   

1 2 下一頁
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.