Forum Webscript.Ru

Программирование => PHP => Тема начата: от 22 Декабря 2001, 23:18:36

Название: Помогите догнать!
Отправлено: от 22 Декабря 2001, 23:18:36
Объясните как это работает :
 ... download.phtml?artist=11596&song=49951
и начинат скачиваться песня после нажатия.
Я хочу сделать интронет сеть с архивом песен, и мне надо узнать как этот скрипт работает.
Может у кого нибудь есть наподобие такого скрипта!
Название: Помогите догнать!
Отправлено: Britva от 23 Декабря 2001, 02:32:43
скрипт download.phtml узнает что за песня (song), что за артист (artist) и форумирует ссылку в $url. затем перенаправляет след-м образом:
Название: Помогите догнать!
Отправлено: от 24 Декабря 2001, 20:47:14
Britva ну эти названия песн ведь где то хранятся или как?
А не мог бы ты так от понта тут написать типа скрипта для левой песни?
Плз!
Название: Помогите догнать!
Отправлено: Lion от 24 Декабря 2001, 20:56:02
Например так:
Обращение к скрипту вида:
script.php?song=цифра от 1 до n

switch ($song) {
case 1: $url="song1.mp3";
break;

case 2: $url="song2.mp3";
break;

case 3: $url="song3.mp3";
break;

case n: $url="songn.mp3";
break;
header("Location: $url");
}
?>
Название: Помогите догнать!
Отправлено: от 25 Декабря 2001, 19:12:41
Походу тут небольшая недопечатка в конце пропала скобка  }
И всё равно не хочет пахать, просто скрипт выполняется а файл не хочет мне дать
А можно ещё написать чтоб было артист и песня!
Хотя и за это спасибо, но всеравно чё то даже это не хочет пахать!
Название: Помогите догнать!
Отправлено: lodevar от 26 Декабря 2001, 09:25:16
А наверное надо полный путь указать к файликам.
Цитировать
А можно ещё написать чтоб было артист и песня!
В каком смысле? Подробнее...
Название: Помогите догнать!
Отправлено: от 26 Декабря 2001, 14:17:10
Ну вот как я написал на самом верху там и артист и песня есть
А вообще это что нибудь даёт, может это удобнее чтоб был артист и песня?
Название: Помогите догнать!
Отправлено: lodevar от 26 Декабря 2001, 14:25:52
У тебя инфа о файлах где хранится (если вообще она есть)?
Если в базе - делаешь выборку типа

select from fong_file from songs where song_num=$song and art_num=$artist

Потом редиректишь на это имя файлика.

Если нет базы, то как файлы расположены на диске? Где? Какие форматы имен? Например, можно сделать формат имени файла таким:11596_49951.mp3, где до подчеркивания - код певца, после него - код песни.

Знаешь, вообще-то очень маловато инфы даешь про скрипт.
Название: Помогите догнать!
Отправлено: от 26 Декабря 2001, 17:28:26
У меня вообщето нет самого скрипта. Я просто вижу что все сайты с музыкой написанные на пхп работают вот от этого скрипта ... download.phtml?artist=11596&song=49951.
 Вот я бы и хотел увидеть вид этого скрипта!
