Здравствуйте! Помогите пожалуйста, нужно готовое решение. Есть много версий счетчиков. Максимум чего я добился это запись посещений для каждой страницы профиля пользователей. Запись происходит в txt файл каждого пользователя (создается файл.txt с названием пользователя, которое берется из урл страницы) , выводится как: "Просмотров профиля: 4" Мой код: PHP: <?php $url = $_SERVER['HTTP_REFERER']; $url = basename("$url").PHP_EOL; $real_page = trim($url).".txt"; $message=""; $ip = getenv("REMOTE_ADDR")."::".getenv("HTTP_X_FORWARDED_FOR"); $datum=date("m.Y", time()-3*3600); $fp = fopen("$real_page", "rb"); flock($fp,1); $contents=fread ($fp, filesize ($real_page)); fclose ($fp); $content= explode("\n",$contents); $counts= explode("|",$content[0]); $counts[3]=chop($counts[3]); if ($counts[3]=="") {$counts[3]="1";} if (!in_array ($ip, $content)) { $content[] = $ip; $counts[1]++; } $counts[2]++; $counts[3]++; if ($counts[0]!=$datum) { $message="\ntotal hits: ".$counts[3]."\ntoday hits: ".$counts[2]."\ntoday uniques: ".$counts[1]; $r11=$counts[1]; $r21=$counts[2]; $counts[0]=$datum; $counts[1]=1; $counts[2]=1; } echo '<span class="ucount">Просмотров: <span>'.$counts[2].'</span></span>'; $content[0]=$counts[0]."|".$counts[1]."|".$counts[2]."|".$counts[3]; $fd = fopen("$real_page", "a"); $locked = flock($fd,2); if ($locked) { $fp = fopen("$real_page", "wb"); if ($message=="") { fwrite($fp, implode("\n",$content)); } else { fwrite($fp,$content[0]); } fclose($fp); } fclose($fd); ?> Должен быть принцип работы такой. В текстовый файл записывается типа: 01. 2022 | 4 - дата месяца и кол-во просмотров. Следующий месяц если не совпадает записывается с новой строки и просмотры за новый месяц: 01. 2022 | 4 02. 2022 | 26 03. 2022 | 17 Ну и собственно нужно вывести последние 6 месяцев с просмотрами (нужно для графика). Помогите реализовать, заранее благодарю.
Используй базу данных для таких вещей, иначе один поток запроса на сайт может перекрыть/стереть/перезаписать весь файл другого запроса. Говорю по опыту, 10 лет назад таким же страдал. Ставь лайк. Подписывайся в никуда. Будь актуальным!
Готового решения в том виде что описали мне будет, потому что так не делается, как уже сказали пишити всё в бд, а оттуда уж любые данные м любыми рпзбивкамт, периодами и прочими прелестями
Спасибо за ответы, дело в том что я раньше не имел дело с php и sql, просто срочно возникла такая задача. Сайт на ucoz, через фтп заливаются файлы, как создавать базы данных я не знаю, попробовал в файле php создать базу, выдает ошибку. Нужно готовое решение, если для ucoz это не возможно, можно тему закрыть.
Готовое решение - значит кто-то должен быть в курсе установленных на этом, без сомнения, достойном сервисе, ограничений. Тогда логичней было бы обратиться на его форум. Наверняка он там есть. Если же, всё-таки, решитесь заняться решением самостоятельно, то разбейте задачу на составляющие, и обращайтесь сюда по конкретным вопросам вызвавшим затруднение.
На дворе уже 2222 год PHP 8.2 Код (Text): Какую версию PHP использует uCoz ? На сентябрь 02.09.2021 актуальна PHP Version 5.2.12.
Через 200 лет Жесть. Люди буквально понимают фразу «работает – не трожь». Или это шутка? @Viktor1984, в файл можете только логи FILE_APPEND'ом писать с послед. обработкой результатов. Для реал-тайма нужна БД, как выше написали. Сейчас это делается при помощи AJAX, например я часто использую pageviews.js со своим php-обработчиком. Вы тоже можете развернуть серверную часть на норм. хостинге, а на юкозе только собирать и выводить результаты (прямо на клиенте).
Я в курсе что это за помойка. То какая она "актуальная" везде и в техподдержке, в обратном смысле. Удивлен в одном, что еще люди это дно используют. Что за вопросики у тебя без смысла возникают ? Ты сам пишешь на версии динозавра и недавно узнал что денвер - это калл. Вопросы не о чем.
Меня на их форуме забанили. Лет с десять назад. На больную мозрль наступил. Вот как тебе сейчас. Тоже поди, в программирование умеешь.