коды трёх файлов прикреплены, вот четвёртый файл chat_functions.php:
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './../';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
require_once($phpbb_root_path . 'ajax/lib/JsHttpRequest/JsHttpRequest.php');
$JsHttpRequest =& new JsHttpRequest("windows-1251");
$userdata = session_pagestart($user_ip, PAGE_CHAT);
init_userprefs($userdata);
if(!empty($_POST['msg']))
{
$msg = htmlspecialchars($_POST['msg']);
if(strstr($msg, '['))
{
$allowed = array('i', 'b', 'u', 's');
For($i = 0; $i < 4; $i++)
{
$test = '#[' . $allowed[$i] . '](.*?)[/' . $allowed[$i] . ']#';
if(preg_match($test, $msg))
{
$msg = str_replace('[' . $allowed[$i] . ']', '<' . $allowed[$i] . '>', $msg);
$msg = str_replace('[/' . $allowed[$i] . ']', '</' . $allowed[$i] . '>', $msg);
}
}
}
$msg = addslashes(urlencode($msg));
$sql = 'INSERT INTO `' . CHAT_MESSAGES_TABLE . '` ( `user_posted`, `message`, `time_posted` ) VALUES (' . $userdata['user_id'].', "'.$msg.'", '. time(). ')';
if(!$result=$db->sql_query($sql))
{
print mysql_error();
}
}
if($_POST['get'])
{
if( ($userdata['entered_chat'] < time() - 3600) && !$_COOKIE['chat'] )
{
$welcome = 'Welcome to chat, ' . $userdata['username'];
$time = time() - 60;
$sql = 'UPDATE `' . SESSIONS_TABLE . '` SET `entered_chat` = ' . $time . ' WHERE `session_user_id` = ' . $userdata['user_id']; // and update sessions table
if(!$result=$db->sql_query($sql))
{
print mysql_error();
}
$userdata['entered_chat'] = $time;
}
else
{
$welcome = $lang['Posts'];
}
setcookie('chat', TRUE, time() + 30);
$sql = 'SELECT `m`.*, `u`.`username`, `c`.`color` FROM `' . CHAT_MESSAGES_TABLE . '` m, `' . USERS_TABLE .'` u, `' . COLORS_TABLE . '` c
WHERE `m`.`user_posted` = `u`.`user_id` AND `c`.`id` = `u`.`text_color` AND ';
if($_POST['last_msg'])
{
$sql .= ' `m`.`id` > ' . $_POST['last_msg'];
}
else
{
$clean = $_COOKIE['clean'] ? $_COOKIE['clean'] : $userdata['entered_chat'];
$sql .= ' `m`.`time_posted` > ' . $clean;
}
$sql .= ' ORDER BY `m`.`id` ASC';
if(!$result=$db->sql_query($sql))
{
print mysql_error();
}
else
{
While($row = $db->sql_fetchrow($result))
$res[] = $row;
$size = count($res);
$limit = 20;
$start = ($size > $limit) ? ($size - $limit) : 0;
For($i = $start; $i < $size; $i++)
{
if($prev_user === $res[$i]['username']) // the same user
{
$msg='<span class="genmed">'.smilies_pass(str_replace('&#', '&#', urldecode(stripslashes($res[$i]['message'])))).'</span>';
$prev_user = 0;
}
else
{
$msg='<span class="genmed" style="color: ' . $res[$i]['color'] .'">'.
smilies_pass(str_replace('&#', '&#', urldecode(stripslashes($res[$i]['message'])))) . '</span>';
$prev_user = $res[$i]['username'];
}
$front .= '<a href=\'javascript:paste("' . $res[$i]['username'] . '");\' title="' . date('i:s', $res[$i]['time_posted']) . '"><b>' . $res[$i]['username'] .
'</b></a> -> <big>' . $msg . '</big></span> <br />';
}
$last_msg = ($res[$size-1]['id'] > $_POST['last_msg']) ? $res[$size-1]['id'] : $_POST['last_msg'];
$new_msg = ($res[$size-1]['user_id'] !== $userdata['user_id']) ? TRUE : FALSE;
}
/* , `u`.`user_chat_ban`, `u`.`user_level` */
$sql = 'SELECT DISTINCT
`u`.`username`,
`u`.`user_level`,
`s`.`entered_chat`,
`u`.`user_id`
FROM
`nepopsisty_users` u,
`nepopsisty_sessions` s
WHERE
`s`.`session_page` = ' . PAGE_CHAT . '
AND
`u`.`user_id` = `s`.`session_user_id`
AND
`s`.`session_time` > ' . (time() - 300 ) . '
AND
`u`.`user_id` > 0 ';
if( !$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, 'Could not query users in chat list', '', __LINE__, __FILE__, $sql);
}
else
{
while ($row = $db->sql_fetchrow($result))
{
$time = ( time() - $row['entered_chat'] );
$time = round($time / 60);
if($userdata['user_id'] === $row['user_id'])
$user_time = sprintf($lang['Chat_you_joined'], $time);
if($row['user_level'] == ADMIN)
$row['username'] = '<b>' . $row['username'] . '</b>';
elseif($row['user_level'] == MOD)
$row['username'] = '<i>' . $row['username'] . '</i>';
$content .= '<a href="profile.php?mode=viewprofile&u=' . $row['user_id'] . '"' . (($userdata['user_id'] !== $row['user_id']) ? (' title="In chat ' . $time . ' minutes"') : '') . '>' . $row['username'] . '</a>';
/*If( ($userdata['user_level'] > USER ) && ($row['user_level'] = USER) )
{
$content .= ' <a class="genmed" href=chatban.php?ban=' . $ban . '&u=' . $row['user_id'] . '>' . $l_ban . '</a>';
If($row['user_chat_ban'])
{
$ban = 0;
$l_ban = $lang['chat_user_unban'];
}
Else
{
$ban = 1;
$l_ban = $lang['chat_user_ban'];
}
} */
$content .= '<br /><br />' . "\n\r";
}
$_RESULT = array(
'msgs' => $front,
'users' => $content,
'welcome' => $welcome,
'user_time' => $user_time,
'last_msg' => $last_msg,
'new_msg' => $new_msg);
}
}
if($_POST['clean'])
{
setcookie('clean' , time()-20, time() + 3600);
}
if($_POST['msg'])
{
print 'Message ' . $_POST['msg'] . ' was succesfully sent';
}
?>
У вас нет необходимых прав для просмотра вложений в этом сообщении.