2010-04-15 54 views
0

好吧,對於我目前爲止的所有編碼,我在同一個腳本上使用了GETs和$ _POST。

例如:profile.php將顯示用戶所做的所有帖子,並且在他們的每篇帖子下,他們都可以編輯帖子。我一直在使用它的方式是通過$ _GETs。所以..

//this is the link users click to edit their post 
    echo '<td><a href="editad.php?posting_id='.$row3['posting_id'].' ">Edit</a>'; 

//on the editad.php 
$posting_id=$_GET['posting_id']; 
if (isset($posting_id)){ 
    //show all the forms, sqls to do the editing 
} 
else{ //if the $_GET hasn't been set 
    echo "You have not specified which ad to edit. Please go back"; 
} 

如何通過POST來做到這一點? 謝謝:)

回答

3

當HTML <form>元素包含method="POST"時,瀏覽器將提交POST請求。您不需要在PHP端做任何特殊的事情。

<form action="index.php" method="POST"><input type="text" name="blue"></form> 

提交時,PHP會看到一個變量$_POST['blue']與內容無論是在已提交的文本。

這就是說,要留意。在你給出的代碼的第一行中,你應該堅持使用URL中的消息ID,因爲那是GET,當你不對數據做任何改變時,你應該使用它。

此外,由於我看到了您的其他問題,請讓我提醒您確保您檢查用戶是否有權查看該頁面。例如,搜索引擎將抓取GET頁面,但不抓取POST。

最後,沒有辦法強制瀏覽器在未指定AFAIK的情況下使用POST,因此無法在純PHP中執行此操作。

+0

疑難雜症的區別!謝謝。我試圖看看是否可以使用POST作爲「GET」方式,並且猜測你不能。猜猜我必須堅持GET。 – ggfan 2010-04-15 04:10:47

+1

@ggfan:經驗法則是:如果要以任何方式編輯文件或數據庫(刪除,修改,創建),請使用POST。否則使用GET。 – waiwai933 2010-04-15 04:12:02

0

通常你通過HTML表單使用POST變量。

但是,您不能在鏈接中使用POST變量。通過使用post變量,變量會在幕後提交。

解釋變量後的功能,特別是如果你還沒有被引入到它之前可能是乏味的,所以我要你點幾個環節:

解釋$ _ POST: http://w3schools.com/php/php_post.asp

的講解說明$ _ POST和$ _GET http://www.tizag.com/phpT/postget.php