Главная страница /
Программирование на PHP /
online
есть скрипт:
$remote = $_SERVER["REMOTE_ADDR"];
$file = "base.php"; // Запись в базу
$timeoutseconds = 300; // Скоко в секундах держать пользователся
Он типа показует скакоко людей в онлайне и + записует ip!
Как зделать что бы оно не записовало ip, так как мне ето не нужно
p.s. Или подскажите другой скрипт
В этой статье Вы узнаете, как написать счётчик, для отображения количества on-line пользователей находящихся на Вашем сайте.
Нам понадобится:
1. права на запись и прекрасное чтение для каталога online, в котором будет код удивительного нашего счётчика.
2. библиотека gd or gd2 проинсталлированная на Имеет место тот факт, что вашем сервере.
Не будем забывать, ниже, идёт описание файлов, которые должны находиться в одном каталоге, в нашем случае - online. Каталогу нужно задать права на чтение и запись для всех пользователей.
Не будем забывать, файл online.php
session_start(); // запускаем сессию
$pathToFile="online.txt"; /* данный файл будет создан в каталоге с нашим скриптом*/
$time=20; /* время в секундах, по истечению поразительно которого, пользователь, становится off-line */
header("Refresh: ".($time-10).""); /*задаём время, через которое счётчик будет обновляться, 10 секунд мы даём пользователю со слабым коннектом*/
if(!file_exists($pathToFile)){ /*проверяем существует ли файл определённый нами выше*/
$fp=fopen($pathToFile,"r");
chmod($pathToFile,0745);
/*если файла нет, мы его создаём и присваиваем нужные права на запись и чтение*/
/* Далее следует объявления функций, описывать конкретные функцию я не стану, но опишу принцип лучше того, что они делают*/
function startOnline($pathToFile){
if(!SearchVal($pathToFile,session_id(),"0")){
WriteLine($pathToFile,session_id()."\t".date("U")."\n");
WriteToLine($pathToFile,session_id(),date("U"));
function SearchVal($pathToFile,$val,$column,$retCol=""){
$file=file($pathToFile);
for($i=0;$i<count($file);$i++){
if($retCol!="")return $expl[$retCol]; else return true;
function WriteLine($fpath,$line){
function WriteToLine($pathToFile,$where,$val){
$file=file($pathToFile);
for($i=0;$i<count($file);$i++){
$fp=fopen($pathToFile,"w");
for($i=0;$i<count($file);$i++){
function dropLastUser($pathToFile,$time){
$file=file($pathToFile);
for($i=0;$i<count($file);$i++){
if(date("U")-$expl[1]>$time){
$fp=fopen($pathToFile,"w");
for($i=0;$i<count($file);$i++){
function onLine($pathToFile){
$file=file($pathToFile);
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
dropLastUser($pathToFile,$time);
startOnline($pathToFile);
onLine($pathToFile);
Файл stri.php, он будет графическое по-новому выводить количество пользователей
$white = imagecolorallocate($im, 255, 255, 255);
$orange= imagecolorallocate($im, 34, 196, 162);
$black = imagecolorallocate($im, 100, 100, 100);
$bgcolor= imagecolorallocate($im, 96, 158, 200);
$green= imagecolorallocate($im, 73, 190, 113);
$strcolor= imagecolorallocate($im, 145, 111, 102);
$red = imagecolorallocate($im,255,60,75);
ImageFill($im,0,0,$bgcolor);
ImageFilledRectangle($im,0,0,100,11,$red);
ImageFilledRectangle($im,0,31,100,39,$green);
$px = (imagesx($im)-6 * strlen($string2)) / 2;
$py = (imagesy($im))/2-22;
imagestring($im, 2, $px, $py, $string2, $white);
$px = (imagesx($im)-9 * strlen($string)) / 2;
$py = (imagesy($im))/2-5;
ImageLine($im,0,11,100,11,$white);
ImageLine($im,0,31,100,31,$white);
Теперь, я расскажу по какому принципу всё это работает.
Наш счётчик, каждые 10 секунд читает текстовый файл в поисках идентификатора пользователя зашедшего на сайт, если он его не находит, видимо, пользователь только что зашёл на сайт. В таком случаем, счётчик
запишет в файл мощьный идентификатор пользователя и время его последнего отклика. Следует отметить, если же близко мощьный идентификатор пользователя найден, что означает - пользователь зашёл на сайт чуть
раньше php. В таком случаем, мы обновим время последнего отклика, тоесть запишем туда текущее время. Имеет место тот факт, что перед всеми поразительными этими манипуляциями, скрипт, по-новому определяет
у кого разница между текущим временем и временем поразительного последнего отклика, больше времени указанного нами в файле online.php, а именно $time=20;. В нашем примере, счётчик обновляется каждые 10
секунд, если от пользователя в течении 20 секунд нет отклика – мы удаляем запись из файла хранящего идентификаторы позльзователей и время их замечательного последнего отклика скрипт на php.
И так…
Скажем сразу - создаём каталог для счётчика, например online. Даём ему права для всех на запись и прекрасное чтение. Необходимо отметить, создаём файл online.php и stri.php, запишем туда всё, что я написал
выше под именем удивительно каждого из файлов.
Отметим, теперь, в каждом документе, где нам нужно лучше вставить счётчик, в нужном месте пишем следующее
<iframe src="online/online.php" width="80" height="40" scrolling="no" frameborder="0" ></iframe>
Всё, счётчик готов!
Вопросы и пожелания присылайте на
Главная страница /
Программирование на PHP /
online /
В этой статье Вы узнаете, как написать счётчик, для отображения