2014-10-09 71 views
-1

我已经取得了一些进展,让Facebook分享一些添加grom我的网站,从MySQL数据库动态生成。我可以在我的网站的主页上插入一个Iframe。为什么dosn't facebook喜欢这个代码?

<iframe src="//www.facebook.com/plugins/like.php? href=http://www.webaddress.com.au/description.php%3Fid%3D'.$id.'&amp;width&amp;layout=standard&amp;action=like&amp;show_faces=true&amp;share=true&amp;height=80&amp;appId=596610807121620" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:80px;" allowTransparency="true"></iframe> 

然后在页面上此链接,我有以下的元标记。

<meta property="og:title" content="Listed in the Two Year Olds section" /> 
    <meta property="og:url" content="<?php echo $_SERVER['PHP_SELF'];?>" /> 
    <meta property="og:description" content="<?php echo $row['horsename'];?> " /> 

是否有这样做的更Facebook的方式间友好?由于它有时似乎有效,但并非总是有效?

感谢

+0

哪部分不工作?网址内容? – Ghost 2014-10-09 00:39:14

+1

你的URL有一个空格字符,你可能会有一个更好的时间与urlencode()的使用 – Scuzzy 2014-10-09 00:40:50

+0

Wehn我在Facebook调试它不像URL – user2432677 2014-10-09 00:42:52

回答

0

首先,是什么让你认为Facebook 这样的代码?

既然你说它有时会起作用,而不是别人,我会猜测问题在于你在某些情况下生成了无效的HTML。任何时候您在HTML上下文中使用文本时,都需要将其转义。 htmlspecialchars()可以为你做到这一点。

<meta property="og:url" content="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" /> 
<meta property="og:description" content="<?php echo htmlspecialchars($row['horsename']); ?> " /> 

我也可能会建议使用模板引擎,因为如果页面上有很多动态内容,它会变得很忙。

+0

@ user2432677像Smarty(或类似的)的模板引擎将允许您创建类似HTML的模板,然后一次填写所有可变数据,处理所有逃跑。另外,您可以以模块化的方式构建您的站点,将所有主要逻辑和代码与演示文稿分开。 – Brad 2014-10-09 01:08:11

0

感谢大家的帮助我为图像添加了一个og,meta属性现在看起来像这样。

<meta property="og:title" content="Listed in the Yearlings section" /> 
    <meta property="og:url" content="<?php echo $_SERVER['PHP_SELF'];?>" /> 
    <meta property="og:description" content="<?php echo $row['horsename'];?> " /> 
    <meta property="og:image" content="http://www.justcuttin.com.au/photo/<?php echo $row['photo1'];?>"/> 

我现在越来越可靠的结果。