POST不会被填满

时间:2013-04-02 08:54:26

标签: php post

问题

每当我点击提交按钮时,我都会填写一个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“区域”。

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

3 个答案:

答案 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)

这就是:

  1. 您填写表格并点击“修改”,
  2. 表单获取POST并将数据放入数据库
  3. 您重新定位到同一页面,但没有 POST(通过调用header函数)。
  4. 您的页面显示,没有POST,呈现“Post not working”。
  5. 要修复此问题,请移除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>