Вывод названия трэка в БД

Nik Shinkareff

New member
Есть задача — заставить RadioBoss выводить проигрываемые трэки во внешнюю БД.

Для этого использую вывод отчета через 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 файл неправильно интерпретирует запрос.


 

djsoft

Administrator
Команда форума
Вы указали URL но не указали параметры, которые нужно передавать.

URL в RadioBOSS должен быть таким: http://mysite.ru/radioboss.php?artist=%artist&title=%title
Можно добавить и другие значения:
%comment
%duration
%genre
%album
 

Nik Shinkareff

New member
:-\
О, мой Бог, я как-то по мануалу подумал что он в обязательно-принудительном порядке сам выводит все пять параметров в запрос... спасибо большое. Как всегда, все мои большие ошибки таятся там, где я и не подозреваю.

Зато теперь на форуме будет пример шаблончика под PHP и MySQL  ;D

P.S.
Теперь, правда, в БД в поле "duration" стоит значение "%duration" хотя запрос вроде человеческий.
http://tmysite.ru/radioboss.php?artist=%artist&title=%title&duration=%duration&genre=%genre&album=%album
 

djsoft

Administrator
Команда форума
Извиняюсь, длительность трека не %duration, а %len. Надо будет сделать раздел в справке про это...
 
Верх