为什么这不起作用回应在PHP?

时间:2012-02-13 20:19:09

标签: php facebook-graph-api echo

好的,所以我试图为facebook api输入一个动态元标记,一些奇怪的事情是幸福的。

这是我如何获得价值

$id = $_GET['id'];

$id = intval($id);

这是我输入的地方。

 <meta property="og:url" content="http://blaze-craft.com/matt/gag.php?id=<?php echo $id ?       >" />
<meta property="og:image" content="http://blaze-craft.com/matt/get.php?id=<?php echo $id ?>" />

但它总是将值输出为0,即使它不是0.当我在页面上的任何其他位置回显时它是否有效?

任何帮助都会非常感谢! :d

好的,我刚刚在源代码中看到它正在设置

<html>
<head>
<title>YourGag - Gag</title>
<meta property="og:title" content="MyGag - Gag" />
<meta property="og:type" content="activity" />
<meta property="og:url" content="http://blaze-craft.com/matt/gag.php?id=2" />
<meta property="og:image" content="http://blaze-craft.com/matt/get.php?id=2" />
<meta property="og:site_name" content="YourGag" />
<meta property="fb:admins" content="1254694731" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>

但是当我使用facebook调试器时,它说有一个0而不是2!

严重奇怪!

3 个答案:

答案 0 :(得分:1)

在尝试演员$_GET['id']之前,您是否尝试调试int的值?

根据文件(intval):

  

返回值

     

成功时var的整数值,或失败时0的整数值。空数组   返回0,非空数组返回1

因此$_GET['id']要么是空数组,要么不能作为整数值返回。

答案 1 :(得分:1)

一些事情:

  1. 您是否尝试查看是否设置了$_GET['id']变量?
  2. 您应该转义元标记中发送的ID。例如。 echo urlencode($id);
  3. 如果失败,请创建一个非常简单的页面:
  4. if (isset($_GET['id'])) {
      echo "id is set: '".$_GET['id']."'";
    }
    else {
      echo "id is not set";
    }
    

    只是为了看看发生了什么。

答案 2 :(得分:0)

使用intval()转换前,$ id的值是多少?来自intval的返回值0告诉您$ id不是传递给函数的有效标量值。它是一个对象,一个数组或一些其他值导致它失败。

作为替代方案,您可以尝试:

$id = (int)$id;