2011-11-21 44 views
0

我有以下代碼。在PHP中使用textarea問題

print(" <form action='home.php' method='POST'> 
      <textarea name='changemainhometa' id='msgpost'> $home </textarea> 
      <input type='submit' name='changemainhomefinal' value='Change' /> 
     </form> "); 

$home是從數據庫

提取現在我改變textarea的,按提交的文本。

接着,下面的代碼被執行:

$value = $_POST["changemainhometa"]; 
print($value); 
$query = mysql_query("UPDATE contentdata 
         SET text = $value 
         WHERE key = 'home' "); 
print("Succesvol gewijzigd"); 

但現在,我每次執行該代碼時,它不會更新,不過這臺$value從數據庫舊變量,而不是新的我在文本區輸入的一個

Btw。,id:msgpost來自yahoo文本編輯器。

+0

Lads我修好了,這是textarea內的問題,感謝大家的幫助。 –

+0

你應該通過發佈一個答案來回答你自己的問題,然後把它打勾,這樣你的問題就會顯示爲「關閉」。 – stakx

回答

0

我已經修復了它,這是YUI簡單編輯器中的一個錯誤,它不允許我提交數據,以備將來參考,我在配置中用submitHandle:true修復了這個錯誤。

1

您正在將未轉義的未加引號的字符串放入查詢中。除了非常具體的輸入外,它會發生錯誤(或者運行SQL注入攻擊)。

使用bound parameters在SQL中包含變量時,不要將字符串混淆在一起。

+0

但是主要的問題是,編輯並提交後沒有改變textarea值 –

-4
'UPDATE contentdata 
         SET text = \''.$value.'\' 
         WHERE key = \'home\''; 
+0

很容易受到SQL注入的影響。不要這樣做。 – Quentin

+1

糾正,它有語法錯誤,所以它不會工作:'解析錯誤:語法錯誤,意外的T_VARIABLE在 - 第2行' – Quentin

+0

不解決問題,但感謝您的輸入,它使我的代碼更清潔。 –

1

這個查詢:

mysql_query("UPDATE contentdata 
        SET text = $value 
        WHERE key = 'home' "); 

會產生錯誤,說您的查詢不正確,那麼什麼都不會被更新。你有沒有啓用錯誤報告?如果是這樣,你應該看到一個警告或錯誤。

如果添加約$值單引號(所以SET text = '$value')會解決這個問題,但一定要正確逃生數據庫輸入(使用mysql_real_escape_string(),甚至更好,使用預處理語句)。

+0

準備好的陳述不會幫助逃避,受限的參數意志(只是人們傾向於同時和一起使用這兩件事情)。 – Quentin