![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Kex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 2.10.2008 Репутация: нет Всего: нет |
Как написать счетчик скачивания файлов, используя MySQL?
Суть проблемы? На сайте есть файл, ссылка ведет на файлообменник, т.е. файл находится на файлообменнике. Как подсчитать количество скачаваний этого файла. Видел в инете вариант решения этой задачи при помощи текстовых файлов, но этот вариант не подходит. Как сделать это при помощи базы данных MySQL? |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
Kex, текстовый файл или бд не важно это все го лишь хранилище данных. Начнем с того что в принципе ты не можешь посчитать сколько скачан этот файл с файлообменника, если конечно файлообменник не твой. Максимум что ты можешь сделать это посчитать количество переходов с твоего сайта на файлообменник по этой ссылке. Сделать это можно двумя способами:
1. написать скрипт на ПХП который по запросу ридиректил бы пользователя на файлообменник и записывал в твоем случае в БД информацию о переходе на него, соответственно вместо ссылки на файообменнек на сайте должна стоять ссылка на этот скрипт. 2. написать скрипт на javascript который бы перехватывал событие клик по ссылке файлообменника и по средством ajax сообщал бы другому скрипту на ПХП что следует обновить информацию в БД, а затем бы перенаправлял пользователя на файлообменник. |
|||
|
||||
| Kex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 2.10.2008 Репутация: нет Всего: нет |
krundetz,
Дело в том, что вариант с текстовым файлами, котрый я видел, подразумевает создание для каждого файла свой текстовый файл, который содержит информацию по количеству скачиваний. У меня сейчас 50 файлов, и создавать 50 файлов txt не хочется. А поскольку сайт построен на связке PHP+mySQL, то мне кажется проще создать поле в таблице и туда производить записи, а при скачивании увеличивать счетчик на 1. Видимо вариант с редиректом по проще, если можно подскажите ориентировачный код или функции которыми необходимо пользоватся. И для общего развития интересно, а действительно, как передать переменную из JavaScript в PHP? |
|||
|
||||
| krundetz |
|
||||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
не поле в таблице а таблицу, где запись будет состоять из следующих полей: идентификатор файла и количество его скачиваний, название файла и ссылка на него в файлообменнике
да обычные функции которые обрабатывают пришедшие в скрипт данные и работающие с базой данных
а javascript ее никуда и не передает он просит это сделать за него браузер а потом передать ему ответ, вообще в обмене информацией участвует браузер и сервер, информация представлена в текствовом виде, в специальной форме соответствующей протоколу http и браузер и сервер его знают, и так сказать общаются при помощи него между собой. В общем если интересно тебе надо сомтреть информацию про протокол НТТР. Это сообщение отредактировал(а) krundetz - 7.1.2009, 19:42 |
||||
|
|||||
| Kex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 2.10.2008 Репутация: нет Всего: нет |
Вот эта таблица уже есть, я как раз и хочу сделать это через базу! С javascript и передачей данных смотрю тоже не все просто. Ок, спасибо за ответ, поищу инфу про редирект в инете. |
|||
|
||||
| Kex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 2.10.2008 Репутация: нет Всего: нет |
Сделал я скрипт для скачавания, только одна проблема. При попытке ридеректа пользователя
открывается ссылка в этом же окне, как сделать что бы ссылка открывалась в новом окне?? |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
||||
|
||||
| Kex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 2.10.2008 Репутация: нет Всего: нет |
||||
|
||||
| lelik133 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 517 Регистрация: 5.2.2003 Где: Москва Репутация: 3 Всего: 14 |
php серверный язык, он никак не может управлять браузером пользователя.
|
|||
|
||||
| Kex |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 2.10.2008 Репутация: нет Всего: нет |
Ребята,немогу разобраться с редиректом!
Главное на localhost работал, а загрузил на сервер не хочет! Вот код:
И выдает ошибку: "Сейчас Вы будете переправлены на ссылку на файл. Если ваш браузер не поддерживает автоматическое перенаправление, нажмите на эту, ссылку" (т.е ссылка работает, туда из переменной $let или $dep я передал, а вот редирект нет!) "Warning: Cannot modify header information - headers already sent by (output started at /usr/home/*/domains/*.ru/public_html/download.php:51) in /usr/home/gidro156/domains/techgidravlika.ru/public_html/download.php on line 54" 54 строка это и есть как раз
Это сообщение отредактировал(а) Kex - 9.2.2009, 21:04 |
||||
|
|||||
| enof |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 1 Всего: 35 |
Kex,
Почитайте про протокол HTTP. Заголовки должны быть отправлены до любого вывода информации. Вам же ясно об это сказано, даже с указанием строк, где вывод, а где вы пытаетесь отправить заголовок.
Добавлено через 5 минут и 57 секунд
И это тоже совершенно не нужно, так как заголовки идут до содержания, соответственно бразуер переадресует раньше, чем увидят сообщение. Это сообщение отредактировал(а) enof - 9.2.2009, 21:09 |
||||
|
|||||
| Kex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 2.10.2008 Репутация: нет Всего: нет |
Точно, как прочитал вас вспомнил, что где читал про это. Все поменял, убрал echo перед редиректом, все заработало. Спасибо! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |