Показать сообщение отдельно
Старый 21.04.2009, 14:02 Вверх   #2
Грамотный форумчанин
 
Аватар для Pamel
Pamel вне форума
Доп. информация
По умолчанию

Наверно все видели такую фишку - (например)"На сайте: 17 человек". Я же даю вам такой скрипт!!!

Пишем:

1. Открываем любой редактор...



2. Находим место



3.Вставляем в нужное место (над строкой где будет написано "Человек на сайте:") код -
PHP код:
function online () {
$ip=getenv("HTTP_X_FORWARDED_FOR");
if (empty(
$ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }
# уд. старые сессии
mysql_query ("DELETE FROM online WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(time) > 300") or die ("Can't delete old sess");
 
# проверка на присутстаие или занесение нового пользователя
$select mysql_query ("SELECT ip FROM online WHERE ip='$ip'") or die ("Can't select duble");
$tmp mysql_fetch_row ($select);
if (
$ip == $tmp[0]) {
mysql_query ("UPDATE online SET time=NOW() WHERE ip='$ip'") or die ("Can't update");
} else {
mysql_query ("INSERT INTO online (ip,time) VALUES ('$ip',NOW())") or die ("Can't insert");
}
# считывание результатов
$select mysql_query ("SELECT COUNT(*) FROM online") or die ("Can't select result");
$tmp mysql_fetch_row ($select);
$result $tmp[0];
 
return 
$result;

4.Пишем строку - "Человек на сайте"



PHP код:
echo "<p>Человек на сайте: ".online ()."</p>"
и подключаем функцию
PHP код:
online(); 
!

5.Идем в базу данных и создаем запрос -
PHP код:
CREATE TABLE online (
id INT(6AUTO_INCREMENT UNIQUE NOT NULL,
ip CHAR(15),
time DATETIME NOT NULL,
INDEX (ip)
); 


Вот впринципе и все!!! Приятно было провести с вами время)) Если чтото не понятно пишите ответ!

А кстати забыл написать - время пробывания человека на сайте 300 секунд с момента перехода на какую нибуть страницу сайта пишетса в этой строчке
PHP код:
mysql_query ("DELETE FROM online WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(time) > 300") or die ("Can't delete old sess"); 
Редактируетса время в этой строке
PHP код:
UNIX_TIMESTAMP(time) > 300") 
Если хотите уменьшыть время отщитывания на понравившееся вам измените число 300 на ваше!!!

Последний раз редактировалось Pamel; 21.04.2009 в 14:18..
  Ответить с цитированием
Cказали cпасибо:
 
Время генерации страницы 0.05020 секунды с 10 запросами