在本教程中,您將學習如何使用PHP超全局變量$_GET,$_ POST和$_REQUEST,收集通過表單提交的用戶輸入。
在本教程中,我們將創(chuàng)建一個簡單的HMTL聯(lián)系人表單,該表單允許用戶輸入他們的評論和反饋,然后使用PHP將其顯示在瀏覽器中。
打開您最喜歡的代碼編輯器并創(chuàng)建一個新的PHP文件?,F(xiàn)在輸入以下代碼并將此文件另存為“contact-form.php“在項目的根目錄中。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>聯(lián)系表</title> </head> <h2>聯(lián)系我們</h2> <p>請?zhí)顚懘吮砀癫l(fā)送給我們。</p> <form action="process-form.html" method="post"> <p> <label for="inputName">姓名:<sup>*</sup></label> <input type="text" name="name" id="inputName"> </p> <p> <label for="inputEmail">電子郵件:<sup>*</sup></label> <input type="text" name="email" id="inputEmail"> </p> <p> <label for="inputSubject">主題:</label> <input type="text" name="subject" id="inputSubject"> </p> <p> <label for="inputComment">內(nèi)容:<sup>*</sup></label> <textarea name="message" id="inputComment" rows="5" cols="30"></textarea> </p> <input type="submit" value="提交"> <input type="reset" value="重置"> </form> </html>
注意,開始<form>標記中有兩個屬性:
action屬性引用一個PHP文件“ process-form.php”,當用戶通過按下“提交”按鈕提交表單時,該文件接收輸入到表單中的數(shù)據(jù)。
method屬性告訴瀏覽器通過POST方法發(fā)送表單數(shù)據(jù)。
表單內(nèi)的其余元素是用于接收用戶輸入的基本表單控件。要了解有關(guān)HTML表單元素的更多信息,請查看HTML表單教程。
要訪問特定表單字段的值,可以使用以下超全局變量。這些變量在腳本的所有作用域中均可用。
超全局變量 | 描述 |
---|---|
$_GET | 包含表單使用get方法(即通過URL參數(shù))發(fā)送的所有字段名稱和值的列表。 |
$_POST | 包含表單使用post方法發(fā)送的所有字段名和值的列表(數(shù)據(jù)在URL中不可見)。 |
$_REQUEST | 包含$_GET和$_POST變量的值以及$_COOKIE超全局變量的值。 |
當用戶通過單擊“提交”按鈕提交上述聯(lián)系表單時,表單數(shù)據(jù)將發(fā)送到服務(wù)器上的“ process-form.php”文件中進行處理。它僅捕獲用戶提交的信息并將其顯示給瀏覽器。
“ process-form.php”文件的PHP代碼如下所示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>聯(lián)系表</title> </head> <h1>謝謝</h1> <p>這是您提交的信息:</p> <ol> <li><em>Name:</em> <?php echo $_POST["name"]?></li> <li><em>Email:</em> <?php echo $_POST["email"]?></li> <li><em>Subject:</em> <?php echo $_POST["subject"]?></li> <li><em>Message:</em> <?php echo $_POST["message"]?></li> </ol> </html>
上面的PHP代碼非常簡單。 由于表單數(shù)據(jù)是通過POST方法發(fā)送的,因此您可以通過將特定表單字段的名稱傳遞給$_POST超全局數(shù)組來檢索該字段的值,并使用echo()語句顯示每個字段的值。
在現(xiàn)實世界中,您不能相信用戶的輸入。您必須實施某種驗證以過濾用戶輸入,然后再使用它們。在下一章中,您將學習如何清理和驗證此聯(lián)系表單數(shù)據(jù)并使用PHP通過電子郵件將其發(fā)送。