
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||||||||||||||||||||||||||||||
![]() Новичок ![]() Профиль Группа: Пользователь Сообщений: 32 Пользователь №: 31235 На форуме: Карма: ![]() |
Есть файл с таблицей для загрузки файлов, от каждого файла идут ссылки на обработчик (download.php) через GET (download.php?file=...).
Так же файл считает количество загрузок. download.php
Загружает все как надо, только пара недостатков: 1. Загружает только те файлы где лежит сам скрипт. 2. Счетчик не обновляет, а создает новую строку в таблице и вносит туда только имя файла(прикрепил скрин) Подскажите пожалуйста, как сделать чтоб можно было указывать путь к файлу, и в чем ошибка счетчика загрузок? Спустя 11 минут, 21 секунда (28.01.2012 - 16:43) Winston написал(а):
Потому что ты указываешь путь к файлу относительно своего скрипта. header('Content-Disposition: attachment; filename='.$filename.''); Пропиши полный путь header('Content-Disposition: attachment; filename='.$_SERVER['DOCUMENT_ROOT'] . '/downloads/' . $filename.''); А если запрос переписать mysql_query("INSERT INTO `files` Спустя 9 минут, 5 секунд (28.01.2012 - 16:52) You_Help_Me? написал(а):
Подумал над этим, но смутило "filename=" думал только название сюда, а за путь там какой-нибудь path... Но не важно, Спасибо с этим разобрался. Запрос подставил ваш
Все тоже самое, добавило новую строчку. Спустя 10 минут, 33 секунды (28.01.2012 - 17:03) You_Help_Me? написал(а): А вот еще такой вопросик появился, когда путь указываю, он в название файла добавляет название папок в пути к файлу, от них можно как-нибудь избавиться? Спустя 4 минуты, 5 секунд (28.01.2012 - 17:07) Winston написал(а): You_Help_Me? Пропиши в базе такой запрос alter table `files` add unique (`filename`) Спустя 1 минута, 51 секунда Winston написал(а):
Можно. Используй http://ua.php.net/manual/ru/function.pathinfo.php Спустя 3 минуты, 43 секунды (28.01.2012 - 17:11) You_Help_Me? написал(а):
Спасибо! Теперь все правильно.
Спасибо еще раз! Спустя 1 день, 1 час, 6 минут, 25 секунд (29.01.2012 - 18:17) You_Help_Me? написал(а): Winston A после этого запроса alter table `files` add unique (`filename`) Можно выводить значения поля downloads? У меня выводит что-то типа Resource id #323, вместо числа. Спустя 1 минута, 2 секунды (29.01.2012 - 18:18) Winston написал(а):
Покажи как пишешь. Спустя 1 минута, 19 секунд (29.01.2012 - 18:19) You_Help_Me? написал(а):
$explode[1] - точно правильный, проверял Спустя 1 минута, 7 секунд (29.01.2012 - 18:20) Winston написал(а): $downloads = mysql_query("SELECT downloads FROM files WHERE filename='".$explode[1]."'"); //вывод числа загрузок Спустя 3 минуты (29.01.2012 - 18:23) You_Help_Me? написал(а):
Помогло, благодарю. Спустя 1 час, 38 минут, 55 секунд (29.01.2012 - 20:02) bob marley написал(а):
на тему твою ответили,а вот это ни кто почему-то не прокомментировал! You_Help_Me? Пиши полностью <?php т.к. некоторые хостера это не поддерживают или сначала поддерживают,а потом отключают. Спустя 9 дней, 17 часов, 44 минуты, 21 секунда (9.02.2012 - 13:47) You_Help_Me? написал(а):
Учту У меня опять траблы с таблицами, я не понимаю почему он все время добавляет новую строку вместо обновления
Подскажите как подправить :unsure: Спустя 1 час, 26 минут, 6 секунд (9.02.2012 - 15:13) Winston написал(а): Что за бред?
Нужно сравнивать, а не присваивать $array_select_ip['IP'] == $_SERVER['REMOTE_ADDR'] Спустя 4 минуты, 26 секунд (9.02.2012 - 15:17) You_Help_Me? написал(а):
Ой да... Вообще туплю ![]() Но все равно добавляет строку, как тогда.. Спустя 1 минута, 29 секунд (9.02.2012 - 15:19) You_Help_Me? написал(а): Просто здесь нету уникальных значений, ну кроме как id(PRIMARY), так бы давно сделал. Спустя 8 секунд (9.02.2012 - 15:19) Winston написал(а): Как это update может добавить строку в таблицу? ![]() Покажи больше кода. Спустя 1 минута, 41 секунда (9.02.2012 - 15:21) You_Help_Me? написал(а):
Я проверяю если строка существует ее обновляю, если ее нету создаю ее Спустя 23 минуты, 39 секунд (9.02.2012 - 15:44) You_Help_Me? написал(а): Создает новую строку только с `counter`+1 Спустя 2 минуты, 36 секунд (9.02.2012 - 15:47) Winston написал(а): По логике, у тебя скрипт работает так: выбираются записи, в цикле проверяются, если условие
выполняется, то происходит обновление записи и цикл останавливается, но после цикла у тебя еще происходит запись в таблицу. Спустя 2 минуты, 3 секунды (9.02.2012 - 15:49) You_Help_Me? написал(а):
А как сделать чтоб запись происходила только тогда когда нет записи с таким-то IP и файлом? Спустя 1 минута, 15 секунд (9.02.2012 - 15:50) Winston написал(а): Так попробуй Свернутый текст while($array_select_ip = mysql_fetch_assoc($select_ip)) Спустя 3 минуты, 4 секунды (9.02.2012 - 15:53) You_Help_Me? написал(а): А он не будет каждый раз идти по ветке else? Там же while. Спустя 4 минуты, 46 секунд (9.02.2012 - 15:58) You_Help_Me? написал(а): Работает. Спасибо который раз ![]() Но я не понимаю, по логике же если запись не подходит if'у раз 50, то он должен создавать запись 50 раз Спустя 3 минуты, 37 секунд (9.02.2012 - 16:02) Winston написал(а): Ну у тебя же IP это первичный ключ. Потому и не вставляет. Спустя 14 минут, 49 секунд (9.02.2012 - 16:16) You_Help_Me? написал(а):
Нет.. у меня id - первичный. Все-таки добавляет, IP меняешь, он несколько записей добавляет из-за вайла. В таблице по идее могут повторяться и IP и filename. ![]() Присоединённое изображение ![]() |
||||||||||||||||||||||||||||||
![]() |
![]() ![]() ![]() |