[英]post method don't work in html form
我有這個簡單的html表單,並使用post方法。
<html>
<form action = "read.php" method="post">
<input type="text" name ="name">
<input type="submit">
</form>
</html>
這是我的php:
if(isset($_POST["name"])){
echo "sent";
}
else
{
echo "not sent";
}
當我運行代碼時,將出現“未發送”消息。似乎一切正常,但它不起作用,而GET方法正常工作並顯示“已發送”消息。是什么問題?
首先,請確保您的標記有效。 請注意,您在一些空格中不應有空格(例如, name ="name"
)。 至少應該有一個空白的HTML文檔,其內容位於<body>
標記內:
<!DOCTYPE html>
<html>
<head></head>
<body>
<form action="read.php" method="post">
<input type="text" name="name">
<input type="submit">
</form>
</body>
</html>
從您的問題尚不清楚上述表格是在read.php
還是單獨的腳本中?
如果它們是分開的(例如,表單在index.php
),則在瀏覽器中運行index.php
。 它應該發布到必須位於相同相對目錄中的read.php
。 , then run read.php
in your browser. 如果表單和PHP在 ,則在瀏覽器中運行read.php
。
使用PHP本身,最好通過輸出文章內容來調試它,例如
var_dump($_POST);
如果可行,您將在發布后得到一個包含表單內容的數組。 you have filled in the name
field and pressed the Submit button, eg 僅您填寫了name
字段並按下Submit按鈕后,該信息才會出現,例如
array(1) { ["name"]=> string(4) "andy" }
回到問題中的代碼...如果所有代碼都在同一腳本中, 則頁面加載時將顯示“未發送”,因為此時尚未發布任何內容 。 填寫name
字段並按下“提交”按鈕后,它將僅輸出“已發送”。
您想知道為什么該方法可以使用GET方法。 好吧,原因是因為GET會將表單字段附加到URL。 在頁面加載時,您運行index.php
。 沒有$_GET
參數。 提交表單后,將對URL進行操作(例如index.php?name=andy
)。 因此,在頁面加載時,它說“未發送”,但是一旦它在URL中具有?name=andy
,它就會說“已發送”,因為這是一個GET參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.