2011-04-23 34 views
3

我有這個網站,我經常發現自己試圖從一個網頁傳遞信息到下一個,最好的方法是什麼?會話幾乎是最好的選擇,因爲如果我需要傳遞大量的信息呢?那麼什麼?如何通過網站的網頁傳遞信息

+0

我不知道爲什麼有大量的信息會使會議使用不太理想的方法......如果有什麼讓它更可取... – prodigitalson 2011-04-23 17:39:13

+0

不需要是粗魯的... – user722769 2011-04-23 18:23:30

+0

@ user719321:我wasnt粗魯..我是jsut說我會認爲有很多數據會使會議最可行的解決方案... – prodigitalson 2011-04-23 18:52:44

回答

5

你有幾個可能的解決方案,我想:

  • 使用Cookie來存儲所有數據;好,一般不太好主意:
    • 它們的大小是有限的
    • 他們來回走在每個頁面加載網絡(也請求資源,如CSS/JS /圖像時)
    • 它們存儲客戶端
  • 傳遞從一個頁面一些標識符到下一個(使用URL的參數,或者在形成一個隱藏的輸入,典型地),並使用該標識符來獲取/將數據存儲在某處
    • 就像在一個數據庫
    • 或分佈式緩存集羣
  • 或者只是使用PHP的會議,它將爲你做的,相當多:
    • 標識符通常會在cookie中傳遞,
    • 默認情況下,數據將存儲在文件中 - 但您可以非常輕鬆地將其存儲在數據庫或memcached羣集中。


不過要注意: - 這是通過在瀏覽器中的所有選項卡共享會話標識符,在PHP中,一般都使用Cookie傳遞。

確保您的網站將與多個選項卡一起工作 - 即在一個選項卡會話中的修改將不會在中打破在其他選項卡中導航!

+0

我到底該如何處理multitab情況? – user722769 2011-04-23 18:21:55

2

你可以通過頁面之間的值在以下幾個方面:

  • 請求參數
  • 會議
  • 餅乾

this鏈接的例子。

+0

你忘記了發佈數據 – 2014-12-28 08:57:41

+0

和http referer – 2014-12-28 08:58:19

2

我假設你的意思是「在頁面之間傳遞PHP變量的最佳方式是什麼」。在那種情況下,會話是正確的答案。該會話可以處理任何數量的短於php.ini中的內存限制的數據。

您必須在您想要使用共享變量的所有PHP頁面的頂部運行session_start();

您可以管理像數組會話變量:

<?php 
    // Start/resume the session 
    session_start(); 

    // Create a variable 
    $myvariable = "Hello, world!"; 

    // Set the value of that variable to session 
    $_SESSION["myvariable"] = $myvariable; 

    // You can also set data directly to the session 
    $_SESSION["anothervariable"] = "Bye, world!"; 
?> 

現在你可以從任何頁面訪問數據是這樣的:

<?php 
    // Start/resume the session 
    session_start(); 

    // Now you can fetch data from the same session variable 
    echo $_SESSION["myvariable"]; // Hello, world! 
    echo $_SESSION["anothervariable"]; // Bye, world! 
?> 

Tizag對與PHP工作一個科瑞教程session:
http://www.tizag.com/phpT/phpsessions.php

祝你好運! :-)

1

爲了用戶可訪問性(最小到最大)的:

  • Session變量 - $_SESSION['var']
  • 餅乾
  • $_POST['var']
  • $_GET['var']
2

如果您正在使用PHP,並將數據從一個頁面傳遞到另一個頁面,您可以這樣做 page1.php中

<a href="page2.php?somevalue=whatever&morevalue=somethingelse">Go to page 2</a> 

使page2.php

<? 
    echo $_GET["somevalue"]; //it will print out whatever 
    echo "<br />".$_GET["morevalue"]; // it will print out somethingelse 
?> 

而且還讀什麼人說:)

1

,如果你有大量的數據量,你需要來回移動,節省該信息到數據庫可能是最有效的。這將節省您不得不將所有信息加載到cookie/session/etc中的麻煩。然後當你想要回傳信息時,必須在另一端解複用。

通過將它存儲在數據庫中,您可以確保它會一直存在,並且您可以隨時回來並檢索它。