2014-10-09 25 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'];?>"/> 

我現在越來越可靠的結果。