2013-04-02 84 views
-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'區域'沒有設置。

什麼問題?我該如何解決?謝謝。

+1

什麼的var_dump($ _ POST);顯示?我希望你的表單和你的查詢不在同一頁面上。 – Thargor

+0

var_dump($ _ POST)的輸出是什麼' – Hailwood

+0

您在同一頁上有表單和查詢嗎? –

回答

2
$_POST['paragraph'] 

應該

$_POST['area'] 

在你的病情還結合了價值,你可能會隨着廣告

if(isset($_POST['area']) || (isset($_GET['status']) == 'success')){ 
    // code here.. 
} 
else{ 
    // code here.. 
} 

給你看,如果你已經提交的形式,而不是落入別人。

IN General..your代碼看起來應該是這樣

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 '; 
     } 
+0

這不是問題。 –

+0

關鍵是「如果(isset($ _ POST ['area']))」,因爲他得到的輸出「post not working」 – Thargor

+0

我的觀點是,當他提交這個數據時會起作用但數據不會被更新他重定向它這就是爲什麼它會在重定向後落在其他條件 –

1

這是發生了什麼:

  1. 您填寫的表格,然後點擊 「編輯」,
  2. 形式被髮布,將數據放入數據庫中,
  3. 您已重定位到同一頁面,但是沒有 POST(通過調用header函數)。
  4. 您的頁面顯示,沒有POST,呈現「發佈不工作」。

要修復,請刪除header()調用,它將不會重新加載。

那,並提到正確的索引:$_POST['area']而不是$_POST['paragraph']

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>