0

是否可以以安全的方式使用从 SQL 数据库中获取的 PHP 变量动态填充 Facebook 的 Feed 对话框?

    ...
    // calling the API ...
    var obj = {
      method: 'feed',
      redirect_uri: 'YOUR URL HERE',
      link: 'https://developers.facebook.com/docs/reference/dialogs/',
      picture: 'http://fbrell.com/f8.jpg',
      name: 'Facebook Dialogs',
      caption: 'Reference Documentation',
      description: 'Using Dialogs to interact with people.'
    };
    ...

我猜例如:

    name: '<?php echo $name; ?>', etc..

应该是可能的..但是如果名称包含 ' 字符怎么办?与描述相同,因为它可能包含可能破坏 javascript 代码的不同特殊字符。

我怎样才能避免这种情况,或者是否有一种“纯”的基于 php 的方法来填充 Feed 对话框,其中包含图像、名称、描述等数据库内容。

4

1 回答 1

1

您想生成一个 javascript 对象,最简单的方法是使用json_encode(),它将为您处理所有转义:

<?php
$fb_feed = array(
  'name' => $name,
  'method' => 'feed',
  ...
);
?>
var obj = <?php echo json_encode($fb_feed) ?>;

请注意,如果由于某种原因您不想像那样生成整个对象,您也可以将它与单个字段一起使用:

var obj = {
      method: 'feed',
      name: <?php echo json_encode($name) ?>,
      ...
}
于 2013-07-01T15:45:44.187 回答