在数据库中保存javascript代码

时间:2013-11-25 13:33:34

标签: php mysql sql

然而,我对托管知名公司的问题非常讨厌

我有网站,并且在其后端有一个表单textarea字段应该是google adsense code当我提交时它根本没有响应并继续加载

但是当我输入任何其他内容然后adsense ads code它接受了所以我注意到它不允许使用html

表单代码

<form method=post action="1.php" name="adsense" id="adsense">

The Code : <textarea id="ad" name="ad">Put your code here</textarea>

<input type="submit" name="submit" value="Save">

</form>

1.php代码

<?PHP

include "header.php"; // connect to db

if(isset($_POST[submit])){

$qma = "update webads set
ad = '$_POST[ad]'";

$rma = mysql_query($qma) or die(mysql_error());
echo 'Thanks';

}

?>

问题当我把adsense ads code没有响应而没有将其保存在数据库中但是如果我放了任何文本就可以正常保存

所以我一直在考虑addslashes()但是在我做出这样的改变之后它也没有用到

ad1 = 'addslashes($_POST[ad1])'

这是未接受的google adsense code

的示例
<script type="text/javascript">
google_ad_client = "pub-0000000000000000";
google_ad_width = 250;
google_ad_height = 250;
google_ad_format = "250x250_as";
google_ad_type = "text";
google_ad_channel = "0000000000";
google_color_border = "FFFCE1";
google_color_bg = "FFFCE1";
google_color_link = "FFFCE1";
google_color_text = "FFFCE1";
google_color_url = "FFFCE1";
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

最后一个注意事项

数据库字段结构为text NOT NULL

CREATE TABLE `webads` (
`id` varchar(50) NOT NULL default '',
`ad` text NOT NULL
PRIMARY KEY  (`id`))";

所以任何想法如何保存它!但它必须容易回想起而不被改变

我不知道它是否愚蠢但是如果我没有得到任何答案怎么做,在保存之前一直在考虑base_64 encoder然后当我回电话时base_64 decode它,但这声音最后希望我能做到

非常感谢

4 个答案:

答案 0 :(得分:3)

你需要逃避MySQL发布的变量 - 最好的方法是使用PHP的内置函数,因为它会为你的MySQL版本正确地执行它

$qma = "update webads set ad = '" . mysql_real_escape_string($_POST[ad]) . "'";

答案 1 :(得分:2)

在将数据存储到数据库之前,必须使用htmlentities。 你不能在字符串中使用函数。

$ad = htmlentities($_POST['ad']);

同样在使用addslashes时,您最好首先检查它是否由服务器配置自动启用,而不是过度引用字符串。见get_magic_quotes_gpc

if(!get_magic_quotes_gpc()) {
    $ad = addslashes($ad);
} 

...

$qma = "update webads set ad = '$ad'";

答案 2 :(得分:0)

或者,您可以使用

$ad = htmlspecialchars($_POST['ad']);

$qma = "update webads set ad = '$ad'";

答案 3 :(得分:0)

当我使用MySQL Workbench时,我做了一些“更新webads设置 ad ='$ _ POST [ad]'“由于安全模式,它会抛出错误。我的SQL查询没有ID。也许安全模式已启用?

如果你想绕过它,只需添加“WHERE ID!= -1”,但我不建议这样做。

不要忘记清理您的输入。