Список пользователей, посетивших трекер за 24 часа

PheRum

Легенда
PHP:
    function users_today()
    {
        $day = TIMENOW - (date('H', TIMENOW) * 60 * 60) - (date('i', TIMENOW) * 60) - date('s', TIMENOW);
       
        $get_users = DB()->fetch_rowset("SELECT username, user_id, user_rank FROM ". BB_USERS ." WHERE user_session_time > $day AND  user_active = 1 ORDER BY username ");
 
        $visitors = '';
        $user_count = 0;
       
        foreach ($get_users as $row)
        {
            $user_count++;
            $visitors .= profile_url($row) .', ';
        }
       
        $this->response['html'] = '
            <table class="gen">
                <tr>
                    <td>Сегодня зашло '. $user_count .' пользователей</td>
                </tr>
                <tr>
                    <td>'. $visitors .'</td>
                </tr>
            </table>
        ';
    }
 

ChazychaZ

Пользователь
Для тех у кого PHP 5.4 и выше в этом куске кода
Код:
if (!empty($userdata['username']))
{
$userrr = mysql_escape_string($userdata['username']);
  DB()->sql_query("UPDATE bb_users SET last_visit = ".time()." WHERE username = '".$userrr."'");
}

mysql_escape_string меняем на mysql_real_escape_string
 

Wertos

Пользователь
Не ставьте этот мод !!! Неужели непонятно !!!!!!!!!!!!!!!!!!
модеры похерьте этот топик...

Смотрите в эту сторону(код для СВН)
PHP:
<?php

if (!defined('BB_ROOT')) die(basename(__FILE__));

function get_visit_list ()
{
global $db, $bb_cache, $lang, $bb_cfg, $phpEx, $userdata;
$sql = "SELECT *
FROM " . USERS_TABLE . "
WHERE user_id > 0
AND user_id NOT IN(" . EXCLUDED_USERS_CSV . ")
ORDER BY IF(user_level = 1,23,user_level) DESC, username ASC";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain user/day information', '', __LINE__, __FILE__, $sql);
}

$day_userlist = '';
$day_users = 0;
$not_day_userlist = '';
$not_day_users = 0;

while( $row = $db->sql_fetchrow($result) )
{
$style_color = '';
if ( $row['user_level'] == ADMIN )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'class="colorAdmin small"';
}
else if ( $row['user_level'] == MOD )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'class="colorMod small"';
}
else if ( $row['user_level'] == USER )
{
$row['username'] = $row['username'];
$style_color = 'class="colorNick small"';
}
else if ( $row['user_level'] == GROUP_MEMBER )
{
$row['username'] = $row['username'];
$style_color = 'class="colorGroup small"';
}

if ( $row['user_allow_viewonline'] )
{
$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
}
else
{
$user_day_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
}
if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
{
if ( $row['user_session_time'] >= ( time() - $bb_cfg['users_list_delay'] * 3600 ) )
// if ( $row['user_session_time'] >= ( time() - strtotime('now 00:00:00') ) )
{
$day_userlist .= ( $day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
$day_users++;
}
else
{
$not_day_userlist .= ( $not_day_userlist != '' ) ? ', ' . $user_day_link : $user_day_link;
$not_day_users++;
}
}
}

$day_userlist = sprintf($lang['Day_users'], $day_users, $bb_cfg['users_list_delay']) ) . ' <div class="w100" style="max-height: 100px; overflow: auto; border: 1px solid #B7C0C5; padding: 0 2px 0 2px;">' . $day_userlist . '</div>';
$not_day_userlist = sprintf($lang['Not_day_users'], $not_day_users, $bb_cfg['users_list_delay']) ) . ' <div class="w100" style="max-height: 100px; overflow: auto; border: 1px solid #B7C0C5; padding: 0 2px 0 2px;">' . $not_day_userlist . '</div>';
if ( $bb_cfg['display_not_day_userlist'] )
{ 
$day_userlist .= '<br />' . $not_day_userlist;
}
$bb_cache->set('day_userlist', $day_userlist, 7200);
return $day_userlist;
}
 

drew

Пользователь
Для тех у кого PHP 5.4 и выше в этом куске кода
Код:
if (!empty($userdata['username']))
{
$userrr = mysql_escape_string($userdata['username']);
  DB()->sql_query("UPDATE bb_users SET last_visit = ".time()." WHERE username = '".$userrr."'");
}

mysql_escape_string меняем на mysql_real_escape_string

Можно вопрос, нахрена создавать ещё одну строку в таблице юзера, если есть уже user_session_time
 

Lynx

Пользователь
mysql_escape_string меняем на mysql_real_escape_string

Замена mysql_escape_string на mysql_real_escape_string ничего не даёт. Ошибка всё равно лезет.
Warning: mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/lynx/data/www/***/includes/page_header.php on line 294
Warning: mysql_real_escape_string(): A link to the server could not be established in /var/www/lynx/data/www/***/includes/page_header.php on line 294
PHP:
$userrr = mysql_real_escape_string($userdata['username']);

PHP Version 5.4.4-14+deb7u3
 

drew

Пользователь
Lynx, вопрос, нафига ?
PHP:
$userrr = $userdata['username'];
и если вставляешь это
PHP:
if (!empty($userdata['username']))
{
  $userrr = mysql_escape_string($userdata['username']);
  DB()->sql_query("UPDATE bb_users SET last_visit = ".time()." WHERE username = '".$userrr."'");
}
то лучше выкинь это дело и полистай на страницах нормальную версию.
 

Inkognito

Пользователь
помогите пожалуйста тестирую на локалке выходит вот это
Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in W:\domains\rutor.uz\includes\page_header.php on line 274
 
Сверху