我正在制作一个WordPress广告管理插件。需要用户将Google AdSense和其他广告代码输入数据库。
我检查了其他解决方案,例如mysql_real_escape_string()
和base64_encode()
& base64_decode()
。但他们没有做出理想的结果。
我正在使用像this这样的简单表单:
<form action="" enctype="multipart/form-data" method="post">
<textarea name="ad_code"></textarea>
<input type="submit">
</form>
要插入db:
<?php
if (!empty($_POST)) {
global $wpdb;
$table = $wpdb->my_table = $wpdb->prefix . "my_table";
$data = array(
'ad_code' => $_POST['ad_code']
);
$format = array(
'%s'
);
$success=$wpdb->insert( $table, $data, $format );
if($success) echo 'data saved';
}
?>
通过上述代码,我尝试了:
$data = array(
'ad_code' => mysql_real_escape_string( $_POST['ad_code'] )
);
和
$data = array(
'ad_code' => base64_encode( mysql_real_escape_string( $_POST['ad_code'] ) )
);
和
$data = array(
'ad_code' => base64_encode( $_POST['ad_code'] )
);
前两次尝试完全让我失望。但是只使用base64_encode()
可以很好地将文本编码为代码并插入到数据库中,但是当我在数据库查询中尝试<?php echo "<pre>" . base64_decode( $the_ad_query->ad_code ) . "</pre>"; ?>
时,它没有显示任何内容。
而不是JavaScript,我尝试使用简单的字符串,例如“这是代码”,它做得很好。但我使用JavaScript代码失败了。
我的谷歌adsense代码是这样的:
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- my ad -->
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-32131313131312317"
data-ad-slot="8657754785"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
我该怎么办呢?有什么想法吗?
答案 0 :(得分:0)
确定。有一个解决方案。不知道这是否正确:
插入时:
$data = array(
'ad_code' => base64_encode( trim( $_POST['ad_code'] ) )
);
回音:
<?php echo "<pre>" . stripslashes( base64_decode( $the_ad_query->ad_code ) ) . "</pre>"; ?>
答案 1 :(得分:0)
您可以使用相同的AdSense代码,只需换出发布商ID即可。然后你不必担心存储js ..只需存储他们的发布者ID。