我尝试用一些反馈更新记录
禁止
You don't have permission to access /xxx/xxx/update.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Mysql查询是:
mysql_query("UPDATE `table_name` SET `feedback`='".$_REQUEST['feedback']."' WHERE `cid` =xx");
反馈是customer is having 6 windows and 3 patio doors
。当我删除having
,and
时,我才能提交,因为这些是MYSQL
个保留字。更改了文件权限,但没有任何作用。
.htaccess
包含
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domainname\.com$ [NC]
RewriteRule ^(.*)$ http://www.domainname.com/$1 [R=301,L]
#AddType application/x-httpd-php4 .php .htm .html
# Hide images, css and js
Options -Indexes
ErrorDocument 404 http://www.domainname.com/404.html
如何解决这个问题?
答案 0 :(得分:0)
这是因为$_REQUEST['feedback']
中的值包含未正确转义的MySQL关键字。
以下答案应该可以解决您的问题,尽管我建议不要直接从请求传递数据并打开应用程序到SQL注入。
$query = sprintf("UPDATE `table_name` SET `feedback`='%s' WHERE `cid` ='xx'",
mysql_real_escape_string($_REQUEST['feedback']));
mysql_query($query);
虽然上面的代码应该可以解决您手头的问题,但请阅读this stackoverflow question,了解为什么要放弃使用传统的mysql_函数并开始使用PDO方法和prepared statements