почему это не работает эхо в php? - PullRequest
0 голосов
/ 14 февраля 2012

Хорошо, я пытаюсь ввести динамический метатег для API Facebook, и некоторые странные вещи радуют.

вот как я получаю значение

$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 ]

1 голос
/ 14 февраля 2012

Вы пытались отладить значение $_GET['id'], прежде чем пытаться разыграть как int?

Согласно документации (intval):

Возвращаемые значения

Целочисленное значение var при успехе или 0 при ошибке. Пустые массивы return 0, непустые массивы return 1.

Таким образом, $_GET['id'] является либо пустым массивом, либо не может быть возвращен как целочисленное значение.

1 голос
/ 14 февраля 2012

Пара вещей:

  1. Вы пытались увидеть, установлена ​​ли переменная $_GET['id']?
  2. вы должны экранировать идентификатор, отправляемый в метатеге.Например, echo urlencode($id);
  3. , если это не удается, создайте очень простую страницу, подобную этой:

if (isset($_GET['id'])) {
  echo "id is set: '".$_GET['id']."'";
}
else {
  echo "id is not set";
}

, просто чтобы посмотреть, что происходит.

0 голосов
/ 14 февраля 2012

Каково значение $ id до того, как вы приведете его с помощью intval ()?Возвращаемое значение 0 из intval говорит вам, что $ id не является допустимым скалярным значением для передачи в функцию.Это либо объект, массив, либо какое-либо другое значение, которое вызывает его сбой.

В качестве альтернативы вы можете попробовать:

$id = (int)$id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...