Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 1392 Просмотров
*

Ilja93

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Всем здравствуйте. Подскажите пожалуйста как в Joomla 3.2.1  вести лог действий авторизированных пользователей. Т.е. когда user1 авторизовался на сайте, какие странички он посещал, что скачивал. Модуль для авторизации использую стандартный. Нашел в интернете следующее для записи логов:

jimport('joomla.log.log');
define('ERROR_LOG', 'com_record.'.date('Y_m_d').'.php');
JLog::addLogger(
   array('text_file' => ERROR_LOG),
   JLog::ALL,
   array('com_record')
);
JError::$legacy = false;
JLog::Add("тест!!");

в примере в лог файл выводится сообщение тест!, как вывести нужную информацию?
Спасибо ^-^
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Это Вам придется всю Joomla таким кодом наполонить. Поищите расширение, что-то похожее скорее всего есть. Но учтите, что в Joomla нельзя все контролировать и логировать соответственно.
*

Ilja93

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Спасибо попробую поискать.
*

DiabloZet

  • Захожу иногда
  • 151
  • 5 / 1
  • Честь превыше всего!
Для просмотра каких страничек посещал человек вроде liveinternet.ru не плохо помогает...
Счетчик установите, там детальная инфа про пользователей, но уже что люди качают итд... нужно ставить код логов
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
вести лог действий авторизированных пользователей.
что значит лог действий?)
нужно контролировать все get и post запросы?
в корне есть index.php, если все проходит через него, а через него типа по стандартам должно все происходить, то вот простой код
Код
$user = JFactory::getUser();
if (!$user->guest) {
$data = date('d.m.Y H:i:s'). ' - ' . $user->name . "\n";
ob_start();
var_dump($_REQUEST);
$data .= ob_end_clean();
file_put_contents(dirname(__FILE__).'/my.log', $data, FILE_APPEND, PHP_EOL);
}
нужно разметить в нем после
Код
$app = JFactory::getApplication('site');

но не факт что все происходить именное через него :)
расширения и ситуации бывают разные

*

Ilja93

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Спасибо Вам за ответы. У меня сайт крутиться в локальной сети, где мне надо отследить что авторизованные пользователи посетили страничку, в какой день, тем самым узнать что Иванов Иван Иванович ознакомился со данными на страничке. 

SmokerMan я вставляю Ваш код index файл при авторизации у меня исчезает кириллица и ругается на строку: file_put_contents(dirname(__FILE__).'/my.log', $data, FILE_APPEND, PHP_EOL);

Если можете помочь еще советами подскажите пожалуйста.
Спасибо.
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Тогда может проще внешние системы статистики интегрировать?
Типа или еще чего нагуглить (on english)
*

Ilja93

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Спасибо но у меня компьютеры только в локальной сети работают.
*

Ilja93

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
$user = JFactory::getUser();
if (!$user->guest) {
   $data = date('d.m.Y H:i:s'). ' - ' . $user->name . "\n";
   ob_start();
   var_dump($_REQUEST);
   $data .= ob_end_clean();
   file_put_contents(dirname(__FILE__)."/my.log", $data);
Спасибо тебе SmokerMan! Лог авторизации пользователей теперь собирается! В коде убрал то что не могла понять Joomla и я тоже)))), а нажатие ссылок возможно сюда же записать данным пользователем?
*

Ilja93

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Ребята проблему решил тема закрыта. В index файл прописал следующее

    $file="base_user";        //имя файла с логами пользователей
    $col_zap=3499;          //записей в логе пользователей
    $bot=htmlspecialchars(substr($xxx,0,80));//обрезаем USER-AGENT до 80 символов
$user = JFactory::getUser();
$datauser = $user->name ;
//записываем логи в файл с блокировкой
$l_cash='';
$fh=fopen($file,"a+");
flock($fh,LOCK_EX);
fseek($fh,0);
while (!feof($fh)) $l_cash.= fread($fh,8192);
$lines=explode("\n",$l_cash);
while(count($lines)>$col_zap) array_shift($lines);
$l_cash=implode("\n",$lines);
$l_cash.=date("H:i:s d.m")."|" .$datauser ."|".$_SERVER['REMOTE_ADDR']."|".
    htmlspecialchars($_SERVER['REQUEST_URI'])."\n";
ftruncate($fh,0);
fwrite($fh,$l_cash);
flock($fh,LOCK_UN);
fclose($fh);


Всем спасибо!
*

Ilja93

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Вот код для отображения статистика через браузер, создаете php файл в корне сайта и заходите в него для просмотра.
Код:
<?php
if (isset($_GET["col"])) $col=$_GET["col"]; else $col=50;
$lines_cashe=file_get_contents("base_user", LOCK_EX);
$file=explode("\n",$lines_cashe);
$size_f=count($file)-1;
?>

<html>
<head>
<style type='text/css'>
 td.zz {PADDING-LEFT: 3px; FONT-SIZE: 9pt; PADDING-TOP: 2px; FONT-FAMILY: Arial;}
</style>
</head>

<body>
<center>
<?php
if ($col>$size_f) $col=$size_f;
echo 'Последние <b>'.$col.'</b> посетившие сайт:';
?>

<table width="750" cellspacing="1" cellpadding="1" border="0"
    style="table-layout:fixed">
<tr bgcolor="#eeeeee">
 <td class="zz" width="100"><b>Время, дата</b></td>
 <td class="zz" width="250"><b>Кто посещал</b></td>
 <td class="zz" width="100"><b>IP, прокси</b></td>
 <td class="zz" width="300"><b>Посещенный URL</b></td>
</tr>

<?php
for ($si=$size_f-1; $si>=$size_f-$col; $si--) {
$str=explode("|",$file[$si]);
echo '<tr bgcolor=#eeeeee><td class=zz>'.$str[0].'</td>';
echo '<td class=zz>'.$str[1].'</td>';
echo '<td class=zz>'.$str[2].'</td>';
echo '<td class=zz><a href="http://usefulscript.ru'.$str[3].'">'.$str[3];
echo '</a></td></tr>';
}
echo '</table>';
echo '<br>Просмотреть последние <a href=?col=100>100</a> <a href=?col=500>500</a> ';
echo '<a href=?col=1000>1000</a> посещений.';
echo '<br>Просмотреть <a href=?col='.sizeof($file).'>все посещения</a>.';
echo '</center></body></html>';
?>
*

Ilja93

  • Осваиваюсь на форуме
  • 44
  • 0 / 0
Товарищи, а может кто подсказать как в этом коде еще добавить выборку по дате?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Список материалов категории открыт, полные тексты для зарегистрированных - как?

Автор Аня

Ответов: 0
Просмотров: 314
Последний ответ 13.04.2022, 18:37:43
от Аня
Посещение сайта только для зарегистрированных пользователей

Автор FlexNL

Ответов: 9
Просмотров: 1025
Последний ответ 05.11.2021, 20:57:59
от FlexNL
Права доступа для отдельных пользователей

Автор vladmor

Ответов: 3
Просмотров: 559
Последний ответ 28.07.2021, 09:51:35
от ShopES
Как организовать регистрацию пользователей 18+?

Автор inkvizitr

Ответов: 1
Просмотров: 406
Последний ответ 07.01.2021, 11:15:19
от wishlight
Как скрыть часть кода от неавторизованных пользователей?

Автор UFO_hA

Ответов: 10
Просмотров: 1926
Последний ответ 04.11.2020, 23:18:31
от Kokshetau