MOD Last Visit
-
- phpBB 2.0.6
- Сообщения: 518
- Стаж: 20 лет 5 месяцев
MOD Last Visit
last_visit_1.2.8em - этот мод меня не устраивает, там слишком много того, что мне вовсе не нужно. Реализацию отображения кто был на форуме за последние 24 часа сделаю с помощью Users of the day.
Мне нужно отображение последнего посещения пользователя, которое можно будет посмотреть в memberlist и в viewprofile.
Мне нужно отображение последнего посещения пользователя, которое можно будет посмотреть в memberlist и в viewprofile.
-
- phpBB 2.0.6
- Сообщения: 518
- Стаж: 20 лет 5 месяцев
Да мне не для себя ведь, а пользователям, чтобы они могли смотреть кто и когда был.
Сейчас у меня эта бяка last_visit_1.2.8em, но в новой версии форума, которая почти готова, этот мод не будет установлен. Он слишком много всего редактировать предполагает, т.е. он слишком неоправданно сложен, для вывода уже имеющейся служебной информации о последнем посещении.
Сейчас у меня эта бяка last_visit_1.2.8em, но в новой версии форума, которая почти готова, этот мод не будет установлен. Он слишком много всего редактировать предполагает, т.е. он слишком неоправданно сложен, для вывода уже имеющейся служебной информации о последнем посещении.
-
- phpBB 2.0.0
- Сообщения: 230
- Стаж: 20 лет 4 месяца
- Откуда: Москва
-
- phpBB 2.0.6
- Сообщения: 518
- Стаж: 20 лет 5 месяцев
The-eBook, а удобно, всегда можно посмотреть, когда последний раз был интересный человек, например, или что-то в этом роде. Практически, это требование №1 со стороны пользователей. В принципе, это всего лишь увеличение функциональности.
Last Visit, Users of the day и Online/Offline/Hidden Mod и все. Новый форум будет готов. Останется его только «зверски» со своей командой испытать на уязвимости, ошибки, и пр. и можно будет выпускать его в свет.
А так, так пользователям важны лишь те модификации, которые они «потрогать» могут. Визуализация разная. Даже мигающая картинка, когда ЛС приходит вызывает у многих чувство удовлетворенности, так чего уж говорить о «примочках, которые пользователю дают возможности побыть агентом 007.
Добавлено спустя 1 минуту 2 секунды:
The-eBook
Будет желание потестировать форум, заходи под никнаймом demo с паролем demo (demo/demo)
Last Visit, Users of the day и Online/Offline/Hidden Mod и все. Новый форум будет готов. Останется его только «зверски» со своей командой испытать на уязвимости, ошибки, и пр. и можно будет выпускать его в свет.
А так, так пользователям важны лишь те модификации, которые они «потрогать» могут. Визуализация разная. Даже мигающая картинка, когда ЛС приходит вызывает у многих чувство удовлетворенности, так чего уж говорить о «примочках, которые пользователю дают возможности побыть агентом 007.

Добавлено спустя 1 минуту 2 секунды:
The-eBook
Будет желание потестировать форум, заходи под никнаймом demo с паролем demo (demo/demo)
-
- phpBB 2.0.0
- Сообщения: 230
- Стаж: 20 лет 4 месяца
- Откуда: Москва
YarNET, то как реализовано подобное мне не нравится. Я долго работал с японцами, а у них психология – "если поставил точку, она должна иметь оправдание или смысл". Поэтому лишние детали усложняют считывание информации с экрана. Я бы предпочел, чтобы подобное было отдельной страницей для всех страждующих, например вот здесь у тебя: http://forum.yarnet.ru/viewonline.php, сюда можно попасть, если щелкнуть на линке внизу форума – "Кто сейчас на форуме"
-
- phpBB 2.0.6
- Сообщения: 518
- Стаж: 20 лет 5 месяцев
Логично конечно, но это для тех так, кто на форумах присутствует только для решения каких-либо вопросов, но не для развлечения/общения, отдыха. Для делового человека важна информация и удобство ее получения, на все остальное ему нет дела. А для другой категории пользователей, посещающих форум, как «развлекательно-информационный ресурс» на первом месте комфорт, удобство, ощущение различных «штучек», которые можно «потрогать».
У нас два форума: один развлекательно-информационный, другой – техническая поддержка клиентов (мультисервисный оператор связи). Второй форум исключительно без «примочек», только самое необходимое, облегчающее работу.
У нас два форума: один развлекательно-информационный, другой – техническая поддержка клиентов (мультисервисный оператор связи). Второй форум исключительно без «примочек», только самое необходимое, облегчающее работу.
-
- phpBB 2.0.6
- Сообщения: 518
- Стаж: 20 лет 5 месяцев
Инструкция просто дрянь
Этот last_visit_1.2.8em сплошной ужас. Один из самых важных файлов sessions.php с такой тупой инструкцией.
Добавлено спустя 1 минуту 3 секунды:
Неужели какого-нибудь другого last_visit нет?

