Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Счетчик скачиваний

, Счетчик скачиваний
Статус пользователя Djon
сообщение 5.5.2015, 18:36
Сообщение #1
Стаж: 12 лет

Сообщений: 40
Благодарностей: 3
Полезность: 51

Привет всем.Подскажите как сделать что бы от одного пользователя не учитывалось каждое скачивания?
Вот код
if ($_GET['book']==1) {
header("location: http://сайт.ru/"); //«десь указываете путь к файлу, который нужно скачать
$file=fopen("book1.txt","a+"); //book1.txt - это им¤ файла, в котором будет хранитьс¤ статистика закачек
flock($file,LOCK_EX);
$count=fread($file,100);
$count++;
ftruncate($file,0);
fwrite($file,$count);
flock($file,LOCK_UN);
fclose($file);
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя onotole
сообщение 6.5.2015, 10:53
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 1572
Благодарностей: 1119
Полезность: 1550

Меценат Меценат

Записать в сессию что юзер скачал, и делать проверку
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 6.5.2015, 21:53
Сообщение #3
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Djon,
Код
if($_GET['book']==1) {
    if(!isset($_SESSION['download-count']) || isset($_SESSION['download-count']) && $_SESSION['download-count']) != 1) {
        $file=fopen("book1.txt","a+");
        flock($file,LOCK_EX);
        $count=fread($file,100);
        $count++;
        ftruncate($file,0);
        fwrite($file,$count);
        flock($file,LOCK_UN);
        fclose($file);
        $_SESSION['download-count'] = 1;
    }
    header("location: http://сайт.ru/");
    exit;
}


если сессия выключена в файле, в самом верху файла добавьте: session_start();

Совет:
1. Никогда не делайте header("location....") а потом запись и дальнейшее выполнение скрипта. Самый лучший вариант, выполнить скрипт, после чего сделать header()
2. После header("location....") всегда использовать exit(); или exit;
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: