2015-04-24 97 views
1

我想通过这个代码如何从MySQL数据库获取YouTube网址?

while ($row = mysql_fetch_assoc($qry)) { 
      echo " 
      <iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src=".$row['videourl']."></iframe> 
     </div>"; 
}mysql_free_result($qry); 

显示提交YouTube视频列表,但视频没有显示由于以下错误: 拒绝在该框架中显示“https://www.youtube.com/watch?v=_whatever”,因为它设置'X-Frame-Options'改为'SAMEORIGIN'。

1)这与测试本地主机上的代码有什么关系,并可能在上载到真实域时解析?

2)这是一个很好的方法来通过PHP表单和mysql数据库回显youtube视频吗?

3)我能做些什么来克服这个问题?

注意:谷歌搜索错误后,我了解它与YouTube的东西,不允许其iframe显示在任何其他域,但这就是为什么我想知道如果本地域“域”可能会导致此...

+0

尝试将您的标题X-Frame-Options从SAMEORIGIN更改为 crisu

回答

1

您需要将视频的嵌入网址保存在数据库中。那么你可以使用像这样

<object width="420" height="315" 
data="http://www.youtube.com/embed/XGSy3_Czz8k"> 
</object> 

或第二种方法是

<embed width="420" height="315" 
src="http://www.youtube.com/embed/XGSy3_Czz8k"> 

后,该代码将工作。

while ($row = mysqli_fetch_assoc($qry)) { 
      echo " 
      <iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src=".$row['videourl']."></iframe> 
     </div>"; 
}mysqli_free_result($qry); 

第二个选项是

只需选择视频编码在链路的末端

例如

http://www.youtube.com/watch?v=Ahg6qcgoay4从这个链接获得Ahg6qcgoay4并在代码中创建像http://www.youtube.com/v/Ahg6qcgoay4链接

然后用这样的东西

while ($row = mysqli_fetch_assoc($qry)) { 
       echo " 
       <iframe width=\"160\" height=\"120\" frameborder=\"0\" allowfullscreen src='http://www.youtube.com/v/".$code."'></iframe> 
      </div>"; 
    }mysqli_free_result($qry); 
+0

问题解决了,正确的嵌入地址/链接解决了问题。 – Azizi

+0

是的,它会使用嵌入网址。 – MKD

0
  1. 来处理这一个最好的办法,你把它保存到数据库之前,提取_whatever出它拆分的URL。

  2. ,当你得到这个提取出来的数据库,然后执行以下操作:

    <iframe width='160' height='120' frameborder='0' allowfullscreen src='http://www.youtube.com/embed/".$row['videourl']."'></iframe>

的原因是Youtube的URL是两种类型的一般

i. 'https://www.youtube.com/watch?v=_whatever' 
ii. 'https://www.youtube.com/embed/_whatever' 

更好一边练习正在使用ii. URL