问题
每当我点击提交按钮时,我都会填写一个POST,它应该设置POST。 但不幸的是,由于一些随机的原因,它没有填补POST。
代码
echo '
<form action="settings.php" method="POST">
<textarea name="area" class="input" id="textarea">'.$settings_welcome_page['paragraph'].'</textarea><br />
<input type="submit" value="Edit" class="button">
</form>';
if (isset($_POST['area'])) {
$update = $CONNECT_TO_DATABASE->prepare("UPDATE welcome_text SET paragraph = :message");
$update->bindValue(':message', $_POST['paragraph']);
$update->execute();
header ('Location: settings.php?status=sucess');
} else {
echo' post not working ';
}
它回复了'Post not working'。这意味着没有设置POST“区域”。
有什么问题?我该如何解决?感谢。
答案 0 :(得分:2)
$_POST['paragraph']
应该是
$_POST['area']
在您的条件中绑定值也可以是广告
if(isset($_POST['area']) || (isset($_GET['status']) == 'success')){
// code here..
}
else{
// code here..
}
让您看看您是否已提交表格而不是落入其他地方。
一般情况......您的代码应如下所示
if (isset($_POST['area']) || (isset($_GET['status']) == 'succes')) {
$update = $CONNECT_TO_DATABASE->prepare("UPDATE welcome_text SET paragraph = :message");
$update->bindValue(':message', $_POST['area']);
$update->execute();
header ('Location: settings.php?status=sucess');
} else {
echo' post not working ';
}
答案 1 :(得分:1)
这就是:
header
函数)。要修复此问题,请移除header()
电话,但不会重新加载。
那,并参考正确的索引:$_POST['area']
而不是$_POST['paragraph']
。
答案 2 :(得分:0)
在您的代码中,您的服务器将通过重定向标头回答POST:
if (isset($_POST['area'])) {
header ('Location: settings.php?status=sucess');
} else {
echo' post not working ';
}
当浏览器收到此标头时,会向服务器发送GET settings.php?status=sucess
。
这就是您收到post not working
消息的原因。
如果您尝试使用此代码,您将看到您的POST运行良好:
<html><body><?php
echo '
<form action="settings.php" method="POST">
<textarea name="area" class="input" id="textarea">bla bla ...</textarea><br />
<input type="submit" value="Edit" class="button">
</form>';
if (isset($_POST['area'])) {
echo' this was a POST of area='.$_POST['area'];
} else {
echo' this was a GET ';
}
?></body></html>