PHP中的文本区域出现问题


Issue with textarea in PHP

我有以下代码。

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

从数据库中提取值$home

现在我更改文本区域中的文本,然后按提交。

然后,执行以下代码:

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

但现在,每次我执行此代码时,它都不会更新,而是将$value设置为数据库中的旧变量,而不是我在文本区域中输入的新变量

顺便说一下。,id:msgpost来自yahoo文本编辑器。

您正在将一个未加注释、未加引号的字符串放入查询的中间。除了非常具体的输入外,它将出错(或运行SQL注入攻击(。

使用绑定参数在SQL中包含变量,不要将字符串混合在一起。

此查询:

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

将生成一个错误,表示您的查询不正确,因此不会更新任何内容。您是否启用了错误报告?如果是这样,您应该看到一个警告或错误。

如果在$value周围添加单引号(因此SET text = '$value'(将解决此问题,但一定要正确转义数据库输入(使用mysql_real_escape_string(),或者更好的是,使用准备好的语句(。

我已经修复了,这是YUI简单编辑器中的一个错误,不允许我提交数据,为了将来参考,我在配置中用submitHandle:true修复了这个问题。

'UPDATE contentdata 
                      SET text = '''.$value.''' 
                      WHERE key = ''home''';