1, '_GET' => 1, '_POST' => 1, '_COOKIE' => 1, '_FILES' => 1, '_SERVER' => 1, '_REQUEST' => 1, 'GLOBALS' => 1);
foreach ($GLOBALS as $key => $value) {
if (!isset($allowed[$key])) {
unset($GLOBALS[$key]);
}
}
}
function bb_parse($string) {
while (preg_match_all('`\[(.+?)=?(.*?)\](.+?)\[/\1\]`', $string, $matches)) foreach ($matches[0] as $key => $match) {
list($tag, $param, $innertext) = array($matches[1][$key], $matches[2][$key], $matches[3][$key]);
switch ($tag) {
case 'b': $replacement = "$innertext"; break;
case 'i': $replacement = "$innertext"; break;
case 'size': $replacement = "$innertext"; break;
case 'color': $replacement = "$innertext"; break;
case 'center': $replacement = "
$innertext"; break;
case 'quote': $replacement = "$innertext
" . $param? "$param" : ''; break;
case 'url': $replacement = '$innertext"; break;
case 'img':
list($width, $height) = preg_split('`[Xx]`', $param);
$replacement = "
'; break;
} $string = str_replace($match, $replacement, $string);
}
return $string;
}
$area = isset($_GET['area']) ? $_GET['area'] : false; // работа со switch
function age($d, $m, $y)
{
$age = date('Y') - $y;
$_m = date('m');
if($_m < $m || ($_m == $m && date('d') < $d))
$age--;
return $age;
}
function text($start=NULL,$text,$end=NULL){echo ''.$start.''.$text.''.$end.'';}
if(!preg_match('~^[a-z0-9]{32}$~', $_COOKIE[session_name()]))
{
$new_sess_id = md5(rand(1000, 999999).MT);
setcookie(session_name(), $new_sess_id);
$_COOKIE[session_name] = $new_sess_id;
session_id($new_sess_id);
unset($new_sess_id);
}
function err($text){echo ''.$text.'
';}
#------- Проверка GET данных
foreach ($_GET as $cheked_Space)
{
if (is_array($cheked_Space) and !preg_match('#^(?:[a-z0-9_\-/]+|\.+(?!/))*$#i', $cheked_Space))
{
$_SESSION['hackers'] = 'Ошибка. #404';
header ("Location: ".URL."/index/?");
exit;
}
}
#------- Поиск пользователя
if(isset($_COOKIE['login'], $_COOKIE['password']))
{
$query = mysql_query("SELECT * FROM `user` WHERE `login` = '".mysql_real_escape_string($_COOKIE['login'])."' AND `password` = '".mysql_real_escape_string($_COOKIE['password'])."'");
$user = (mysql_num_rows($query) == 1) ? mysql_fetch_assoc($query) : false;
}else{$user = false;}
// set
$q = mysql_query("SELECT * FROM `settings`");
while($arr=mysql_fetch_assoc($q)) $set[$arr['id']]=$arr['value'];
#-------
$style = ($user) ? $user['style'] : $set['style'];
#----------
//
function cat_name($var){
$array = mysql_fetch_array(mysql_query('select `name` from `cat` where `id`="'.$var.'"'));
return $array['name'];
echo $array['name'];
}
//
function title($title)
{
global $user, $style, $set;
if ($user)
{
mysql_query("UPDATE `user` SET `WHERE` = '".$title."' WHERE `id` = ".$user['id']."");
}
require START."design/$style/head.tpl";
if (isset($_GET['user']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '".intval($_GET['user'])."'"),0)==1)
{
$ank=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '".intval($_GET['user'])."' LIMIT 1"));
echo "\n";
echo '';
echo "\n";
}
}
# Низ
function foot($end)
{
global $user, $set, $style;
require START."design/$style/foot.tpl";
exit();
}
/**
* Производит замену html-символов в мнемоники; удаляет quotes, символы табуляции,
* NUL-байты (\0) и т.д. Без передачи второго аргумента (или передаче false) также
* удаляет символы новой строки.
*/
function check($string, $enters = false) {
$string = stripslashes(trim($string));
$string = htmlentities($string, ENT_QUOTES, 'UTF-8');
$string = str_replace(array('\t', '\0'), '', $string);
if (!$enters) {
$string = str_replace(array('\r', '\n'), '', $string);
}
return $string;
}
/* Функция отфильтровки чисел */
function int($int){return abs((int)$int);}
/* Функция защиты от нежелательных действий */
function protect($text){return trim(mysql_real_escape_string($text));}
/* Функция безопасного шифрования в MD5 */
function pass($text)
{ return md5(md5('CAT').md5(md5($text)));}
/* Функция обрата */
function refresh(){return header('Refresh: 1 url='.$_SERVER['HTTP_REFERER'].'');}
#------- Функция постраничной навигации
function page($k_page=1){ // Выдает текущую страницу
$page=1;
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){ // Вывод номеров страниц (только на первый взгляд кажется сложно ;))
if ($page<1)$page=1;
echo "Страница:\n";
echo " ";
if ($page!=1)echo "
1";else echo "
1";
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 "
".($page+$ot)."";else echo "
".($page+$ot)."";
if ($ot==3 && $page+$ot<$k_page-1)echo " ..";}}
if ($page!=$k_page)echo "
$k_page";elseif ($k_page>1)echo "
$k_page";
echo "
\n";
}
#-------
function cut($str, $lenght) {
$str = strip_tags($str);
if (strlen($str) >= $lenght) {
$wrap = wordwrap($str, $lenght, "~");
$str_cut = substr($wrap, 0, strpos($wrap, "~"));
$str_cut .= ' ...';
return $str_cut;
} else {
$str_cut = $str . ' ...';
return $str_cut;
}}
/* Функция только для незарегистрированных пользователей */
function guest()
{
global $user;
if($user)
{
header("Location: ".URL."/index/");
}
}
/* Функция только для зарегистрированных пользователей */
function reg()
{
global $user;
if(empty($user['id']) and empty($user['pass']))
{
header("Location: ".URL."/index/reg");
}
}
/* Функция отображения времени */
function clock($time)
{
global $user;
$timezone = (!$user) ? 0 : ($user['timesdvig']*3600);
$time = $time+$timezone;
$timep= date("j M Yг. в H:i", $time);
$time_p[0]=date("j n Y", $time);
$time_p[1]=date("H:i:s", $time);
if ($time_p[0]==date("j n Y", time()))$timep='cегодня в '.$time_p['1'];
if ($time_p[0]==date("j n Y", time()-86400))$timep='вчера в '.$time_p['1'];
$months_eng = array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$months_rus = array('января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
$timep = str_replace($months_eng,$months_rus,$timep);
return $timep;
}
function user_gender($p)
{
$ingo = mysql_fetch_assoc(mysql_query("SELECT `gender` FROM `user` WHERE `id` = ".$p));
return ($ingo['gender']>0) ? '
' : '
';
}
#-------------
function level($level=0)
{
global $user;
if (!isset($user) or $user['level']<$level)
{
header("Location: ".URL."/index");exit;
}
}
if($user){
mysql_query("UPDATE `user` SET `pereh` = `pereh` + 1 WHERE `id` = '$user[id]'");
}
#---
function avatar($id)
{
global $user;
if (is_file(START."images/photo/$id.jpg"))
echo "
\n";
elseif (is_file(START."images/photo/$id.png"))
echo "
\n";
elseif ($_SERVER['PHP_SELF']!='/profile.php')
echo '
';
if ($_SERVER['PHP_SELF']=='/profile.html' && (is_file(START."images/photo/$id.gif") || is_file(START."images/photo/$id.jpg") || is_file(START."images/photo/$id.png")))echo "
\n";
}
function var_ip($var){
$ips = explode('.',$var);
$ipn = $ips[3] + $ips[2]*256 + $ips[1]*256*256 + $ips[0]*256*256*256;
$array = mysql_fetch_array(mysql_query('select * from `base_ip` where `ot`<="'.$ipn.'" and `do`>="'.$ipn.'" limit 1'));
if($array){ $op = $array["op"].'('.$array["country"].')'; }else{ $op = $var; }
return $op;
echo $op;
}
// определение IP-адресса посетителя
if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) and preg_match('|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$|',$_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ipz = trim(htmlspecialchars(mysql_real_escape_string($_SERVER['HTTP_X_FORWARDED_FOR'])));
}
elseif(isset($_SERVER['HTTP_CLIENT_IP']) and preg_match('|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$|',$_SERVER['HTTP_CLIENT_IP']))
{
$ipz = trim(htmlspecialchars(mysql_real_escape_string($_SERVER['HTTP_CLIENT_IP'])));
}
elseif(isset($_SERVER['REMOTE_ADDR']) and preg_match('|^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$|',$_SERVER['REMOTE_ADDR']))
{
$ipz = trim(htmlspecialchars(mysql_real_escape_string($_SERVER['REMOTE_ADDR'])));
}
else
{
$ipz = 'Unknow';
}
// определение UA посетителя
if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']))
{
$uaz = trim(stripcslashes(htmlspecialchars(mysql_real_escape_string($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']))));
}
elseif (isset($_SERVER['HTTP_USER_AGENT']))
{
$uaz = trim(stripcslashes(htmlspecialchars(mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']))));
}
else
{
$uaz = 'Unknow';
}
$uaz=strtok($uaz, '/');
$uaz=strtok($uaz, ' ');
// online
if (!$user)
{
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `online` WHERE `ip` = '".$ipz."' AND `ua` = '".$uaz."' AND `time` > '".(time()-300)."'"),0)==1)
{
$onlin=mysql_fetch_array(mysql_query("SELECT * FROM `online` WHERE `ip` = '".$ipz."' AND `ua` = '".$uaz."' AND `time` > ".(time()-300)));
mysql_query("UPDATE `online` SET `pereh` = '".($onlin['pereh']+1)."', `time` = '".time()."' WHERE `ip` = '".$ipz."' AND `ua` = '".$uaz."' LIMIT 1");
}
else
{
mysql_query("DELETE FROM `online` WHERE `time` < '".(time()-300)."'");
mysql_query("OPTIMIZE TABLE `online`");
mysql_query("INSERT INTO `online` (`ip`, `ua`, `time`) values('".$ipz."', '".$uaz."', ".time().")");
}
}
else
{
if ($user['ban'] > time() and basename($_SERVER['PHP_SELF']) != 'bans.html')
{
header("Location: ".URL."/bans.html");
exit;
}
mysql_query("UPDATE `user` SET `time` = " . time().", `ip` ='".$ipz."', `ua`='".$uaz."' WHERE `id` = ".$user['id']);
}
function site($uss)
{
$ingo = @mysql_fetch_assoc(mysql_query("SELECT `status` FROM `plasec` WHERE `id` = ".$uss));
if($ingo['status']=='activ'){echo 'Активный';}
if($ingo['status']=='block'){echo 'Забанен';}
if($ingo['status']=='moded'){echo 'На модерации';}
}
/*
# автор: Apollo aka Роман Смоляков [также вы можете меня найти по никнейму Millennium]
# E-mail : apollo@email.ua
# WAP-Site : http://7ki.ru
# ICQ : 77994551
# Вы не имеете право вносить изменения в код скрипта для его дальнейшего распространения
# Есть недоработки, баги. Желания нету дорабатывать этот скрипт.
# Если хотите поблагодарить: Z412465594575, R219928904229
# P.S. Пишу скрипты на заказ!
# Копирайт не убирать!
# Удачи! :)
*/