У меня есть веб-сайт с записями IP-камер — пользователи могут войти и посмотреть их. Я использую VLC для отображения их на сайте:
$(this).closest(".recording_wrapper").find(".recording_preview").append(
'<div class="embed_vlc_wrapper">' +
'<embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2"' +
'version="VideoLAN.VLCPlugin.2"' +
'target="../PHP/get_recording.php?file=' + $(this).closest(".recording_wrapper").attr("file") + '&camid=' + $(this).closest(".recording_wrapper").attr("camera_id") + '"' +
'pluginspage="http://www.videolan.org"' +
'/>' +
'</div>'
);
Когда вышеуказанный код загружен, пользователь уже вошел в систему и все переменные сеанса установлены. к несчастью get_recording.php
не распознает существующий сеанс и пытается создать новый при вызове session_start()
функция. Например, если я добавлю этот код на мою веб-страницу:
/* That's inline PHP code on my website, the session is already started */
error_log(session_id());
И этот код к get_recording.php
сценарий:
if(!isset($_SESSION)){
session_start();
}
error_log(session_id());
Я бы получил разные идентификаторы сессий. Как я могу решить эту проблему? Мне нужно как-то передать идентификатор сеанса с моей веб-страницы на get_recording.php
сценарий, не показывая его пользователю (т.е. включив его в целевой URL).
Я думал о загрузке его в базу данных MySQL после входа в систему, а затем загрузить его в get_recording.php
сценарий, но я понял, что это бессмысленно — мне все равно нужно сравнить его с существующим идентификатором сеанса, который этот сценарий не знает.
Я также читал о передаче его в cookie, но возможно ли это в этой ситуации? Может ли VLC-плагин передать куки в другой скрипт?
Задача ещё не решена.
Других решений пока нет …