Nik Shinkareff
New member
Есть задача — заставить RadioBoss выводить проигрываемые трэки во внешнюю БД.
Для этого использую вывод отчета через HTTP запрос к сайту mysite.ru.
1. Создаю файл radioboss.php следующего содержания:
Для уверенности генерируем в адресной строке браузера запрос вида http://mysite.ru/radioboss.php&artist=artist&title=title&duration=duration, смотрим на выведенный страницей результат и проверяем запись в БД.
2. В настройках RadioBoss вводим url: http://mysite.ru/radioboss.php
И вот, в теории все должно работать, но на практике все иначе.
С началом каждого нового трэка в БД появляется новая строка, но есть только дата и время (генерируются в PHP) а остальные поля пустые. В RadioBoss все трэки с положенными тэгами.
Либо RadioBoss не передает параметры artist/title/album/genre/duration через GET, либо наш PHP файл неправильно интерпретирует запрос.
Для этого использую вывод отчета через HTTP запрос к сайту mysite.ru.
1. Создаю файл radioboss.php следующего содержания:
Код:
<?php
// Получаю IP машины //
function getip()
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))
$ip = getenv("HTTP_CLIENT_IP");
elseif (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
elseif (!empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
$ip = $_SERVER['REMOTE_ADDR'];
else
$ip = "unknown";
return($ip);
}
// Сверяю IP машины //
if ((getip()=="093.650.552.578") or (getip()=="194.890.718.887"))
{
echo "IP допущенно
";
// Подключаю БД //
$dblocation = "314.542.442.973";
$dbuser = "user";
$dbpasswd = "pass";
$dbname="base";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo("<p>Сервер недоступен</p>");
exit();
}
if (!@mysql_select_db($dbname, $dbcnx))
{
echo( "<p>База данных недоступна</p>" );
exit();
}
// Война кодировок //
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8");
mysql_query("set names utf8");
mysql_query("set character_set_client='utf8'");
mysql_query("set character_set_results='utf8'");
mysql_query("set collation_connection='utf8_general_ci'");
// Получаем дату и время, для хронологии списка //
$date = date( 'd.m.Y', time() );
$time = date( 'H:i:s', time() );
// Проверяем есть ли дата/время //
echo $date;
echo "
";
echo $time;
// Записываем из $_GET нужные нам параметры //
$sql = mysql_query("INSERT into radioboss (date, time, artist, title, album, genre, duration)
values ('".$date."', '".$time."', '".$_GET['artist']."', '".$_GET['title']."', '".$_GET['album']."', '".$_GET['genre']."', '".$_GET['duration']."');");
// Проверяем что мы, собственно, записали//
print '<p>Записаны данные: дата - <strong>'.$date.'</strong>, время - <strong>'.$time.'</strong>, артист - <strong>'.$_GET['artist'].'</strong>, название - <strong>'.$_GET['title'].'</strong>, альбом - <strong>'.$_GET['album'].'</strong>, жанр - <strong>'.$_GET['genre'].'</strong>, продолжительность - <strong>'.$_GET['duration'].'</strong>.</p>';
} else {
// К.О. для недопущенных IP-адресов //
echo "Что-то явно пошло не так...";
}
?>
Для уверенности генерируем в адресной строке браузера запрос вида http://mysite.ru/radioboss.php&artist=artist&title=title&duration=duration, смотрим на выведенный страницей результат и проверяем запись в БД.
2. В настройках RadioBoss вводим url: http://mysite.ru/radioboss.php
И вот, в теории все должно работать, но на практике все иначе.
С началом каждого нового трэка в БД появляется новая строка, но есть только дата и время (генерируются в PHP) а остальные поля пустые. В RadioBoss все трэки с положенными тэгами.
Либо RadioBoss не передает параметры artist/title/album/genre/duration через GET, либо наш PHP файл неправильно интерпретирует запрос.