Давным-давно я создал веб-сайт и в нем есть счетчик количества людей, скачавших мое приложение. Теперь я вижу счетчик ревертера до нескольких сотен, пока он был выше 30000. Я предполагаю, что счетчик составляет всего 2 байта.
Я не очень разбираюсь в PHP, но я догадался, что (int) приведение вызывает проблему.
<?php
if(!file_exists('Counters/counter_installer.txt')){
file_put_contents('Counters/counter_installer.txt', '0');
}
if($_GET['click_installer'] == 'yes'){
file_put_contents('Counters/counter_installer.txt', ((int) file_get_contents('Counters/counter_installer.txt')) + 1);
header('Location: ' . 'http://www.example.com/Releases/foobar.3.1.0.exe');
die;
}
Итак, я изменил (int)
на long
, но, поскольку кажется, что PHP долго не работает, страница не может быть загружена, поэтому я вернул ее обратно.
Чем я изменил содержимое файла (196) на 32964 (= 32768 + 196) и обнаружил, что он снова начал увеличиваться (когда я нажал кнопку загрузки).
Итак, один раз,счетчик вернулся (к 0?) Я предполагаю, и у меня нет понятия, почему.
Это связано с целым / 2-байтовым значением? Или что-то еще?