Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Кто в онлайн?
 
 автор: YAN   (13.06.2006 в 11:59)   письмо автору
 
 

Здраствуйте.
Мой скрипт "Сколько в онлайн", записывает в online.txt информацию такого типа:

172.16.0.2|1038236463
792.162.0.101|1028236483

Как я понял это IP и время последнего действия,
задача, создать скрипт(отдельный), который сам читает online.txt и отображает на странице информацию такого типа:

Сейчас на сайте:<br>
172.16.0.2 <br>
792.162.0.101 <br>


Точнее все просто, читаем, лишнее убираем, br ставим. Но online.txt не изменяем!!! Я б и сам сделал. Но просто php плохо знаю.

Могу токо начать:

<?php 
$whois 
fopen('/php/online.txt');

???????????
$whois Кил все в строчке после "|" <br> :)
???????????
???????????
?>


Заранее спасибо!

   
 
 автор: YAN   (13.06.2006 в 14:24)   письмо автору
 
   для: YAN   (13.06.2006 в 11:59)
 

Ну, не кто не знает как сделать?

   
 
 автор: honuryk   (13.06.2006 в 14:28)
 
   для: YAN   (13.06.2006 в 14:24)
 

вот тут посмотри

http://softtime.ru/scripts/online.php

   
 
 автор: YAN   (13.06.2006 в 21:02)   письмо автору
 
   для: honuryk   (13.06.2006 в 14:28)
 

Зачем мне скрипт?
Я хочу только отображать с фаила, с маленькой его изменой.

Что, не кто помоч не может?

   
 
 автор: NFR   (13.06.2006 в 22:15)   письмо автору
 
   для: YAN   (13.06.2006 в 21:02)
 

о!

$whois = @file('/php/online.txt');

for ($i=0;$i<count($whois);$i++) 
{
$ip = explode("|",$whois[$i]);
print "$ip[0]<br>";
}

   
 
 автор: YAN   (16.06.2006 в 13:13)   письмо автору
 
   для: NFR   (13.06.2006 в 22:15)
 

Этот скрипт, изменяет '/php/online.txt' ???

   
 
 автор: valenok   (16.06.2006 в 14:36)   письмо автору
 
   для: YAN   (16.06.2006 в 13:13)
 

Помойму он ничего не изменяет - раз.
Во вторых - стоитло бы поменять название файла в моём коде... $file=file('php/online.txt');

   
 
 автор: NFR   (16.06.2006 в 15:32)   письмо автору
 
   для: YAN   (16.06.2006 в 13:13)
 

не-а...

   
 
 автор: YAN   (17.06.2006 в 13:21)   письмо автору
 
   для: NFR   (13.06.2006 в 22:15)
 

Нет. Скрипт не подходит. Он не чего не показывает!

   
 
 автор: cheops   (13.06.2006 в 22:50)   письмо автору
 
   для: YAN   (13.06.2006 в 11:59)
 

А лишние записи из online.txt удаляются? Т.е. там всегда актуальная информация и нужно вывести только IP-адреса?

   
 
 автор: NFR   (14.06.2006 в 09:27)   письмо автору
 
   для: cheops   (13.06.2006 в 22:50)
 

> Но online.txt не изменяем!!!
Он сам говорил, что ничего не удаляем;-Р

   
 
 автор: YAN   (15.06.2006 в 16:23)   письмо автору
 
   для: NFR   (14.06.2006 в 09:27)
 

не чего не изменяем.
Фаил сам обновляеться!
Пуст отображаються только ip адресса

   
 
 автор: NFR   (15.06.2006 в 18:17)   письмо автору
 
   для: YAN   (15.06.2006 в 16:23)
 

так тебе мой скриптик подошёл/нет?..

   
 
 автор: valenok   (15.06.2006 в 20:06)   письмо автору
 
   для: NFR   (15.06.2006 в 18:17)
 

попробуй чтото в этом роде:

<?php
$file
=file('online.txt'); // Каждую строку текста в файле заносим в массив
$time=time()-180// Устанавливаем время таймаута после которого пользователь считается не активен
for($i=0;$i<count($file);$i++){ // для каждой строки в файле, точнее для каждой строки находящейся в массиве..
$file[$i]=trim("|",$file[$i]); // Делим строку на ip и время посещения. Загоняем это в двухмерный массив
if($file[$i][0]>$time){echo"Пользователь с адрессом: ".$files[$i][1]. " сейчас наслаждается сайтов вместе с нами.";}
// Проверяем - если пользователь был тут меньше сем 180 сек. назад - значит он с нами.
}
?>