Как я понял это работает: под 11596 понимается номер артиста  а под 49951 номер его песни.
А я бы хотел так чтоб (пример) http://mysait.ru/music/download.php?artist=333&song=4
где 333 номер это vinipuh и 4 его песня (например 4 из 10 песен) это horoso zivet na svete vinipuh.
А путь к песне таков http://mysait.ru/music/rus/vinipuh-horoso zivet na svete vinipuh.mp3 а на локалке с:\\program files\\apache\\htdocs\\music\\rus\\vinipuh-horoso zivet na svete venipuh.mp3. Я не знаю может нужен файл-база где все песни должны храниться! Если есть ещё вопросы задавай попоробую описать.
Название: Помогите догнать!
Отправлено: lodevar от 27 Декабря 2001, 11:04:44
Делается это так:
1) Создается каталог на диске
2) Переписывается в каталог все файлы с песнями
3) Создается база (текстовая, но лучше на самом деле база - MYSQL, MSSQL ... какая хочешь)
3) В первой табличке поля: код песни, название песни, код певца, имя файла, примечания
4) Во второй таблице поля: код певца, имя певца, примечания
5) Делаешь скриптик, который разбирает адресную строку и делает выборку из базы по коду певца, коду песни и т.д.
Название: Помогите догнать!
Отправлено: от 29 Декабря 2001, 11:37:13
Цитировать
switch ($song) {
case 1: $url="song1.mp3";
break;

case 2: $url="song2.mp3";
break;

case 3: $url="song3.mp3";
break;

case n: $url="songn.mp3";
break;
header("Location: $url");
?>


Но почему он не хочет пахать я ему и полный путь прописал, а он исполняется и всё и не какого результата не вижу что мне песенку отдал?
 Спассибо за описание!
Название: Помогите догнать!
Отправлено: Britva от 29 Декабря 2001, 13:50:11
попробуй вот так:
$absurl = "http://domain.ru/songs/";
switch($song) {
case 1: $url = $absurl."song1.mp3";
....
}
header("Location: $url");
Название: Помогите догнать!
Отправлено: от 29 Декабря 2001, 20:34:43
Спасибо lodevar, Britva что помоголи разобраться!
Britva через absurl всё поплыло как надо!
И ещё не могли бы подсказать как лучше в этом в этом скрипте так всё оформить чтоб потом самому не запутаться(где какой исполнитель со своими песнями)? А то получается если я добавляю нового исп. с его песней и так потяхоньку буду добавлять, получится каша всё разбросано!

И ещё не подскажите как сделать чтоб считалось количество скачиваний этой или иной песни?
Название: Помогите догнать!
Отправлено: Britva от 29 Декабря 2001, 20:48:22
можно, например, вот так:
заходить через song.php?topic=lala&song=tututu
а в самом скрипте:
$url = "http://domain.ru/$topic/$song.mp3";
header("Location: $url");
все зависит от того, как у тебя инфа хранится и т.п.
Название: Помогите догнать!
Отправлено: от 29 Декабря 2001, 21:01:29
А как всё таки можно сделать счёт скачиваний для каждой песни?
Название: Помогите догнать!
Отправлено: Britva от 29 Декабря 2001, 21:12:06
можно конечно. записывать в отдельный файл или базу.
Название: Помогите догнать!
Отправлено: от 01 Января 2002, 00:36:59
А скриптик не подбросишь, было бы не плохо!
Название: Помогите догнать!
Отправлено: от 05 Января 2002, 12:18:20
Аха, видно это дельце трудное или лень берёт.
Попробуем так, вроде в сети видел скрипт считает переходы по ссылкам может из этого скрипта чё накалякать?
Название: Помогите догнать!
Отправлено: Dj Fly от 05 Января 2002, 12:51:59
Самый пупер по-моему, это база...
Например, таблица:
 SondId   |   Filename   |   Counter

Загнать всё в базу, поиск песен - по резалту из поля filename...
При скачке - брать сопоставленный имени ID  и скачивать...
и инкрементить поле Counter


только вот если надо будет защитить скачку - ведь ID будет всё время одинаковый, то надо будет подумать - как их динамически генерить... Например, использовать функцию time()
Название: Помогите догнать!
Отправлено: Britva от 05 Января 2002, 12:58:18
http://www.webscript.ru/stories/01/10/19/9668090
тут есть запись счетчика в бд
Название: Помогите догнать!
Отправлено: от 10 Января 2002, 05:52:30
Помогите я нашёл скрипт http://download.sourceforge.net/Netamp/netamp-0.1.tar.gz
Как раз что и надо вроде, но в нём надо зоздать в mysql таблицы файлом как то наз.mysql
И зачем там ещё пёрловские срипты нужны?
Название: Помогите догнать!
Отправлено: nobody от 11 Января 2002, 08:26:17
Из всего выше прочитанного меня навело а мысль, что человек нефига непонимает в PHP а хочеться ему скриптик просто ужас. Попробовал бы купить книжку по PHP пару дней и сварганел бы себе скриптик. Потом докупился книженкой по MySql и еще через пару дней сделал бы up под MySql и жизнь бы казалась просто шоколадом.
Все что ты сдесь спрашивал делаеться букавльно за один день.
1. Пишиться аодинистративная и клиенская часть на PHP
2. Все данные хранишь в MySql

Административная часть тебе недаст запутаться с расположением песен на диске. И делать ничего ненадо будет руками только: "Добавить песню", а далее новый исполнитель или уже существующий...

Что это тебе даст, а все что угодно - шочешь подсчитать сколько песен данного исполнителя в базе. Сколько песен всего. Вести статистику самых популярных.

Во первых тебе надо определиться, что ты именно хочешь от всего этого и для кого это будет все работать.
Название: Помогите догнать!
Отправлено: alexvolkov от 15 Января 2002, 12:41:17
Судя по теме сообщения - нас не догонят
Название: Помогите догнать!
Отправлено: от 16 Января 2002, 06:24:07
А  я ещё бы хотел штоб у песен показывалось частота битрейд и размер для этого тоже надо будет таблицы создавать.
И как сделать для рус. и анг. песен чтоб они по буквам были(исполнители)
Название: Помогите догнать!
Отправлено: от 16 Января 2002, 18:05:17
Легко в Mysql базе добавляеш стоблец downloaded_times ну как хочешь потом когда песня скачиваться выполняется sql-запрос нечто вроде
sql="select times,song from mp3_arhiv where sondgid=\\"$songid\\" ";
$result=mysql_query($sql);
list($downloaded_times ,song)=mysql_fetch_array($result);
$downloaded_times++
print "Вы $downloaded_times скачали песню";
sql="update mp3_arhiv set downloaded_times=\\"$downloaded_times\\" ";
$result=mysql_query($sql);
?>
mp3_arhiv - имя таблицы где у тебя всё это дело хранится
Название: Помогите догнать!
Отправлено: Vip от 24 Января 2002, 07:42:47
Короче давайте потехоньку.
Я тут недавно приобрёл книженцию по пхп и прочитал 250 стр и пока нихрена непонимаю, я  во всяких массивах запутался да и не тольков них.
Для начала скажите какие нужно создать таблицы и поля.
Если я хочу шоб выводилась информация о песне такая: исполнитель название песни битрейд частота и размер?
Название: Помогите догнать!
Отправлено: Vip от 04 Февраля 2002, 18:18:06
Посмотрите так пойдёт:

CREATE TABLE artist (
  ID int(11) NOT NULL auto_increment,
  name char(255) default NULL,
  PRIMARY KEY  (ID),
  KEY name (name)
) TYPE=MyISAM;



CREATE TABLE song (
  ID int(11) NOT NULL auto_increment,
  file text NOT NULL,
  title varchar(255) NOT NULL default \'\',
  comment text,
  size varchar(10) NOT NULL default \'\',
  length_min float NOT NULL default \'0\',
  bitrate smallint(6) NOT NULL default \'0\',
  freq mediumint(9) NOT NULL default \'0\',
  artistID int(11) NOT NULL default \'0\',
  PRIMARY KEY  (ID),
  KEY file (file(60)),
  KEY title (title),
  KEY artistID (artistID)
) TYPE=MyISAM;