PHP 表單提交給自己
更新時(shí)間:2008年07月24日 13:21:03 作者:
使用PHP進(jìn)行Web開發(fā),表單(Form)的使用隨處可見,利用其屬性Action和Method可以指定表單的內(nèi)容要發(fā)送處理的URL以及如何將表單數(shù)據(jù)發(fā)送到服務(wù)器。
在大部分情況下我們指定另外一個(gè)來處理表單內(nèi)容的URL地址給Action屬性,但也有部分情況是需要將表單數(shù)據(jù)提交給自己的。這時(shí)候我們應(yīng)該如何指定Action屬性值呢?
<?php
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
print '<pre>';
print_r($_POST);
print '<a href="'. $_SERVER['PHP_SELF'] .'">Please try again</a>';
print '</pre>';
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Name: <input type="text" name="personal[name]"><br>
Email: <input type="text" name="personal[email]"><br>
Beer: <br>
<select multiple name="beer[]">
<option value="warthog">Warthog
<option value="guinness">Guinness
</select><br>
<input type="hidden" name="action" value="submitted">
<input type="submit" name="submit" value="submit me!">
</form>
<?php
}
?>
上面的代碼就實(shí)現(xiàn)了將表單提交給自己(注:在PHP4.1.0之前的版本請(qǐng)使用$_HTTP_POST_VARS替代下面代碼中的$_Post變量)。這里使用了服務(wù)器變量$_Server獲取當(dāng)前頁面的URL地址,并將其賦給表單的Action屬性。這里使用了一個(gè)小小的技巧用以服務(wù)器在收到該URL請(qǐng)求是確定是POST請(qǐng)求還是GET請(qǐng)求。就是在表單中增加一個(gè)隱藏的變量,在處理請(qǐng)求時(shí)我們通過isset函數(shù)檢測(cè)是否設(shè)置了這個(gè)隱藏變量,由此判斷出該請(qǐng)求使用了POST還是GET方法。
<?php
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
print '<pre>';
print_r($_POST);
print '<a href="'. $_SERVER['PHP_SELF'] .'">Please try again</a>';
print '</pre>';
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Name: <input type="text" name="personal[name]"><br>
Email: <input type="text" name="personal[email]"><br>
Beer: <br>
<select multiple name="beer[]">
<option value="warthog">Warthog
<option value="guinness">Guinness
</select><br>
<input type="hidden" name="action" value="submitted">
<input type="submit" name="submit" value="submit me!">
</form>
<?php
}
?>
上面的代碼就實(shí)現(xiàn)了將表單提交給自己(注:在PHP4.1.0之前的版本請(qǐng)使用$_HTTP_POST_VARS替代下面代碼中的$_Post變量)。這里使用了服務(wù)器變量$_Server獲取當(dāng)前頁面的URL地址,并將其賦給表單的Action屬性。這里使用了一個(gè)小小的技巧用以服務(wù)器在收到該URL請(qǐng)求是確定是POST請(qǐng)求還是GET請(qǐng)求。就是在表單中增加一個(gè)隱藏的變量,在處理請(qǐng)求時(shí)我們通過isset函數(shù)檢測(cè)是否設(shè)置了這個(gè)隱藏變量,由此判斷出該請(qǐng)求使用了POST還是GET方法。
相關(guān)文章
PHP+Mysql+jQuery查詢和列表框選擇操作實(shí)例講解
這篇文章主要介紹了PHP+Mysql+jQuery查詢和列表框選擇操作實(shí)現(xiàn)過程,需要的朋友可以參考下2015-10-10php session_start()關(guān)于Cannot send session cache limiter - hea
在windows下編程,當(dāng)使用session_start()方法的時(shí)候,有時(shí)會(huì)報(bào) session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/inpublisher/php1.php:1)這樣的錯(cuò)誤2009-11-11Zend Framework中的簡(jiǎn)單工廠模式 圖文
某天又然后想到好久沒復(fù)習(xí)設(shè)計(jì)模式了。綜合一下,復(fù)習(xí)一個(gè)設(shè)計(jì)模式之后在ZF中找一下使用這模式的源碼吧,不讀所有源碼,讀讀比較”高級(jí)”的部分吧,要說模式,暫時(shí)不知道是不是所有模式ZF里面都有,但是應(yīng)該有足夠的模式夠我最近看了,在說可以找找其他開源的軟件來找模式2012-07-07使用PHP實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)可視化功能的示例詳解
實(shí)時(shí)數(shù)據(jù)可視化功能,是指在Web應(yīng)用程序開發(fā)中,將服務(wù)器發(fā)送的實(shí)時(shí)數(shù)據(jù),本文將介紹如何使用PHP和前端框架實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)可視化功能,需要的可以參考一下2023-07-07PHP中$_FILES的使用方法及注意事項(xiàng)說明
本篇文章主要是對(duì)PHP中$_FILES的使用方法及注意事項(xiàng)進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-02-02