Файл: chat/functions/fns.php
Строк: 154
<?php
/*
* PHP+jQuery+MySQL Chat, version 0.2
* fns.php
* http://i-wanna-think.ru/
*
* Copyright 2013, Ivan Tkachenko
* Date: 2013-04-29
*/
session_start();
// соединяемся с БД
//Хостинг на Хофлекс
$db_host = "localhost";
$db_user = "lnwru_inoy";
$db_table = "lnwru_lin";
$db_pass = "KS,SpTp=-88t";
$connect = @ mysql_pconnect($db_host, $db_user, $db_pass) or die('cannot connect to server');
@ mysql_select_db($db_table) or die('cannot connect to db');
@ mysql_query("SET NAMES 'utf8'", $connect);
///////////////////////
$path='../'; //
//////////////////////
include($path.'files/auth.php');
// текущее время
$now_time = date("Y-m-d H:i:s");
$udata552 = mysql_fetch_array(mysql_query("SELECT `udata` FROM `users` WHERE `usr` = '$log' LIMIT 1"));
function safe_var ($var) // защита переменных
{
$var = trim($var);
$var = mysql_real_escape_string($var);
$var = htmlspecialchars($var);
return $var;
}
function smiles($string){
$dir = opendir ("/pic/smiles");
while ($file = readdir ($dir)) {
if (ereg (".gif$", "$file")){
$file2=str_replace(".gif","",$file);
$string=str_replace(":$file2",' <img src="/pic/smiles/'.$file.'" alt="" height="35" width="35"> ',$string);
}}
closedir ($dir);
return $string; }
// запись сообщений
function news_msg (){ // защита переменных
//$msg=$_POST['zin'];
$msg = safe_var($_POST['message_text']);
// пишем защиту от повтора сообщений
$pov = mysql_fetch_array(mysql_query("SELECT * FROM komentarai WHERE nick = '$log' ORDER BY id DESC LIMIT 1"));
if ($pov[komentaras]!==$msg){
//////// Добавляем плюс в чат ///////////////////
$ch_o = explode(",", $msg);
$avt_usr = mysql_num_rows(mysql_query("SELECT usr FROM users WHERE usr = '$ch_o[0]'"));
$avt_cha = mysql_num_rows(mysql_query("SELECT usr FROM chat_otv WHERE usr = '$ch_o[0]'"));
if ($avt_usr > 0 and $avt_cha == 0){
mysql_query("INSERT INTO chat_otv SET usr = '$ch_o[0]', time = '$time'");
}
$msg=substr($msg, 0, 512);
$msg=stripslashes(htmlspecialchars($msg));
$msg=str_replace("rn","<br />",$msg);
$msg=str_replace("r","<br />",$msg);
$msg=str_replace("n","<br />",$msg);
$msg = addslashes($msg);
$msg=preg_replace ("|[rn]+|si","",$msg);
$a = mysql_num_rows(mysql_query("SELECT komentaras FROM komentarai WHERE komentaras = '$msg'"));
$b = mysql_fetch_array(mysql_query("SELECT kada FROM komentarai WHERE nick = '$log' ORDER BY kada DESC LIMIT 1"));
$data_kom = strip_tags($b['kada']);
$data = date("y/m/d H:i:s", strtotime("+20 seconds"));
$data_dbr = date("y/m/d H:i:s");
$time = date("H:i");
if($data_dbr >= $data_kom && $msg != "")
{
mysql_query("INSERT INTO komentarai SET nick = '$log', komentaras = '$msg', kada = '$data', time = '$time'");
$rand = rand(1000,9999);
}
}
}
//-------------------------------------------------------------------------------------------------------------
// вывод сообщений
function get_chat_log($from_last_act = false)
{
$name = $log;
if ($from_last_act != false)
{
$sel_result = mysql_query("SELECT * FROM komentarai WHERE id > '$from_last_act' ORDER BY kada ASC, id ASC");
}
else
{
$sel_result = mysql_query("SELECT * FROM komentarai ORDER BY kada ASC, id ASC");
}
if (mysql_num_rows($sel_result)>0)
{
$sel_row = mysql_fetch_array($sel_result);
do
{
//вывод текста
$nickas = strip_tags($sel_row['nick']);
$koment = $sel_row['komentaras'];
$time = strip_tags($sel_row['time']);
$koment = smiles($koment);
$reqs = mysql_query("SELECT * FROM `users` WHERE `usr` = '$nickas'");
$ud = mysql_fetch_array($reqs);
//картинка клана /////////////////////////////
$pic = "";
if(!empty($ud[clan])){
$req6546566 = mysql_query("SELECT `emblema` FROM `clan` WHERE `lider` = '$ud[clan]' LIMIT 1");
$wh = mysql_fetch_array($req6546566);
if(!empty($wh[emblema])){
$pic = "<img src="/pic/clan/$wh[emblema]" alt="cl"/>";}}
////////////////////////////////////////////////
if($udata552[prava]>=2){
$silka = "<a href="?del=$dsa[id]"><font color=red>x</font></a>";
}
//админ
if ($ud[prava]>=4)
{
$chatlog_data['log'] .= "
<hr/><b><p class='chat_post_my'><span class='chat_mess_time'>[$time]</span><span class='chat_nickname'> $pic <a href="/search.php?nick=$nickas&go=go"><font color=lime>$nickas</font></a> <a href="javascript:tag('$nickas, ')">[отв]</a> $silka </span></p><div class='mess_text_area'>
<br/></b> <font color=#5e995c> $koment </font> </div>";
}else{
// модер
if ($ud[prava]==2 or $ud[prava]==3)
{
$chatlog_data['log'] .= "
<hr/><b><p class='chat_post_my'><span class='chat_mess_time'>[$time]</span><span class='chat_nickname'> $pic <a href="/search.php?nick=$nickas&go=go"><font color=#0026FF>$nickas</font></a> <a href="javascript:tag('$nickas, ')">[отв]</a> $silka </span></p><div class='mess_text_area'>
<br/></b> <font color=#007ED8> $koment </font> </div>";
}else{
// если есть цветной ник, то грузим цвет
$req222 = mysql_query("SELECT * FROM `color_akk` WHERE `usr` = '$nickas' LIMIT 1"); // защита от нескольких акк
$avto=mysql_num_rows($req222);
if($avto==1){
$colors = mysql_fetch_array($req222);
$chatlog_data['log'] .= "
<hr/><b><p class='chat_post_my'><span class='chat_mess_time'>[$time]</span><span class='chat_nickname'> $pic <a href="/search.php?nick=$nickas&go=go"><font color=#$colors[color]> $nickas</font></a> <a href="javascript:tag('$nickas, ')">[отв]</a> $silka </span></p><div class='mess_text_area'>
<br/></b> <font color=#ECECEC> $koment </font> </div>";
}else{
// консул и юзер
$chatlog_data['log'] .= "
<hr/><b><p class='chat_post_my'><span class='chat_mess_time'>[$time]</span><span class='chat_nickname'> $pic <a href="/search.php?nick=$nickas&go=go"><font color=#f4d06e> $nickas</font></a> <a href="javascript:tag('$nickas, ')">[отв]</a> $silka </span></p><div class='mess_text_area'>
<br/></b> <font color=#ECECEC> $koment </font> </div>";
}}}
$chatlog_data['last_act'] = $sel_row['id'];
}
while($sel_row = mysql_fetch_array($sel_result));
}
else
{
$chatlog_data['log'] = "";
$chatlog_data['last_act'] = 0;
}
return $chatlog_data;
}
function url_parsing($u)
{
$u = preg_replace('(((https?|ftp)://)([a-zА-Яа-я0-9-.]+)?(([a-zА-Яа-я0-9-])+(!?.[рфa-z]{2,6})+|localhost)(/{1}(S)*)?)u', "<a href='$0' target='_blank' class='parsed_url'>$0</a>", $u);
return nl2br($u);
}
?>