表單是Web平台允許用戶與頁面互動並將數據發送到服務器的方式。

以下是HTML中的一個簡單表單:

<form>
 <input type="text" name="name" />
 <input type="submit" />
</form>

你可以將其放置在名為index.php的文件中,就像名為index.html一樣。

PHP文件中允許你在其中編寫HTML,並使用一些“PHP填料”(即<?php ?>)來與客戶端進行通信。有時,PHP部分占據了整個頁面,這就是通過PHP生成所有HTML的方式-與我們現在所執行的相反。

所以,我們有這個生成基於純HTML的表單的index.php文件:

單擊提交按鈕將向相同的URL發送一個GET請求,通過查詢字符串將數據發送出去,請注意URL已更改為localhost:8888/?name=test

我們可以添加一些代碼來檢查該參數是否設置,使用isset()函數:

<form>
 <input type="text" name="name" />
 <input type="submit" />
</form>

<?php
if (isset($_GET['name'])) {
 echo '<p>The name is ' . $_GET['name'];
}
?>

看到了嗎?我們可以通過$_GETGET請求的查詢字符串中獲取信息。

然而,你通常會使用表單執行POST請求:

<form **method="POST"**>
 <input type="text" name="name" />
 <input type="submit" />
</form>

<?php
if (isset($_POST['name'])) {
 echo '<p>The name is ' . $_POST['name'];
}
?>

看,我們獲得了相同的信息,但URL未更改,表單信息未附加到URL上。

這是因為我們使用POST請求,這種方式將數據通過urlencoded數據發送到服務器。

正如之前提到的,PHP仍然會提供index.php文件,因為我們仍然向與表單相同的URL發送數據。

我們正在混合了很多代碼,我們可以將表單請求處理程序與生成表單的代碼分開。

因此,在index.php中,我們可以有以下內容:

<form **method="POST" action="/post.php"**>
 <input type="text" name="name" />
 <input type="submit" />
</form>

然後,我們可以創建一個新的post.php文件,內容如下:

<?php
if (isset($_POST['name'])) {
 echo '<p>The name is ' . $_POST['name'];
}
?>

PHP現在會在提交表單後顯示此內容,因為我們在表單上設置了action HTML屬性。

這個例子非常簡單,但post.php文件是我們可以將數據保存到數據庫或文件的地方。