как реализовать лог в реальном времени

Статус
В этой теме нельзя размещать новые ответы.

buket23

Старатель
Регистрация
3 Окт 2008
Сообщения
163
Реакции
10
как при работе скрипта выводить лог в реальном времени
допустим возьмем такой скрипт
PHP:
<?php

$id = $_POST['use'];
$tm = $_POST['tm'];

 
   function post($url,$post,$refer)
	{
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
       curl_setopt($ch, CURLOPT_POST, 1);
       curl_setopt($ch, CURLOPT_HEADER, 1);
       curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
       curl_setopt($ch, CURLOPT_REFERER, $refer);
       curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
       curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       $result  = curl_exec($ch);
	   return $result;
	}
$text = file("login.txt");
foreach ($text as $txt)

 {
$buffer = explode(":",$txt);
	$pass = trim($buffer[1]);
	$email = trim($buffer[0]);

$result = post('http://site.ru/login.php','act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email='.$email.'&pass='.$pass,'http://site.ru/login.php');

echo "Авторизовались с $email <br>";
echo "------------------------------------------<br>";  

}
?>
т.е. надо так заходим под одним логином пишем
PHP:
Авторизовались с 1@mail.ru
 "------------------------------------------
далее идет цикл заходит со второго и добавляет что зашел, и так до конца цикла
PHP:
Авторизовались с 1@mail.ru
 "------------------------------------------
Авторизовались с 2@mail.ru
 "------------------------------------------
и т.д.
 
PHP:
function logfile($message)
{
	$file = "./log.log";
	$f = @fopen($file, "a+");
	if ($f) {
		@fwrite($f, date("H:i:s d-m-Y") . "  " . $trim(message) . "\r\n");
		@fclose($f);
	}
}

в коде основного скрипта добавляете вызов функции
PHP:
logfile("Авторизовались с " . $email);
 
делаю так и отказывается работать, при этом еще и цикл останавливается после первого захода
PHP:
  <?php

$id = $_POST['use'];
$tm = $_POST['tm'];

 function logfile($message)
{
    $file = "./log.log";
    $f = @fopen($file, "a+");
    if ($f) {
        @fwrite($f, date("H:i:s d-m-Y") . "  " . $trim(message) . "\r\n");
        @fclose($f);
    }
}  
   function post($url,$post,$refer)
    {
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
       curl_setopt($ch, CURLOPT_POST, 1);
       curl_setopt($ch, CURLOPT_HEADER, 1);
       curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
       curl_setopt($ch, CURLOPT_REFERER, $refer);
       curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
       curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       $result  = curl_exec($ch);
       return $result;
    }
$text = file("login.txt");
foreach ($text as $txt)

 {
$buffer = explode(":",$txt);
    $pass = trim($buffer[1]);
    $email = trim($buffer[0]);

$result = post('http://site.ru/login.php','act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email='.$email.'&pass='.$pass,'http://site.ru/login.php');

logfile("Авторизовались с " . $email);  
}
?>
 
бррр
недавно тема поднималась

возьми первоначальный код
просто после каждого echo ...
вызывай flush()

т.е.
Код:
echo "Авторизовались с $email <br>";flush();

Sanuch просто написал тебе код записи в файл )))
 
у меня опечатка, в функции logfile
строка записи в файл должна быть следующей:
PHP:
@fwrite($f, date("H:i:s d-m-Y") . "  " . trim($message) . "\r\n");
не там знак доллара поставил :)
 
спасибо и сам не глянул и не увидел ошибки, но всеравно не выводит, цикл идет а лога нет:confused:

бррр
недавно тема поднималась

возьми первоначальный код
просто после каждого echo ...
вызывай flush()

т.е.
Код:

echo "Авторизовались с $email <br>";flush();

Sanuch просто написал тебе код записи в файл )))

странно но лог выводится только по окончанию цикла, я уже так пробовал, не могу понять в чем причина
 
PHP:
function logfile($message)
{
    $file = "./log.log";
    $f = @fopen($file, "a+");
    if ($f) {
        @fwrite($f, date("H:i:s d-m-Y") . "  " . trim($message) . "\r\n");
        @fclose($f);
    }
}
пишет лог в файл, а не выводит в браузер

смотри выше

Добавлено через 24 минуты
некоторые браузеры не корректно работают с кэшем выдачи ( у меня такие траблы с IE ), т.е. не выдают пользователю пока буффер не заполнится до определенной величины
В таких случаях советуют еще иногда выводить незначащие символы ( например 500 пробелов ) - тебе не видно, а буфер переполняется

Ну и проверь свой код в другом браузере - Opera например
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху