-1

问题

每当我单击提交按钮时,我正在填写一个 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 '区域'。

问题是什么?我该如何解决?谢谢。

4

3 回答 3

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 ';
        }
于 2013-04-02T08:57:52.310 回答
1

这就是发生的事情:

  1. 您填写表格并点击“编辑”,
  2. 表单被 POST 并将数据放入数据库,
  3. 您重新定位到同一页面,但没有POST(通过调用该header函数)。
  4. 您的页面显示,没有 POST,呈现“发布不工作”。

要修复,请删除header()调用,它不会重新加载。

那,并参考正确的索引:$_POST['area']而不是$_POST['paragraph'].

于 2013-04-02T09:03:28.200 回答
0

在您的代码中,您的服务器将通过重定向标头回答 POST:

   if (isset($_POST['area'])) {
        header ('Location: settings.php?status=sucess');    
    } else {
        echo' post not working ';
    }

当浏览器接收到这个标头时,aGET 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>
于 2013-04-02T09:26:24.030 回答