Форум → Программирование → PHP для идиотов → Отчеты действий пользователя
Отчеты действий пользователя
-
16 апреля 2008 г. 13:33, спустя 7 минут 18 секунд
На такие вопросы невозможно ответить вне контекста конкретной задачи. -
16 апреля 2008 г. 15:14, спустя 1 час 40 минут 40 секунд
Ну для этого совсем не обязательно обращаться к БД. Просто пусть при авторизации создается фал с уникальным именем (иенем пльзователя и проверкой существования такого же). Потом при конкретном действии пользователя, прога смотрит его имя в переданных данных, смотрит в файл соответственно с его именем и добавлет строку. -
16 апреля 2008 г. 16:54, спустя 1 час 39 минут 54 секунды
Для такого лучше всего всё же БД юзать.
А для чего тебе всё это? Решил установить за кем-то тотальную слежку? :)from TRIAL with LOVE -
16 апреля 2008 г. 20:53, спустя 3 часа 59 минут 7 секунд
Тут всё очень просто. На каждой страничке повесть такой код:
$wine = "300"; // то есть пользователь онлайн в течении 300 секунд
$url = $_SERVER['REQUEST_URI'];
$ip = $_SERVER['REMOTE_ADDR'];
if (isset($_SESSION['user_id'])) // если сессия пользователя установлена
{
$query = "UPDATE `users`
SET
`lastvisit`=NOW(),
`lastip`='{$ip}',
`lasturl`='{$url}'
WHERE `id`='{$_SESSION['user_id']}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
$sql_update = "UPDATE users SET `online`='0' WHERE `time`+$wine < ".time()." OR `lastip`='{$lastip}' LIMIT 1";
$result_update = mysql_query($sql_update) or die(mysql_error());
$sql_insert = "UPDATE users SET `online`='1', `time`='".time()."' WHERE `id`='{$_SESSION['user_id']}' LIMIT 1";
$result_insert = mysql_query($sql_insert) or die(mysql_error());
}
time - это unix время.
если в столбце online=0 - пользователь не онлайн, 1 - онлайн.
Если у тебя нету регистрации на сайте, то тут просто нужно всё сделать без сессии.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!