Пройдет небольшое обсуждения логирование запросов, думаю для написания класса...
имхо так представляю
class Loger
{
private $actionType = false;
private $userId = false;
private $subjectId = false;
public function __construct($userId, $actionType, $subjectId) {
$this->userId = $userId;
$this->actionType = $actionType;
$this->subjectId = $subjectId;
}
public function add() {
// mysql query add
// insert into (`userid`, `subid`, `act`) values (/* $userId, $actionType, $subjectId */);
}
}
Koenig, На базу хочешь все писать ?
venom, конечно, не в файл же валить, потом же еще надо будет куда то выводить, сортировать, короч на БД проще все, хотя и на файлах можно
Koenig, Думаю на файло не нужно , с базы же можно сделать и вывод для отдельного пользователя свой , ну и естественно СВ...
Koenig, А это не велосипед Джона...
Фиксация местоположений посетителей (+/-)
$sql = '';
$set_karma = unserialize($set['karma']);
if ($user_id) {
// Фиксируем местоположение авторизованных
if (!$datauser['karma_off'] && $set_karma['on'] && $datauser['karma_time'] <= (time() - 86400)) {
$sql .= " `karma_time` = '" . time() . "', ";
}
$movings = $datauser['movings'];
if ($datauser['lastdate'] < (time() - 300)) {
$movings = 0;
$sql .= " `sestime` = '" . time() . "', ";
}
if ($datauser['place'] != $headmod) {
++$movings;
$sql .= " `place` = '" . mysql_real_escape_string($headmod) . "', ";
}
if ($datauser['browser'] != $agn)
$sql .= " `browser` = '" . mysql_real_escape_string($agn) . "', ";
$totalonsite = $datauser['total_on_site'];
if ($datauser['lastdate'] > (time() - 300))
$totalonsite = $totalonsite + time() - $datauser['lastdate'];
mysql_query("UPDATE `users` SET $sql
`movings` = '$movings',
`total_on_site` = '$totalonsite',
`lastdate` = '" . time() . "'
WHERE `id` = '$user_id'
");
} else {
// Фиксируем местоположение гостей
$movings = 0;
$session = md5(core::$ip . core::$ip_via_proxy . core::$user_agent);
$req = mysql_query("SELECT * FROM `cms_sessions` WHERE `session_id` = '$session' LIMIT 1");
if (mysql_num_rows($req)) {
// Если есть в базе, то обновляем данные
$res = mysql_fetch_assoc($req);
$movings = ++$res['movings'];
if ($res['sestime'] < (time() - 300)) {
$movings = 1;
$sql .= " `sestime` = '" . time() . "', ";
}
if ($res['place'] != $headmod) {
$sql .= " `place` = '" . mysql_real_escape_string($headmod) . "', ";
}
mysql_query("UPDATE `cms_sessions` SET $sql
`movings` = '$movings',
`lastdate` = '" . time() . "'
WHERE `session_id` = '$session'
");
} else {
// Если еще небыло в базе, то добавляем запись
mysql_query("INSERT INTO `cms_sessions` SET
`session_id` = '" . $session . "',
`ip` = '" . core::$ip . "',
`ip_via_proxy` = '" . core::$ip_via_proxy . "',
`browser` = '" . mysql_real_escape_string($agn) . "',
`lastdate` = '" . time() . "',
`sestime` = '" . time() . "',
`place` = '" . mysql_real_escape_string($headmod) . "'
");
}
}
venom, думаешь к этому как то присосаться? там есть заголовок что юзер пишет, отвечает и тд, но не факт что он напишет, вот как
# venom (23.10.2015 / 20:40)
Пройдет небольшое обсуждения логирование запросов, думаю для написания класса...
Логирование действий пользователя или работы скрипта?
Если пользователей, то надо будет просто собирать данные переменной $textl или как то так. Той что определяет местоположение юзера. И всё. Правда эта переменная не везде есть. Надо наверное будет доставить.
Хотя так то это не полное логирование будет. Что бы было полное надо ещё как то цепляться к БД, перехвачивать запросы и разбирать их. Другого варианта не вижу.
ValekS, эта переменная не гарантирует отправку данных, только то что юзер туда глянул, а потом назад в арбузе нажал и улетел в другую часть сайта
# Koenig (23.10.2015 / 22:05)
ValekS, эта переменная не гарантирует отправку данных, только то что юзер туда глянул, а потом назад в арбузе нажал и улетел в другую часть сайта
Ну вот тогда надо к БД цепляться. Только как? И это будет грузить сайт.