Код: Выделить всё
#
#-----[ OPEN ]------------------------------------------------
#
includes/sessions.php
#
#-----[ FIND ]------------------------------------------------
#
if (
{// (
$last_visit = (
$sql = "UPDATE " . USERS_TABLE . "
SET
#
#-----[ IN-LINE FIND ]----------------------------------------
#
if
#
#-----[ IN-LINE BEFORE, ADD ]---------------------------------
#
//
#
#-----[ IN-LINE FIND ]----------------------------------------
#
{
#
#-----[ IN-LINE BEFORE, ADD ]---------------------------------
#
//
#
#-----[ IN-LINE FIND ]----------------------------------------
#
user_lastvisit = $last_visit
#
#-----[ IN-LINE AFTER, ADD ]----------------------------------
#
, user_lastlogon = " . time() . ", user_totallogon=user_totallogon+1
#
#-----[ FIND ]------------------------------------------------
#
$sessiondata['userid'] = $user_id;
}
#
#-----[ IN-LINE FIND ]----------------------------------------
#
}
#
#-----[ IN-LINE BEFORE, ADD ]---------------------------------
#
//
#
#-----[ FIND ]------------------------------------------------
#
if ( !empty($session_id) )
{
#
#-----[ AFTER, ADD ]------------------------------------------
#
// Start add - Last visit MOD
$expiry_time = $current_time - $board_config['session_length'] ;
// End add - Last visit MOD
#
#-----[ FIND ]------------------------------------------------
#
$sql = "SELECT u.*, s.*
FROM
WHERE
AND
#
#-----[ IN-LINE FIND ]----------------------------------------
#
";
#
#-----[ IN-LINE BEFORE, ADD ]---------------------------------
#
AND session_time > $expiry_time
#
#-----[ FIND ]------------------------------------------------
#
if ( $userdata['user_id'] != ANONYMOUS )
{
$sql =
SET
#
#-----[ IN-LINE FIND ]----------------------------------------
#
if
#
#-----[ IN-LINE BEFORE, ADD ]---------------------------------
#
//
#
#-----[ IN-LINE FIND ]----------------------------------------
#
{
#
#-----[ IN-LINE BEFORE, ADD ]---------------------------------
#
//
#
#-----[ IN-LINE FIND ]----------------------------------------
#
$thispage_id
#
#-----[ IN-LINE AFTER, ADD ]----------------------------------
#
, user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].")
#
#-----[ FIND ]------------------------------------------------
#
}
//
// Delete expired sessions
#
#-----[ IN-LINE FIND ]----------------------------------------
#
}
#
#-----[ IN-LINE BEFORE, ADD ]---------------------------------
#
//
#
#-----[ FIND ]------------------------------------------------
#
WHERE session_time < $expiry_time
#
#-----[ IN-LINE FIND ]----------------------------------------
#
session_time < $expiry_time
#
#-----[ IN-LINE REPLACE WITH ]--------------------------------
#
UNIX_TIMESTAMP() - session_time >=172800
#
Добавлено спустя 1 минуту 3 секунды:
Неужели какого-нибудь другого last_visit нет?
-
- Former team member
- Сообщения: 6517
- Стаж: 20 лет 9 месяцев
- Откуда: Бердск
YarNET
а что не нравится в описании?
а что не нравится в описании?
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
-
- Former team member
- Сообщения: 816
- Стаж: 21 год
- Откуда: Estonia, Tallinn
-
- phpBB Guru
- Сообщения: 5484
- Стаж: 21 год 1 месяц
- Поблагодарили: 2 раза
Есть еще пара подобных модов.
Код: Выделить всё
## Hack Title: Add Last User Visit Date to Members List
## (A phpBB2 Quickie)
## Author: Nivisec (support@nivisec.com)
## http://www.nivisec.com
Код: Выделить всё
# Title: Add Last User Visit Date to User Profiles
# Author: Thoul thoul@users.sourceforge.net http://darkmods.sourceforge.net
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
-
- phpBB 2.0.6
- Сообщения: 518
- Стаж: 20 лет 5 месяцев
crash
Дело в том, что он у меня есть на работающем форуме, но т.к. я сейчас новый форум собрал на 90% в котором точно не должно быть этого мода, я и хотел найти ему функциональную замену.
Много разных модов устанавлявал, но во всех инструкции были приличные, качественно написанные, а это убожество.
Еще нельзя будет пользователям смотреть список всех зарегистрированных по дате регистрации, т.к. она будет доступна только администратору.
Безобразный мод, чесно слово
Добавлено спустя 44 секунды:
Неоправданно сложный и тяжелый.
Добавлено спустя 20 минут 50 секунд:
Была не была.....буду ставить last_visit_1.2.8em и пусть мне будет плохо
Добавлено спустя 1 час 20 минут 41 секунду:
Так как самым сложным моментом при установке этого мода является работа с файлом sessions.php, то публикую уже модернизированный файл целиком.
Внимание!!! Данный sessions.php можно применять только в том случаи, если до этого у вас на форуме он был без модификаций. В противном случаи модификацию проводите вручную.
----------------
Особенно первая половина мне нравитсяа что не нравится в описании?

Дело в том, что он у меня есть на работающем форуме, но т.к. я сейчас новый форум собрал на 90% в котором точно не должно быть этого мода, я и хотел найти ему функциональную замену.
Много разных модов устанавлявал, но во всех инструкции были приличные, качественно написанные, а это убожество.
Еще нельзя будет пользователям смотреть список всех зарегистрированных по дате регистрации, т.к. она будет доступна только администратору.
Безобразный мод, чесно слово


Добавлено спустя 44 секунды:
Неоправданно сложный и тяжелый.
Добавлено спустя 20 минут 50 секунд:
Была не была.....буду ставить last_visit_1.2.8em и пусть мне будет плохо

Добавлено спустя 1 час 20 минут 41 секунду:
Так как самым сложным моментом при установке этого мода является работа с файлом sessions.php, то публикую уже модернизированный файл целиком.
Внимание!!! Данный sessions.php можно применять только в том случаи, если до этого у вас на форуме он был без модификаций. В противном случаи модификацию проводите вручную.
----------------
Код: Выделить всё
sessions.php
модифицирован при помощи easymod-0-1-13
Код: Выделить всё
<?php
/***************************************************************************
* sessions.php
* -------------------
* begin : Saturday, Feb 13, 2001
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
* $Id: sessions.php,v 1.58.2.11 2004/07/11 16:46:19 acydburn Exp $
*
*
***************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
//
// Adds/updates a new session to the database for the given userid.
// Returns the new session ID on success.
//
function session_begin($user_id, $user_ip, $page_id, $auto_create = 0, $enable_autologin = 0)
{
global $db, $board_config;
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )
{
$session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
$sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
$sessionmethod = SESSION_METHOD_COOKIE;
}
else
{
$sessiondata = array();
$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
$sessionmethod = SESSION_METHOD_GET;
}
//
if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
{
$session_id = '';
}
$last_visit = 0;
$current_time = time();
$expiry_time = $current_time - $board_config['session_length'];
//
// Try and pull the last time stored in a cookie, if it exists
//
$sql = "SELECT *
FROM " . USERS_TABLE . "
WHERE user_id = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Could not obtain lastvisit data from user table', '', __LINE__, __FILE__, $sql);
}
$userdata = $db->sql_fetchrow($result);
if ( $user_id != ANONYMOUS )
{
$auto_login_key = $userdata['user_password'];
if ( $auto_create )
{
if ( isset($sessiondata['autologinid']) && $userdata['user_active'] )
{
// We have to login automagically
if( $sessiondata['autologinid'] == $auto_login_key )
{
// autologinid matches password
$login = 1;
$enable_autologin = 1;
}
else
{
// No match; don't login, set as anonymous user
$login = 0;
$enable_autologin = 0;
$user_id = $userdata['user_id'] = ANONYMOUS;
}
}
else
{
// Autologin is not set. Don't login, set as anonymous user
$login = 0;
$enable_autologin = 0;
$user_id = $userdata['user_id'] = ANONYMOUS;
}
}
else
{
$login = 1;
}
}
else
{
$login = 0;
$enable_autologin = 0;
}
//
// Initial ban check against user id, IP and email address
//
preg_match('/(..)(..)(..)(..)/', $user_ip, $user_ip_parts);
$sql = "SELECT ban_ip, ban_userid, ban_email
FROM " . BANLIST_TABLE . "
WHERE ban_ip IN ('" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . $user_ip_parts[4] . "', '" . $user_ip_parts[1] . $user_ip_parts[2] . $user_ip_parts[3] . "ff', '" . $user_ip_parts[1] . $user_ip_parts[2] . "ffff', '" . $user_ip_parts[1] . "ffffff')
OR ban_userid = $user_id";
if ( $user_id != ANONYMOUS )
{
$sql .= " OR ban_email LIKE '" . str_replace("\'", "''", $userdata['user_email']) . "'
OR ban_email LIKE '" . substr(str_replace("\'", "''", $userdata['user_email']), strpos(str_replace("\'", "''", $userdata['user_email']), "@")) . "'";
}
if ( !($result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Could not obtain ban information', '', __LINE__, __FILE__, $sql);
}
if ( $ban_info = $db->sql_fetchrow($result) )
{
if ( $ban_info['ban_ip'] || $ban_info['ban_userid'] || $ban_info['ban_email'] )
{
message_die(CRITICAL_MESSAGE, 'You_been_banned');
}
}
//
// Create or update the session
//
$sql = "UPDATE " . SESSIONS_TABLE . "
SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login
WHERE session_id = '" . $session_id . "'
AND session_ip = '$user_ip'";
if ( !$db->sql_query($sql) || !$db->sql_affectedrows() )
{
$session_id = md5(uniqid($user_ip));
$sql = "INSERT INTO " . SESSIONS_TABLE . "
(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in)
VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error creating new session', '', __LINE__, __FILE__, $sql);
}
}
//if ( $user_id != ANONYMOUS )
//{// ( $userdata['user_session_time'] > $expiry_time && $auto_create ) ? $userdata['user_lastvisit'] : (
$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time;
$sql = "UPDATE " . USERS_TABLE . "
SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit, user_lastlogon = " . time() . ", user_totallogon=user_totallogon+1
WHERE user_id = $user_id";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);
}
$userdata['user_lastvisit'] = $last_visit;
$sessiondata['autologinid'] = ( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '';
$sessiondata['userid'] = $user_id;
//}
$userdata['session_id'] = $session_id;
$userdata['session_ip'] = $user_ip;
$userdata['session_user_id'] = $user_id;
$userdata['session_logged_in'] = $login;
$userdata['session_page'] = $page_id;
$userdata['session_start'] = $current_time;
$userdata['session_time'] = $current_time;
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
$SID = 'sid=' . $session_id;
return $userdata;
}
//
// Checks for a given user session, tidies session table and updates user
// sessions at each page refresh
//
function session_pagestart($user_ip, $thispage_id)
{
global $db, $lang, $board_config;
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
$current_time = time();
unset($userdata);
if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )
{
$sessiondata = isset( $HTTP_COOKIE_VARS[$cookiename . '_data'] ) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
$sessionmethod = SESSION_METHOD_COOKIE;
}
else
{
$sessiondata = array();
$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
$sessionmethod = SESSION_METHOD_GET;
}
//
if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
{
$session_id = '';
}
//
// Does a session exist?
//
if ( !empty($session_id) )
{
// Start add - Last visit MOD
$expiry_time = $current_time - $board_config['session_length'] ;
// End add - Last visit MOD
//
// session_id exists so go ahead and attempt to grab all
// data in preparation
//
$sql = "SELECT u.*, s.*
FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_id = '$session_id'
AND u.user_id = s.session_user_id AND session_time > $expiry_time";
if ( !($result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
}
$userdata = $db->sql_fetchrow($result);
//
// Did the session exist in the DB?
//
if ( isset($userdata['user_id']) )
{
//
// Do not check IP assuming equivalence, if IPv4 we'll check only first 24
// bits ... I've been told (by vHiker) this should alleviate problems with
// load balanced et al proxies while retaining some reliance on IP security.
//
$ip_check_s = substr($userdata['session_ip'], 0, 6);
$ip_check_u = substr($user_ip, 0, 6);
if ($ip_check_s == $ip_check_u)
{
$SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';
//
// Only update session DB a minute or so after last update
//
if ( $current_time - $userdata['session_time'] > 60 )
{
$sql = "UPDATE " . SESSIONS_TABLE . "
SET session_time = $current_time, session_page = $thispage_id
WHERE session_id = '" . $userdata['session_id'] . "'";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
}
//if ( $userdata['user_id'] != ANONYMOUS )
//{
$sql = "UPDATE " . USERS_TABLE . "
SET user_session_time = $current_time, user_session_page = $thispage_id, user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].")
WHERE user_id = " . $userdata['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
}
//}
//
// Delete expired sessions
//
$expiry_time = $current_time - $board_config['session_length'];
$sql = "DELETE FROM " . SESSIONS_TABLE . "
WHERE UNIX_TIMESTAMP() - session_time >=172800
AND session_id <> '$session_id'";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);
}
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);
}
return $userdata;
}
}
}
//
// If we reach here then no (valid) session exists. So we'll create a new one,
// using the cookie user_id if available to pull basic user prefs.
//
$user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;
if ( !($userdata = session_begin($user_id, $user_ip, $thispage_id, TRUE)) )
{
message_die(CRITICAL_ERROR, 'Error creating user session', '', __LINE__, __FILE__, $sql);
}
return $userdata;
}
//
// session_end closes out a session
// deleting the corresponding entry
// in the sessions table
//
function session_end($session_id, $user_id)
{
global $db, $lang, $board_config;
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
$current_time = time();
//
// Pull cookiedata or grab the URI propagated sid
//
if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) )
{
$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
$sessionmethod = SESSION_METHOD_COOKIE;
}
else
{
$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
$sessionmethod = SESSION_METHOD_GET;
}
if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
{
return;
}
//
// Delete existing session
//
$sql = "DELETE FROM " . SESSIONS_TABLE . "
WHERE session_id = '$session_id'
AND session_user_id = $user_id";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);
}
setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
return true;
}
//
// Append $SID to a url. Borrowed from phplib and modified. This is an
// extra routine utilised by the session code above and acts as a wrapper
// around every single URL and form action. If you replace the session
// code you must include this routine, even if it's empty.
//
function append_sid($url, $non_html_amp = false)
{
global $SID;
if ( !empty($SID) && !preg_match('#sid=#', $url) )
{
$url .= ( ( strpos($url, '?') != false ) ? ( ( $non_html_amp ) ? '&' : '&' ) : '?' ) . $SID;
}
return $url;
}
?>
-
- phpBB 1.4.3
- Сообщения: 78
- Стаж: 20 лет 10 месяцев
- Откуда: Москва
- Благодарил (а): 1 раз
Код: Выделить всё
Couldn't retrieve user today data
DEBUG MODE
SQL Error : 1054 Unknown column 'user_lastlogon' in 'field list'
SELECT user_id,username,user_allow_viewonline,user_level,user_lastlogon FROM phpbb_users WHERE user_id!="-1" AND user_session_time >= 1105390800 AND user_session_time< 1105477199 ORDER BY username
Line : 303
File : /www/vhosts/hobbyclub.ru/html/index.php
С уважением, Дмитрий.
-
- phpBB 2.0.6
- Сообщения: 518
- Стаж: 20 лет 5 месяцев
Dmitrij
Путь к ошибке указан:
Базу данных скриптом обновили?
Путь к ошибке указан:
Код: Выделить всё
Line : 303
File : /www/vhosts/hobbyclub.ru/html/index.php
-
- phpBB 2.0.6
- Сообщения: 518
- Стаж: 20 лет 5 месяцев
Фиг знает, недавно разрешил большое количество подключений и сессий – как результат, получил за один день (не за сутки) более 2000 тыс записей в таблице сессий. Все сессии практически от незарегистрированных пользователей/поисковиков.
Дело в том, что такое накопление идет благодаря моду last_visit_1.2.8em. Я не знаю, быть может я не верно модифицировал файл sessions.php… Кто-нибудь использует этот мод? Если да, то как с таблицей сессий дела обстоят? Идет такое колоссальное накопление записей в таблице или нет?
Дело в том, что такое накопление идет благодаря моду last_visit_1.2.8em. Я не знаю, быть может я не верно модифицировал файл sessions.php… Кто-нибудь использует этот мод? Если да, то как с таблицей сессий дела обстоят? Идет такое колоссальное накопление записей в таблице или нет?