【发布时间】:2014-03-04 19:01:49
【问题描述】:
我有一个动态 PHP 网站/博客,可以很好地从我的数据库中检索相关信息:http://example.com/article.php?id='row id'
`<?php
$id = $_GET['id'];
$results = $connect->query("SELECT * FROM main WHERE id = $id");
?>
<?php
while($row=$results->fetch())
{
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo ($row['headline']) ?></title>`
上面的代码工作正常,但是当我尝试动态填充 facebook 元标记时它不起作用:
`<meta property="og:title" content="<?php echo ($row['headline']) ?>" />`
知道为什么<title> 等的数据回显工作正常,但元标记却没有回显吗?
FB Open Graph Object Debugger 说:“应该明确提供 'og:title' 属性,即使可以从其他标签推断出值。”
【问题讨论】:
-
您很容易受到 SQL 注入攻击。您需要在将 GET 变量提供给数据库之前对其进行处理。您的输出之间是否有重新定义/清除 $row 的东西?
-
@jbes 不,我不这么认为。上面的代码来自我的 article.php 页面,所以当有人点击 index.php 上的标题时,他们会到达 article.php?id='row id of that article'
-
您能提供您提供的代码之间的代码吗?从
</title>到<meta...>?原因是 $row 的内容不能简单地自行“消失”。那里发生了一些事情。