【发布时间】:2013-12-25 18:54:28
【问题描述】:
每次我尝试更新我的 textarea 并在 textarea 内添加一个引用 ",更新后我得到 1 个 \,我再次更新我得到 3 个斜杠 \\\,再次得到 5 个斜杠等等.
尝试在 php ini 中添加 3 个代码以禁用魔术引号,但没有:
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
还在根文件夹和文件所在的文件夹中添加。也试过这个 http://us2.php.net/manual/en/security.magicquotes.disabling.php 示例 2 和第一个评论,仍然没有。
这是我的代码:
PHP
$username=$_SESSION['username'];
$viewtopic = $_GET['viewtopic'];
if ($_POST['edit'] && strip_tags($_POST['topictext'])){
$viewtopic = $_POST['id'];
$topictext=mysql_real_escape_string(strip_tags($_POST['topictext']));
$title=mysql_real_escape_string(strip_tags($_POST['title']));
mysql_query("UPDATE topics SET topictext=".quote_smart($topictext).", title=".quote_smart($title)." WHERE id=".quote_smart($viewtopic)."");
echo "You have updated your topic!";
}
HTML
<textarea name="topictext" rows="2" cols="20" id="main_tbContent" class="TextBox" style="height:128px;width:99%;"><? echo str_replace("\\r\\n","\r\n",$rows['topictext']); ?></textarea><br />
【问题讨论】:
-
quote_smart() 是做什么的??
-
Quote_smart 集成在脚本中。当我删除
quote_smart()时,每次更新都会停止创建 2 个斜线的循环,但它仍然会回显 3 个斜线。 -
不要忘记 mysql_real_escape_string $_POST['id'] 以及......虽然你期待(希望)你会在那里得到一个数值,实际上你也可以得到任何东西else 那里,使 sql 注入成为可能
-
我不敢相信这个问题没有作为重复问题一目了然。 Stack Overflow 是一个非常奇怪的地方。
标签: php mysql-real-escape-string magic-quotes-gpc