Тайное добавление (дополнительных) переменных HTTP GET в файл swf через PHP - PullRequest
0 голосов
/ 09 февраля 2011

Я пытаюсь найти обходной путь для встраивания моего (загруженного) флэш-видеоплеера.(это JWplayer ...)

В тот момент, когда кто-то хочет встроить видеоплеер, он должен включить SWF-файл со всеми добавленными flashvars (например: www.site.be/core/swf/player.swf? растяжка = URL и файл = file.mp4 & IMAGE = file.jpg и плагин = аналитика ...).Это грязно, и это кажется немного рискованным ... люди, которые знают, что они делают, могут также просто удалить плагин и другие добавленные данные, решив во мне невозможность отслеживать просмотры страниц и т. Д.

Мой обходной путьнапример:

$data = file_get_contents('URL');
header("content-type: application/x-shockwave-flash");
echo $data;

Оказывается, что когда я использую file_get_contents в обычном тестовом файле, info.php, который отвечает через $ _GET ['var'], вышеуказанный код работает, но когдаЯ использую его на flashplayer, он не ...

Как в случае: флэш-файл, похоже, не принимает (или не отвечает) добавленные переменные заголовка ...

Может кто-нибудь сказать мне, почему это?Это проблема, связанная с flash, или проблема, связанная с Php?Или есть предложения о том, как решить мою проблему "flash-embed-with-much-junk" по-другому?

(спасибо)

1 Ответ

0 голосов
/ 09 февраля 2011

Вспышка ожидает параметры GET, поэтому вы не можете принудительно заставить их другим способом.

То, что я хотел бы сделать, это сохранить переменные GET в СЕССИИ (в моем примере это называется swf_vars), если вы хотите, чтобы это было в секрете, тогда укажите код <embed> для сценария PHP, который выполняет что-то вроде ..

<?php
session_start();

// Full URL path to SWF
$url = "http://www.site.be/core/swf/player.swf?";

// These are the GET variables you want
foreach ($_SESSION['swf_vars'] as $key => $value) {
    $url .= $key . "=" . urlencode($value) . "&";
}

$url = rtrim("&", $url);

// Fetch the SWF
header("Content-Type: application/x-shockwave-flash");
echo file_get_contents($url);
?>
...