Файл: shaxty/func.php
Строк: 777
<?php
/* Определение мобильного браузера */
function is_mobile()
{
$user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
$accept = isset($_SERVER['HTTP_ACCEPT']) ? strtolower($_SERVER['HTTP_ACCEPT']) : '';
if ((strpos($accept, 'text/vnd.wap.wml') !== FALSE) || (strpos($accept, 'application/vnd.wap.xhtml+xml') !== FALSE)) {
return 1;
}
if (isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE'])) {
$_SESSION['is_mobile'] = 1;
return 1;
}
if (preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|symbian|treo|up.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i', $user_agent)
|| preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|e-|e/|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(-|2|g)|yas-|your|zeto|zte-/i', substr($user_agent, 0, 4))
) {
return 1;
}
return 0;
}
// </div><br />
function sp_head($name, $name2, $d1, $d2){
$spoil = rand(0000,9999);
if(is_mobile()==0){
return ''.$d1.$name.' <span id="sp'.$spoil.'" style="line-height: 18px">(<a href="#" onClick="spoiler('.$spoil.'); return false">Отобразить</a>)</span>'.$d2.'<div id="spoiler'.$spoil.'" style="display: none"> ';
}else{
return $d1.$name2.$d2;
}
}
function sp_foot($var){
if(is_mobile()==0){
return '</div>';
}
}
function file_size($size){
$filesizename = array(" Байт", " Кб", " Мб", " Гб");
return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i] : '0 Байт';
}
// Функция вывода на экран ошибки
function errors($err){
echo '<p>'.$err.'</p>';
echo '<div class="menu_j"> <a href="/index.php" class="top_menu_j"><img src="/img/home.png" alt=""/> На главную</div></a>';
echo '</div></div></body></html>';
ob_end_flush();
exit;
}
function onLines(){
global $realtime, $set;
$time_out = $realtime - $set['time_aut'];
$onl = mysql_result(mysql_query("SELECT COUNT(id) FROM users WHERE onl>'{$time_out}' AND inv!='1'"),0);
if(!file_exists($_SERVER['DOCUMENT_ROOT'].'/cache/online.dat')){
$array_online = serialize(array('online'=>$onl,'time'=>$realtime));
$create_file = fopen($_SERVER['DOCUMENT_ROOT'].'/cache/online.dat', "w+");
fputs($create_file, '');
fclose($create_file);
chmod($_SERVER['DOCUMENT_ROOT'].'/cache/online.dat', 0666);
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/cache/online.dat', $array_online);
}
$online = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/cache/online.dat'));
if($onl > $online['online']){
$upd_online = serialize(array('online'=>$onl,'time'=>$realtime));
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/cache/online.dat', $upd_online);
}
$print = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/cache/online.dat'));
$onLine .= 'Максимальный Online: <b>'.$print['online'].'</b> ['.times($print['time']).']<br/>';
$onLine .= 'Cейчас Online: <b>'.$onl.'</b><br/>';
return $onLine;
}
function del($text)
{
$text=str_replace('&','', $text);
$text=str_replace('ndash;','', $text);
$text=str_replace(' ','_', $text);
$text=str_replace('"','', $text);
$text=str_replace("'",'', $text);
$text=str_replace('&','', $text);
$text=str_replace('$','', $text);
$text=str_replace('>','', $text);
$text=str_replace('<','', $text);
$text=str_replace('~','', $text);
$text=str_replace('`','', $text);
$text=str_replace('#','', $text);
$text=str_replace('*','', $text);
$text=str_replace(''','', $text);
$text=str_replace('/','_', $text);
return $text;
}
// Функция "Вы уверены?"
function danger($link=NULL,$kom=NULL)
{
global $db, $user,$user_id, $ver, $name, $set, $sid, $realtime, $gzib_pro, $div1, $div00, $div9;
$danger = isset ($_REQUEST['danger']) ? trim($_REQUEST['danger']) : '';
if (empty($danger)){
echo '<form action="'.$link.'&danger=danger" method="post" enctype="multipart/form-data">';
if($kom==NULL)echo '<br /><b>ВНИМАНИЕ!</b> Данное действие приведет к безвозвратной потере данных<br />';
else echo '<br />'.$kom.'<br />';
echo '<br /><input type="submit" class="ibutton" value="Продолжить"/> | <a href="'.htmlspecialchars(getenv("HTTP_REFERER")).'">Отмена</a></form><br /><br />';
echo '<br />'; // <a href="'.$link.'&danger=danger">'.$link.'</a>
include_once (H.'shaxty/foot.php');
}
}
function slova($str,$msg1,$msg2,$msg3) {
$str = (int)$str;
$str1 = abs($str) % 100;
$str2 = $str % 10;
if ($str1 > 10 && $str1 < 20) return $str .' '. $msg3;
if ($str2 > 1 && $str2 < 5) return $str .' '. $msg2;
if ($str2 == 1) return $str .' '. $msg1;
return $str .' '. $msg3;
}
// ------------------ Функция перекодировки из UTF в WIN --------------------//
function utf_to_win($str) {
if (function_exists('mb_convert_encoding')) return mb_convert_encoding($str, 'windows-1251', 'utf-8');
if (function_exists('iconv')) return iconv('utf-8', 'windows-1251', $str);
$utf8win1251 = array("А" => "xC0", "Б" => "xC1", "В" => "xC2", "Г" => "xC3", "Д" => "xC4", "Е" => "xC5", "Ё" => "xA8", "Ж" => "xC6", "З" => "xC7", "И" => "xC8", "Й" => "xC9", "К" => "xCA", "Л" => "xCB", "М" => "xCC",
"Н" => "xCD", "О" => "xCE", "П" => "xCF", "Р" => "xD0", "С" => "xD1", "Т" => "xD2", "У" => "xD3", "Ф" => "xD4", "Х" => "xD5", "Ц" => "xD6", "Ч" => "xD7", "Ш" => "xD8", "Щ" => "xD9", "Ъ" => "xDA",
"Ы" => "xDB", "Ь" => "xDC", "Э" => "xDD", "Ю" => "xDE", "Я" => "xDF", "а" => "xE0", "б" => "xE1", "в" => "xE2", "г" => "xE3", "д" => "xE4", "е" => "xE5", "ё" => "xB8", "ж" => "xE6", "з" => "xE7",
"и" => "xE8", "й" => "xE9", "к" => "xEA", "л" => "xEB", "м" => "xEC", "н" => "xED", "о" => "xEE", "п" => "xEF", "р" => "xF0", "с" => "xF1", "т" => "xF2", "у" => "xF3", "ф" => "xF4", "х" => "xF5",
"ц" => "xF6", "ч" => "xF7", "ш" => "xF8", "щ" => "xF9", "ъ" => "xFA", "ы" => "xFB", "ь" => "xFC", "э" => "xFD", "ю" => "xFE", "я" => "xFF");
return strtr($str, $utf8win1251);
}
// ------------------ Функция перекодировки из WIN в UTF --------------------//
function win_to_utf($str) {
if (function_exists('mb_convert_encoding')) return mb_convert_encoding($str, 'utf-8', 'windows-1251');
if (function_exists('iconv')) return iconv('windows-1251', 'utf-8', $str);
$win1251utf8 = array("xC0" => "А", "xC1" => "Б", "xC2" => "В", "xC3" => "Г", "xC4" => "Д", "xC5" => "Е", "xA8" => "Ё", "xC6" => "Ж", "xC7" => "З", "xC8" => "И", "xC9" => "Й", "xCA" => "К", "xCB" => "Л", "xCC" => "М",
"xCD" => "Н", "xCE" => "О", "xCF" => "П", "xD0" => "Р", "xD1" => "С", "xD2" => "Т", "xD3" => "У", "xD4" => "Ф", "xD5" => "Х", "xD6" => "Ц", "xD7" => "Ч", "xD8" => "Ш", "xD9" => "Щ", "xDA" => "Ъ",
"xDB" => "Ы", "xDC" => "Ь", "xDD" => "Э", "xDE" => "Ю", "xDF" => "Я", "xE0" => "а", "xE1" => "б", "xE2" => "в", "xE3" => "г", "xE4" => "д", "xE5" => "е", "xB8" => "ё", "xE6" => "ж", "xE7" => "з",
"xE8" => "и", "xE9" => "й", "xEA" => "к", "xEB" => "л", "xEC" => "м", "xED" => "н", "xEE" => "о", "xEF" => "п", "xF0" => "р", "xF1" => "с", "xF2" => "т", "xF3" => "у", "xF4" => "ф", "xF5" => "х",
"xF6" => "ц", "xF7" => "ч", "xF8" => "ш", "xF9" => "щ", "xFA" => "ъ", "xFB" => "ы", "xFC" => "ь", "xFD" => "э", "xFE" => "ю", "xFF" => "я");
return strtr($str, $win1251utf8);
}
// ------------------ Функция преобразования в нижний регистр для UTF ------------------//
function rus_utf_tolower($str) {
if (function_exists('mb_strtolower')) return mb_strtolower($str, 'utf-8');
$arraytolower = array('А' => 'а', 'Б' => 'б', 'В' => 'в', 'Г' => 'г', 'Д' => 'д', 'Е' => 'е', 'Ё' => 'ё', 'Ж' => 'ж', 'З' => 'з', 'И' => 'и', 'Й' => 'й', 'К' => 'к', 'Л' => 'л', 'М' => 'м', 'Н' => 'н', 'О' => 'о', 'П' => 'п', 'Р' => 'р', 'С' => 'с', 'Т' => 'т', 'У' => 'у', 'Ф' => 'ф', 'Х' => 'х', 'Ц' => 'ц', 'Ч' => 'ч', 'Ш' => 'ш', 'Щ' => 'щ', 'Ь' => 'ь', 'Ъ' => 'ъ', 'Ы' => 'ы', 'Э' => 'э', 'Ю' => 'ю', 'Я' => 'я',
'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'I' => 'i', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z');
return strtr($str, $arraytolower);
}
function kikt($t) {
global $db, $time;
$t2 = $t-$time;
if($t2>(60*60*24*30)) $t3 = round($t2/(60*60*24*30)).' месяцев';
else if($t2>(60*60*24)) $t3 = round($t2/(60*60*24)).' дней';
else if($t2>(60*60)) $t3 = round($t2/(60*60)).' часов';
else if($t2>60) $t3 = round($t2/60).' минут';
else $t3 = $t2.' секунд';
return $t3;
}
// ------------------ Функция определения браузера --------------------//
function GetUserAgent() {
$agent = check($_SERVER['HTTP_USER_AGENT']);
if (stripos($agent, 'Avant Browser') !== false) {
return 'Avant Browser';
} elseif (stripos($agent, 'Acoo Browser') !== false) {
return 'Acoo Browser';
} elseif (stripos($agent, 'MyIE2') !== false) {
return 'MyIE2';
} elseif (preg_match('|Iron/([0-9a-z.]*)|i', $agent, $pocket)) {
return 'SRWare Iron ' . subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('|Chrome/([0-9a-z.]*)|i', $agent, $pocket)) {
return 'Chrome ' . subtok($pocket[1], '.', 0, 3);
} elseif (preg_match('#(Maxthon|NetCaptor)( [0-9a-z.]*)?#i', $agent, $pocket)) {
return $pocket[1] . $pocket[2];
} elseif (stripos($agent, 'Safari') !== false && preg_match('|Version/([0-9]{1,2}.[0-9]{1,2})|i', $agent, $pocket)) {
return 'Safari ' . subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('#(NetFront|K-Meleon|Netscape|Galeon|Epiphany|Konqueror|Safari|Opera Mini)/([0-9a-z.]*)#i', $agent, $pocket)) {
return $pocket[1] . ' ' . subtok($pocket[2], '.', 0, 2);
} elseif (stripos($agent, 'Opera') !== false && preg_match('|Version/([0-9]{1,2}.[0-9]{1,2})|i', $agent, $pocket)) {
return 'Opera ' . $pocket[1];
} elseif (preg_match('|Opera[/ ]([0-9a-z.]*)|i', $agent, $pocket)) {
return 'Opera ' . subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('|Orca/([ 0-9a-z.]*)|i', $agent, $pocket)) {
return 'Orca ' . subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('#(SeaMonkey|Firefox|GranParadiso|Minefield|Shiretoko)/([0-9a-z.]*)#i', $agent, $pocket)) {
return $pocket[1] . ' ' . subtok($pocket[2], '.', 0, 3);
} elseif (preg_match('|rv:([0-9a-z.]*)|i', $agent, $pocket) && strpos($agent, 'Mozilla/') !== false) {
return 'Mozilla ' . subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('|Lynx/([0-9a-z.]*)|i', $agent, $pocket)) {
return 'Lynx ' . subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('|MSIE ([0-9a-z.]*)|i', $agent, $pocket)) {
return 'IE ' . subtok($pocket[1], '.', 0, 2);
} else {
$agent = preg_replace('|http://|i', '', $agent);
$agent = strtok($agent, '( ');
$agent = substr($agent, 0, 22);
$agent = subtok($agent, '.', 0, 2);
if (!empty($agent)) {
return $agent;
}
return 'Unknown';
}
}
// ----------------------- Функция обрезки строки с условием -------------------------//
function subtok($string, $chr, $pos, $len = null) {
return implode($chr, array_slice(explode($chr, $string), $pos, $len));
}
// должности юзера
function level($level) {
switch ($level) {
case '9': $status = 'Создатель сайта'; break;
case '8': $status = 'Супер Админ'; break;
case '7': $status = 'Админ'; break;
case '6': $status = 'Старший модер'; break;
case '5': $status = 'Модератор'; break;
case '4': $status = 'Элитный Мастер'; break;
case '3': $status = 'Мастер'; break;
case '2': $status = 'Наш чел!'; break;
case '1': $status = 'Новичек'; break;
case '0': $status = 'Бродяга'; break;
}
return $status;
}
// ------------------ Функция генерирования паролей --------------------//
function generate_password($length = "") {
if (empty($length)) {
$length = mt_rand(10, 12);
}
$salt = str_split('aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789');
$makepass = "";
for ($i = 0; $i < $length; $i++) {
$makepass .= $salt[array_rand($salt)];
}
return $makepass;
}
// ------------------ Функция для читаемого вывода массива --------------------//
function text_dump($var, $level = 0) {
if (is_array($var)) $type = "array[" . count($var) . "]";
else if (is_object($var)) $type = "object";
else $type = "";
if ($type) {
echo $type . '<br />';
for(Reset($var), $level++; list($k, $v) = each($var);) {
if (is_array($v) && $k === "GLOBALS") continue;
for($i = 0; $i < $level * 3; $i++) echo ' ';
echo '<b>' . htmlspecialchars($k) . '</b> => ', text_dump($v, $level);
}
} else echo '"', htmlspecialchars($var), '"<br />';
}
function dump($var) {
if ((is_array($var) || is_object($var)) && count($var)) {
echo '<pre>', text_dump($var), '</pre>';
} else {
echo '<tt>', text_dump($var), '</tt>';
}
}
// --------------- Функция вывода календаря---------------//
function makeCal ($month, $year) {
$wday = date("w", mktime(0, 0, 0, $month, 1, $year));
if ($wday == 0) {
$wday = 7;
}
$n = - ($wday-2);
$cal = array();
for ($y = 0; $y < 6; $y++) {
$row = array();
$notEmpty = false;
for ($x = 0; $x < 7; $x++, $n++) {
if (checkdate($month, $n, $year)) {
$row[] = $n;
$notEmpty = true;
} else {
$row[] = "";
}
}
if (!$notEmpty) break;
$cal[] = $row;
}
return $cal;
}
// --------------- Функция автоустановки прав доступа ---------------//
function chmode ($path = ".") {
if ($handle = opendir ($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$file_path = $path . "/" . $file;
if (is_dir ($file_path)) {
$old = umask(0);
chmod ($file_path, 0777);
umask($old);
chmode ($file_path);
} else {
chmod ($file_path, 0666);
}
}
}
closedir($handle);
}
}
function mc($str) {
global $db, $config;
if (empty($config['rotorlicense'])) {
return preg_replace('#</body>#i',
'<div style="text-align:center"><a href="http://' . str_rot13('ivfniv.arg') . '">' . str_rot13('Cbjrerq ol EbgbePZF') . '</a></div></body>',
$str, 1);
} else {
return $str;
}
}
// --------------- Функции сжатия страниц ---------------//
function compress_output_gzip($output) {
return gzencode($output, 5);
}
function compress_output_deflate($output) {
return gzdeflate($output, 5);
}
// ---------- Функция обработки строк данных и ссылок ---------//
function check_string($string) {
$string = strtolower($string);
$string = str_replace(array('http://www.', 'http://wap.', 'http://', 'https://'), '', $string);
$string = strtok($string, '/?');
return $string;
}
// ---------- Аналог функции substr для UTF-8 ---------//
function utf_substr($str, $offset, $length = null) {
if (function_exists('mb_substr')) return mb_substr($str, $offset, $length, 'utf-8');
if (function_exists('iconv_substr')) return iconv_substr($str, $offset, $length, 'utf-8');
$str = utf_to_win($str);
$str = substr($str, $offset, $length);
return win_to_utf($str);
}
// ---------------------- Аналог функции strlen для UTF-8 -----------------------//
function utf_strlen($str) {
if (function_exists('mb_strlen')) return mb_strlen($str, 'utf-8');
if (function_exists('iconv_strlen')) return iconv_strlen($str, 'utf-8');
if (function_exists('utf8_decode')) return strlen(utf8_decode($str));
return strlen(utf_to_win($str));
}
// ---------- Аналог функции wordwrap для UTF-8 ---------//
function utf_wordwrap($str, $width = 75, $break = ' ', $cut = 1) {
$str = utf_to_win($str);
$str = wordwrap($str, $width, $break, $cut);
return win_to_utf($str);
}
// ----------------------- Функция определения кодировки ------------------------//
function is_utf($str) {
$c = 0;
$b = 0;
$bits = 0;
$len = strlen($str);
for($i = 0; $i < $len; $i++) {
$c = ord($str[$i]);
if ($c > 128) {
if (($c >= 254)) return false;
elseif ($c >= 252) $bits = 6;
elseif ($c >= 248) $bits = 5;
elseif ($c >= 240) $bits = 4;
elseif ($c >= 224) $bits = 3;
elseif ($c >= 192) $bits = 2;
else return false;
if (($i + $bits) > $len) return false;
while ($bits > 1) {
$i++;
$b = ord($str[$i]);
if ($b < 128 || $b > 191) return false;
$bits--;
}
}
}
return true;
}
// ----------------------- Функция отправки письма по e-mail ------------------------//
function addmail($usermail, $subject, $msg, $mail = "", $name = "") {
global $db, $set;
if ($mail == "") {
$mail = $set['emails'];
$name = $set['nickname'];
}
$subject = utf_to_win($subject);
$msg = utf_to_win($msg);
$name = utf_to_win($name);
$subject = convert_cyr_string($subject, 'w', 'k');
$msg = convert_cyr_string($msg, 'w', 'k');
$name = convert_cyr_string($name, 'w', 'k');
$subject = '=?KOI8-R?B?' . base64_encode($subject) . '?=';
$adds = "From: " . $name . " <" . $mail . ">n";
$adds .= "X-sender: " . $name . " <" . $mail . ">n";
$adds .= "Content-Type: text/plain; charset=koi8-rn";
$adds .= "MIME-Version: 1.0n";
$adds .= "Content-Transfer-Encoding: 8bitn";
$adds .= "X-Mailer: PHP v." . phpversion();
return mail($usermail, $subject, $msg, $adds);
}
// Вывод времени
function times($times=NULL)
{global $db, $time;
if(($time-$times)<=1){
$timesp = 'только что';
return $timesp;
}else
if(($time-$times)<=60){
$timesp = slova((($time-$times)),'секунду','секунды','секунд').' назад';
return $timesp;
}else if(($time-$times)<=3600){$timesp = slova((($time-$times)/60),'минуту','минуты','минут').' назад';
return $timesp;
}else{
$today = date("j M Y", $time);
$today = date("j M Y", $time);
$yesterday = date("j M Y", strtotime("-1 day"));
$timesp=date("j M Y в H:i", $times);
$timesp = str_replace($today, 'Сегодня', $timesp);
$timesp = str_replace($yesterday, 'Вчера', $timesp);
$timesp = strtr($timesp, array ("Jan" => "Янв","Feb" => "Фев","Mar" => "Марта","May" => "Мая","Apr" => "Апр","Jun" => "Июня","Jul" => "Июля","Aug" => "Авг","Sep" => "Сент","Oct" => "Окт","Nov" => "Ноября","Dec" => "Дек",));
return $timesp;
}
}
// Вывод времени (старый)
function times0($times=NULL)
{
global $db, $time;
$today = date("j M Y", $time);
$today = date("j M Y", $time);
$yesterday = date("j M Y", strtotime("-1 day"));
$timesp=date("j M Y в H:i", $times);
$timesp = strtr($timesp, array ("Jan" => "Янв","Feb" => "Фев","Mar" => "Марта","May" => "Мая","Apr" => "Апр","Jun" => "Июня","Jul" => "Июля","Aug" => "Авг","Sep" => "Сент","Oct" => "Окт","Nov" => "Ноября","Dec" => "Дек",));
return $timesp;
}
// --------------------- Функция шифровки Email-адреса ------------------------//
function crypt_mail($mail) {
$output = "";
$strlen = strlen($mail);
for ($i = 0; $i < $strlen; $i++) {
$output .= '&#' . ord($mail[$i]) . ';';
}
return $output;
}
// ------------------- Функция обработки массива (int) --------------------//
function intar($string) {
if (is_array($string)) {
$newstring = array_map('intval', $string);
} else {
$newstring = (int)$string;
}
return $newstring;
}
// ----------- Функция закачки файла через curl ------------//
function curl_connect($url, $user_agent = 'Mozilla/5.0') {
if (function_exists('curl_init')) {
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_REFERER, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec ($ch);
curl_close ($ch);
return $result;
}
}
function strlen2($str)
{
$rus=array('й','ц','у','к','е','н','г','ш','щ','з','х','ъ','ф','ы','в','а','п','р','о','л','д','ж','э','я','ч','с','м','и','т','ь','б','ю','Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф','Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С','М','И','Т','Ь','Б','Ю');
return strlen(str_replace($rus, '0', $str));
}
function tr_loads($in)
{
return preg_replace('#[^a-z0-9_-.()]+#ui', '_', $in);
}
function retranslit($in)
{
$trans1= array("'",'`',',',' ',"Ё","Ж","Ч","Ш","Щ","Э","Ю","Я","ё","ж","ч","ш","щ","э","ю","я","А","Б","В","Г","Д","Е","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ь","Ы","а","б","в","г","д","е","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ь","ы");
$trans2= array('_','_','_','_',"JO","ZH","CH","SH","SCH","Je","Jy","Ja","jo","zh","ch","sh","sch","je","jy","ja","A","B","V","G","D","E","Z","I","J","K","L","M","N","O","P","R","S","T","U","F","H","C","","Y","a","b","v","g","d","e","z","i","j","k","l","m","n","o","p","r","s","t","u","f","h","c","","y");
return str_replace($trans1,$trans2,$in);
}
function rus_lat($str) {
$str = strtr($str, array (
'а' => 'a',
'б' => 'b',
'в' => 'v',
'г' => 'g',
'д' => 'd',
'е' => 'e',
'ё' => 'e',
'ж' => 'j',
'з' => 'z',
'и' => 'i',
'й' => 'i',
'к' => 'k',
'л' => 'l',
'м' => 'm',
'н' => 'n',
'о' => 'o',
'п' => 'p',
'р' => 'r',
'с' => 's',
'т' => 't',
'у' => 'u',
'ф' => 'f',
'х' => 'h',
'ц' => 'c',
'ч' => 'ch',
'ш' => 'sh',
'щ' => 'sch',
'ъ' => "",
'ы' => 'y',
'ь' => "",
'э' => 'ye',
'ю' => 'yu',
'я' => 'ya'
));
return $str;
}
function page($k_page=1){ // Выдает текущую страницу
$page=1;
$page=htmlspecialchars(trim($page));
$k_page=htmlspecialchars(trim($k_page));
if (isset($_GET['page'])){
if ($_GET['page']=='end')$page=intval($k_page);elseif(is_numeric($_GET['page'])) $page=intval($_GET['page']);}
if ($page<1)$page=1;
if ($page>$k_page)$page=$k_page;
return $page;}
function k_page($k_post=0,$k_p_str=10){ // Высчитывает количество страниц
if ($k_post!=0){$v_pages=ceil($k_post/$k_p_str);return $v_pages;}
else return 1;}
function str($link='?',$k_page=1,$page=1){ // Вывод номеров страниц (только на первый взгляд кажется сложно ;))
global $divnav, $div9;
if ($page<1)$page=1;
$page=htmlspecialchars(trim($page));
$k_page=htmlspecialchars(trim($k_page));
echo $divnav;
if ($page>1)echo '<a href="'.$link.'page='.($page-1).'"><< Назад</a> ';
else echo "<< Назад ";
echo " | ";
if ($page<$k_page)echo ' <a href="'.$link.'page='.($page+1).'" >Вперед >></a>';
else echo " Вперед >>";
echo "<br /> ";
if ($page!=1)echo "<a href="".$link."page=1" >1</a>";else echo "<b>1</b>";
for ($ot=-3; $ot<=3; $ot++){
if ($page+$ot>1 && $page+$ot<$k_page){
if ($ot==-3 && $page+$ot>2)echo " ..";
if ($ot!=0)echo "|<a href="".$link."page=".($page+$ot)."" >".($page+$ot)."</a>";else echo "|<b>".($page+$ot)."</b>";
if ($ot==3 && $page+$ot<$k_page-1)echo "|..";}}
if ($page!=$k_page)echo "|<a href="".$link."page=end" >$k_page</a>";elseif ($k_page>1)echo "|<b>$k_page</b>";
echo $div9;
}
function str2($link='?',$k_page=1,$page=1){ // Вывод номеров страниц (только на первый взгляд кажется сложно ;))
global $divnav, $div9;
if ($page<1)$page=1;
$page=htmlspecialchars(trim($page));
$k_page=htmlspecialchars(trim($k_page));
echo $divnav;
//if ($page!=1)echo "<a href="".$link."/1"><<</a> ";
if ($page>1)echo "<a href="".$link."/".($page-1).""><< Назад</a> ";
else echo "<< Назад ";
echo " | ";
if ($page<$k_page)echo " <a href="".$link."/".($page+1)."" >Вперед >></a>";
else echo " Вперед >>";
//if ($page!=$k_page)echo " <a href="".$link."/end">>></a>";
echo "<br /> ";
if ($page!=1)echo "<a href="".$link."/1" >1</a>";else echo "<b>1</b>";
for ($ot=-3; $ot<=3; $ot++){
if ($page+$ot>1 && $page+$ot<$k_page){
if ($ot==-3 && $page+$ot>2)echo " ..";
if ($ot!=0)echo "|<a href="".$link."/".($page+$ot)."" >".($page+$ot)."</a>";else echo "|<b>".($page+$ot)."</b>";
if ($ot==3 && $page+$ot<$k_page-1)echo "|..";}}
if ($page!=$k_page)echo "|<a href="".$link."/end" >$k_page</a>";elseif ($k_page>1)echo "|<b>$k_page</b>";
echo $div9;
}
function otkuda($ref)
{
if (eregi('^/forum/',$ref))
$mesto='Форум';
elseif (eregi('^/exit.php',$ref))
$mesto='Выход';
elseif (eregi('^/in.php',$ref))
$mesto='Авторизация';
elseif (eregi('^/??$',$ref))
$mesto='На главной';
elseif (eregi('^/user/',$ref))
$mesto='Личный Кабинет';
elseif (eregi('^/info/',$ref))
$mesto='Смотрит анкету';
elseif (eregi('^/rules.php',$ref))
$mesto='Правила';
elseif (eregi('^/onl.php',$ref))
$mesto='Kтo онлайн?';
elseif (eregi('^/onl.php',$ref))
$mesto='Kтo онлайн?';
//
elseif (eregi('^/news.php',$ref))
$mesto='Новости';
elseif (eregi('^/gbook.php',$ref))
$mesto='Гостевая книга';
elseif (eregi('^/down/',$ref))
$mesto='Архив файлов';
elseif (eregi('^/usscripts/',$ref))
$mesto='Скрипты Пользователей';
elseif (eregi('^/fo/',$ref))
$mesto='Обменник файлов';
elseif (eregi('^/wm_infa/',$ref))
$mesto='Информация Wap-мастеру';
elseif (eregi('^/votes.php',$ref))
$mesto='Голосования';
elseif (eregi('^/akcyi.php',$ref))
$mesto='Акции';
elseif (eregi('^/konkurs.php',$ref))
$mesto='Конкурсы';
elseif (eregi('^/objavs.php',$ref))
$mesto='Объявление';
elseif (eregi('^/privat.php',$ref))
$mesto='Смотрит приват';
elseif (eregi('^/board.php',$ref))
$mesto='Доска почета';
elseif (eregi('^/stat.php',$ref))
$mesto='Статистика сайта';
elseif (eregi('^/faq.php',$ref))
$mesto='Информация/FAQ';
else
$mesto=false;
return $mesto;
}
//////////////////////////////////
function posts_min($nk, $ref)
{
global $db;
$us = DB :: $dbh -> queryFetch("SELECT * FROM `users` WHERE `id`=? LIMIT 1;", array($nk));
if($ref=='forum'){
$us['postsf']--;
$us['posts']--;
/*$us['dayp']--;*/
}
if($ref=='komm'){
$us['postsk']--;
$us['posts']--;
/*$us['dayp']--;*/
}
if($ref=='guest'){
$us['postsg']--;
$us['posts']--;
/*$us['dayp']--;*/
}
if($ref=='chat'){
$us['postsc']--;
$us['posts']--;
/*$us['dayp']--;*/
}
mysql_query("UPDATE `users` SET `posts` = '$us[posts]', dayp = '$us[dayp]', postsf = '$us[postsf]', postsk = '$us[postsk]', postsg = '$us[postsg]', postsc = '$us[postsc]' WHERE `id` = '$us[id]';");
}
//////////////////////////////////
function posts_add($ref)
{
global $db, $user;
if (isset($user['id']))
{
if($ref=='forum'){$user['postsf']++;
$user['posts']++;
$user['dayp']++;
}
if($ref=='komm'){$user['postsk']++;
$user['posts']++;
$user['dayp']++;
}
if($ref=='guest'){$user['postsg']++;
$user['posts']++;
$user['dayp']++;
}
if($ref=='chat'){$user['postsc']++;
$user['posts']++;
$user['dayp']++;
}
mysql_query("UPDATE `users` SET `posts` = '$user[posts]', dayp = '$user[dayp]', postsf = '$user[postsf]', postsk = '$user[postsk]', postsg = '$user[postsg]', postsc = '$user[postsc]' WHERE `id` = '$user[id]';");
}
}
function forum_new() {
global $db, $user; //WHERE `forum_t`.`close` != '1' AND Только открытые
$cmac = mysql_fetch_array(mysql_query ("select count(id) as num from `forum_t` LEFT JOIN `forum_rdm` ON `forum_t`.`id` = `forum_rdm`.`t_id` AND `forum_rdm`.`user_id` = '" . $user['id'] . "' WHERE (`forum_rdm`.`t_id` Is Null OR `forum_t`.`time` > `forum_rdm`.`time`)"));
return $cmac["num"];
}
// Функция вывода аватара пользователя//
function user_avatars($ref) {
global $set;
if(user_inf($ref,'myavatar')){
return '<img src="/'.user_inf($ref,'myavatar').'" width="32" height="32" alt="" /> ';
}else return '<img src="'.H2.'avatars/noavatar.gif" width="32" height="32" alt="" /> ';
}
//Функция вывода пользовательских тегов
function quickcode() {
echo 'BB-код<br />';
echo '<a href="#form" onclick="javascript:tag('[url=]', '[/url]');"><img src="' . H2 . 'img/editor/a.gif" alt="url" /></a>';
echo '<a href="#form" onclick="javascript:tag('[b]', '[/b]');"><img src="' . H2 . 'img/editor/b.gif" alt="b" /></a>';
echo '<a href="#form" onclick="javascript:tag('[big]', '[/big]');"><img src="' . H2 . 'img/editor/big.gif" alt="big" /></a>';
echo '<a href="#form" onclick="javascript:tag('[small]', '[/small]');"><img src="' . H2 . 'img/editor/small.gif" alt="small" /></a>';
echo '<a href="#form" onclick="javascript:tag('[i]', '[/i]');"><img src="' . H2 . 'img/editor/i.gif" alt="i" /></a>';
echo '<a href="#form" onclick="javascript:tag('[u]', '[/u]');"><img src="' . H2 . 'img/editor/u.gif" alt="u" /></a>';
echo '<a href="#form" onclick="javascript:tag('[q]', '[/q]');"><img src="' . H2 . 'img/editor/q.gif" alt="q" /></a>';
echo '<a href="#form" onclick="javascript:tag('[del]', '[/del]');"><img src="' . H2 . 'img/editor/del.gif" alt="del" /></a>';
echo '<a href="#form" onclick="javascript:tag('[img]', '[/img]');"><img src="' . H2 . 'img/editor/img.gif" alt="hide" /></a>';
echo '<a href="#form" onclick="javascript:tag('[code]', '[/code]');"><img src="' . H2 . 'img/editor/code.gif" alt="code" /></a>';
echo '<a href="#form" onclick="javascript:tag('[spoiler]', '[/spoiler]');"><img src="' . H2 . 'img/editor/spoiler.gif" alt="code" /></a>';
echo '<a href="#form" onclick="javascript:tag('[red]', '[/red]');"><img src="' . H2 . 'img/editor/red.gif" alt="red" /></a>';
echo '<a href="#form" onclick="javascript:tag('[green]', '[/green]');"><img src="' . H2 . 'img/editor/green.gif" alt="green" /></a>';
echo '<a href="#form" onclick="javascript:tag('[blue]', '[/blue]');"><img src="' . H2 . 'img/editor/blue.gif" alt="blue" /></a>';
echo '<br />';
}
// Функция вывода быстрых смайлов
function quicksmiles() {
echo 'Смайлы<br />';
echo '<a href="#form" onclick="javascript:tag(' :-) ', '');"><img src="' . H2 . 'smiles/smile.gif" alt=":)" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' :-( ', '');"><img src="' . H2 . 'smiles/sad.gif" alt=":(" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' :-D ', '');"><img src="' . H2 . 'smiles/biggrin.gif" alt=":E" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' =)) ', '');"><img src="' . H2 . 'smiles/biggrin2.gif" alt=":E" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' :-] ', '');"><img src="' . H2 . 'smiles/dovolen.gif" alt="hello" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' 8-) ', '');"><img src="' . H2 . 'smiles/poh.gif" alt="cry" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' ;-) ', '');"><img src="' . H2 . 'smiles/wink.gif" alt="obana" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' :-/ ', '');"><img src="' . H2 . 'smiles/hm.gif" alt="infat" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' :ok: ', '');"><img src="' . H2 . 'smiles/ok.gif" alt="krut" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' :apl: ', '');"><img src="' . H2 . 'smiles/apl.gif" alt="klass" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' :kul: ', '');"><img src="' . H2 . 'smiles/kul.gif" alt="vtopku" /></a> ';
echo '<a href="#form" onclick="javascript:tag(' :ploho: ', '');"><img src="' . H2 . 'smiles/ploho.gif" alt="vtopku" /></a> ';
echo '<br />';
}
//Вспомогательная функция быстрой вставки
function quickpaste($form) {
echo '<script language="JavaScript" type="text/javascript">
function tag(text1, text2) {
if ((document.selection)) {
document.form.' . $form . '.focus();
document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2;
} else if(document.forms['form'].elements['' . $form . ''].selectionStart!=undefined) {
var element = document.forms['form'].elements['' . $form . ''];
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
} else document.form.' . $form . '.value += text1+text2;
}
</script>';
}
//Функция жалобы на спам
function spam($mesto, $user_id, $spam_id, $msgs, $msg_id, $msg_t, $komment, $msg_razd_id)
{
global $db, $user, $ver, $rm, $usid, $name, $set,$time;
// Фильтруем, это не нужно, но пох гг
$mesto=check($mesto);
$user_id=check($user_id);
$spam_id=check($spam_id);
$msgs=check($msgs);
$msg_id=check($msg_id);
$msg_t=check($msg_t);
$komment=check($komment);
$msg_razd_id=check($msg_razd_id);
$r = mysql_query("Select * from `spam` WHERE `msg_id` = '".$msg_id."' AND `msg_t` = '".$msg_t."'");
if (mysql_affected_rows()==0){
$spam = user_inf($spam_id,'antispam')+1;
mysql_query("UPDATE `users` SET `antispam` = '".$spam."' WHERE `id` = '".$spam_id."'");
// если включен банн
if ($set['antispam']==1){
$mesg = 'На вас поступило(а) [b]'.$spam.'[/b] жалоб(а) на спам! После [b]5-ти[/b] жалоб, вы будете автоматически забаннены!';
//mysql_query ("INSERT INTO privat (user,user_id,to_user,to_id,time,msg) VALUES ('<b>system</b>','0','".user_inf($spam_id,'user')."','".user_inf($spam_id,'id')."','$time','$mesg')");
// Если спамер не в бане, исправляем это гг
if($spam>=5 && user_inf($spam_id,'bann')<$time){
$na = $time+60*60*24;
mysql_query('UPDATE `users` SET `bann` = "'.$na.'", `whobann` = "'.$user['id'].'", `whybann` = "Неоднократный спам!", `antispam` = "0" WHERE `id` = "'.user_inf($spam_id,'id').'" LIMIT 1');
$messs = '[b]Система[/b] забаннила пользователя [b]'.user_inf($spam_id,'user').'[/b] на [b]'.kikt($na).'[/b]<br /> Причина: [b]Неоднократный спам![/b]';
//mysql_query ("INSERT INTO logs (sid,log,msg,time) VALUES ('".user_inf($spam_id,'sid')."','ban','$messs','$time')");
}
// если бан отключен, просто информируем о жалобе
}else{
$mesg = 'На вас поступило(а) [b]'.$spam.'[/b] жалоб(а) на спам!';
//mysql_query ("INSERT INTO privat (sid,user,user_id,to_user,to_id,time,msg) VALUES ('".user_inf($spam_id,'sid')."','<b>".chat_inf(user_inf($spam_id,'sid'),'system')."</b>','0','".user_inf($spam_id,'user')."','".user_inf($spam_id,'id')."','$time','$mesg')");
}
// вычисляем админа чата и сообщаем о жалобе
//$uss=mysql_fetch_assoc(mysql_query ("Select * from users WHERE `sid` = '".user_inf($spam_id,'sid')."' and `level` = '9' order by id asc LIMIT 1"));
$mesg2 = 'На пользователя с ником [b]'.user_inf($spam_id,'user').'[/b] (ID: '.user_inf($spam_id,'id').') поступила жалоба на спам '.$mesto.'. Советуем принять меры! Жалобы на спам можете посмотреть [url=/admin/index?mod=spam]здесь[/url]';
//mysql_query ("INSERT INTO privat (sid,user,user_id,to_user,to_id,time,msg) VALUES ('".user_inf($spam_id,'sid')."','<b>".chat_inf(user_inf($spam_id,'sid'),'system')."</b>','0','".$uss['user']."','".$uss['id']."','$time','$mesg2')");
mysql_query ("INSERT INTO spam (user_id,spam_id,mesto,time,msg,komment,msg_t,msg_id,msg_razd_id) VALUES ('$user_id','$spam_id','$mesto','$time','$msgs','$komment','$msg_t','$msg_id','$msg_razd_id')");
return $div4.'Администрация уведомлена о спаме! Спасибо...'.$div9;
}else return $div4.'Администрация уже уведомлена о этом спаме!<br />'.$div9;
include_once (H.'shaxty/foot.php');
}
?>