2010-08-14 41 views
3

我還沒有正式開始學習PHP,只是瀏覽了幾個教程,我有一個問題。爲什麼有人會選擇使用Get vs Post?爲什麼你會想要在url欄中顯示的數據?我知道帖子用於密碼和重要信息,但我不明白爲什麼你會使用get而不是隻是發佈所有的時間?

感謝您的任何見解。

+1

重複:http://stackoverflow.com/questions/46585/when-do-you-use-post-and-when-do-you -use-get – jasonbar 2010-08-14 01:32:57

回答

17

如果你希望人們能夠分享他們的朋友的鏈接...用於如http://example.com/products.php?product_id=12

+0

哦有道理..我想我明白了。 – user377419 2010-08-14 01:32:13

+0

+1打我吧=) – 2010-08-14 01:33:42

+1

爲什麼downvote?這是一個完全有效的答案。 – 2010-08-14 01:33:58

28

$_GET對於用戶請求數據的頁面(例如搜索頁面和用戶可能希望收藏並與其他人共享的頁面)非常有用。操作應該是只讀

$_POST對於用戶「發佈」數據的頁面(例如註冊表單)非常有用。 $_POST當你不要想要你的訪問者能夠書籤頁。 寫入數據的操作。

由於prodigitalson增加了:您可以使用$_POST$_GET進行任何操作,但最好如上所述使用它們。

+3

'+ 1'作爲一個很好的答案。 – 2010-08-14 01:33:26

+3

我想補充一點,將'GET'看作只讀操作也是有用的,其中'POST'是可讀/寫的。這不是'GET' /'POST'固有的限制,而是一個很好的練習。 – prodigitalson 2010-08-14 01:36:31

+0

好的補充,添加它。 – 2010-08-14 01:44:53

0

你必須通過PARAMS(數據)的腳本沒有表單提交,或想分享一些腳本倍給某人。在這種情況下,$ _GET很有用。

GET方法可能會導致長URL,甚至可能超過一些瀏覽器和服務器對URL長度的限制。

+0

不回答這個問題。 – 2010-08-14 01:32:51

10

GET請求是冪等的。 POST請求更改服務器狀態。

這是一個HTTP問題,而不是PHP問題。

3

你打算在每個鏈接上填寫你的網站的表單和按鈕?您在本網站上看到的每個鏈接都發送GET變量..也許您的問題與表單中的「方法」屬性有關,如果是這種情況,那麼90%的案例發佈是更好的選擇 不要擔心安全問題:)只是因爲你沒有看到導航欄中的信息並不意味着它的安全,看郵件發送的信息只有兩次點擊;

+0

該問題主要與瀏覽器歷史記錄/瀏覽器狀態有關。通過使用'$ _POST',您可以防止在鏈接以電子郵件(等)發送或保存在瀏覽器歷史記錄中時暴露數據,因此'$ _POST'僅限於單個瀏覽器的會話。 – cbednarski 2010-08-14 01:53:26

+0

是的..我完全同意,如果我們正在談論使用表單發送的信息,但對於鏈接是完全不同的。問題是「爲什麼你會使用get而不是隻發佈所有時間?」..因爲你不能用表單替換鏈接:)(並且一些瀏覽器也保存表單發送的信息用於自動完成) – pleasedontbelong 2010-08-14 02:18:09

0

GET可用於多種原因.. 如果你想與你的朋友分享一個網址,如http://site.com/share.php?id=123 < - 經常使用。

它經常用來做動態操作。

當不能共享感應信息時,經常使用POST。

你可以看看它在谷歌,瞭解更多=)