Если чтото не понятно по поводу массивов - напиши в конце скрипта: print("<pre>");print_r($file);
Может это прольёт свет

Саша.

   
 
 автор: YAN   (16.06.2006 в 12:58)   письмо автору
 
   для: valenok   (15.06.2006 в 20:06)
 

не работает :(
Отображает пустую страницу.

   
 
 автор: cheops   (16.06.2006 в 15:31)   письмо автору
 
   для: YAN   (13.06.2006 в 11:59)
 

Вы можете воспользоваться скриптом, который приводится в конце темы http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=10772.

   
 
 автор: YAN   (17.06.2006 в 13:21)   письмо автору
 
   для: cheops   (16.06.2006 в 15:31)
 

<? $ip $REMOTE_ADDR$time time(); $minutes 15$found 0$users 0$user  ""; if (!is_file("online.txt"))  { $s fopen("online.txt","w"); fclose($s); chmod("online.txt",0666); } $f fopen("online.txt","r+"); flock($f,2); while (!feof($f)) { $user[] = chop(fgets($f,65536)); } fseek($f,0,SEEK_SET); ftruncate($f,0); foreach ($user as $line) { list($savedip,$savedtime) = split("\|",$line );if ($savedip == $ip) {$savedtime $time;$found 1;} if ($time $savedtime + ($minutes 60)) { fputs($f,"$savedip|$savedtime\n"); $users $users 1; } }  if ($found == 0) { fputs($f,"$ip|$time\n"); $users $users 1; } fclose ($f); print "$users"?>


Вот мой скрипт Онлайн.
Все данные он сохраняет в online.txt

А нам надо скрипт, допустим unline.php, который через "<br>" или "<pre>", отображет ТОЛЬКО ip адреса. Без замены файла.

Пока я сделал просто,

<pre><?php include ('php/online.txt');?></pre>
Осталось только убрать лишнее после "|" в каждой строчке.

Скрипт:
<?php 
$file
=file('php/online.txt'); // Каждую строку текста в файле заносим в массив 
$time=time()-180// Устанавливаем время таймаута после которого пользователь считается не активен 
for($i=0;$i<count($file);$i++){ // для каждой строки в файле, точнее для каждой строки находящейся в массиве.. 
$file[$i]=trim("|",$file[$i]); // Делим строку на ip и время посещения. Загоняем это в двухмерный массив 
if($file[$i][0]>$time){echo"Пользователь с адрессом: ".$files[$i][1]. " сейчас наслаждается сайтов вместе с нами.";} 
// Проверяем - если пользователь был тут меньше сем 180 сек. назад - значит он с нами. 

?> 

почему то вообще не отображает не чего :(
Но там уже перебор. "время таймаута после которого пользователь считается не активен".
Спасибо, не надо!

   
 
 автор: valenok   (17.06.2006 в 13:36)   письмо автору
 
   для: YAN   (17.06.2006 в 13:21)
 

добавь в конце:
print("<pre>");print_r($file);
Что вышло?

   
 
 автор: YAN   (17.06.2006 в 14:11)   письмо автору
 
   для: valenok   (17.06.2006 в 13:36)
 

неа. Пишет

Array
(
    [0] => 
)

   
 
 автор: valenok   (17.06.2006 в 14:34)   письмо автору
 
   для: YAN   (17.06.2006 в 14:11)
 

Хм. А после первой строчки?

<?php
$file=file('php/online.txt');
print("<pre>");print_r($file);

   
 
 автор: YAN   (17.06.2006 в 15:01)   письмо автору
 
   для: valenok   (17.06.2006 в 14:34)
 

А так

Array
(
[0] => 67.15.60.41|1150541944

)

   
 
 автор: valenok   (17.06.2006 в 18:23)   письмо автору
 
   для: YAN   (17.06.2006 в 15:01)
 


<?php 
$file
=file('php/online.txt'); // Каждую строку текста в файле заносим в массив 
$time=time()-180// Устанавливаем время таймаута после которого пользователь считается не активен 
for($i=0;$i<count($file);$i++){ // для каждой строки в файле, точнее для каждой строки находящейся в массиве.. 
$online=trim("|",$file[$i]); // Делим строку на ip и время посещения. Загоняем это в двухмерный массив 
if($online[0]>$time){echo"Пользователь с адрессом: ".$online[1]. " сейчас наслаждается сайтов вместе с нами.";} 
// Проверяем - если пользователь был тут меньше сем 180 сек. назад - значит он с нами. 

?>

   
 
 автор: YAN   (19.06.2006 в 09:40)   письмо автору
 
   для: valenok   (17.06.2006 в 18:23)
 

Пустая страница!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования