View file wapus top english version/inc/functions.inc.php

File size: 11.56Kb
<?php
# Соединение с MySQL
function connect_to_db()
{
	// настройка доступа к базе
	$dbh = @mysql_connect ("mysql here", USER_DB, PASS_DB) or die ('ERROR_SQL_DATE_BASE');
	mysql_select_db (DB);
}
// ========================================================================

### Запрос
function query ()
{
	return (!empty($_SERVER['QUERY_STRING'])? '?'.str_replace("&", "&amp;", $_SERVER['QUERY_STRING']) : '?');
}
// ========================================================================

### функция посыла нужного заголовка
function send_wap_header($wap_version = 1)
{
	if ($wap_version == 1)
		header("Content-type: text/vnd.wap.wml; charset=UTF-8");
	else
		header("Content-type: application/vnd.wap.xhtml+xml; charset=UTF-8");
}
// ========================================================================

### функция обработки буфера страницы
function make_page ($page)
{
	global $wap_tags, $PAGE_TITLE;
	// замена собственных тегов на нужные версии (wml или xhtml)
	foreach ($wap_tags[$_SESSION['wap_version']] as $meta_tag => $real_tag)
		$page = str_replace ($meta_tag, $real_tag, $page);
	// подстановка титла страницы
	if (isset($PAGE_TITLE))
		$page = str_replace ('[page_title]', $PAGE_TITLE, $page);
	else
		$page = str_replace ('[page_title]', DEFAUL_PAGE_TITLE, $page);
	// пополнительня замена для вап1
	if ($_SESSION['wap_version'] == 1)
	{
		$page = str_replace("&", "&amp;", $page);
        $page = str_replace("&amp;amp;", "&amp;", $page);
		$page = str_replace("&amp;gt;", "&gt;", $page);
		$page = str_replace("&amp;lt;", "&lt;", $page);
		$page = str_replace("&amp;quot;", "&quot;", $page);
		$page = str_replace("&amp;copy;", "&copy;", $page);
		$page = str_replace("&amp;#", "&#", $page);
	}
	return $page;
}
// ========================================================================

### функция отпереления поддержки Реалтонов по марке и модели телефона
function realton_supported($vendor, $model)
{
	$support_phone = array(
	'Alcatel' 		=> array ('556', '557', '715', '735i', '735', '756'),
	'LG' 			=> array ('B2000', 'M4410' ),
	'Motorola' 		=> array ('C380', 'C390', 'C650', 'E398', 'Mpx220', 'V180', 'V3', 'V300', 'V400', 'V500', 'V525', 'V535', 'V547', 'V600', 'V620', 'V635' ),
	'Nokia' 		=> array ('3220', '3230', '3300', '3650', '3660', '5140i', '6021', '6060', '6170', '6220', '6230', '6230i', '6260', '6600', '6670', '6680', '6681', '6822', '6822a', '7260', '7270', '7610', '8800', 'N70' ),
	'Pantech' 		=> array ('PG3200' ),
	'Sagem' 		=> array ('MyC5-2', 'MyV-55' ),
	'Samsung' 		=> array ('D500', 'D500e', 'E350', 'E350e', 'E530', 'E620', 'E720', 'E730', 'E760', 'X480', 'Z130' ),
	'Siemens' 		=> array ('С65', 'С75', 'СF75', 'CL75', 'CX65', 'CX70', 'CX75', 'M65', 'M75', 'S65', 'Sk65', 'SL65', 'SX1' ),
	'Sony Ericsson' => array ('J300i', 'K300i', 'K500i', 'K600i', 'K700i', 'K750i', 'P800', 'P900', 'S700i', 'T290i', 'T610', 'T630', 'Z800i')
	);

	foreach ($support_phone as $phone_vendor => $models_array)
	{
		if (strtoupper($phone_vendor) == strtoupper($vendor))
			foreach ($models_array as $phone_model)
				if (strtoupper($phone_model) == strtoupper($model))
					return true;
	}
	return false;
}
// ========================================================================

### функция отпереления поддержки ВИДЕО по марке и можели телефона
function video_supported($vendor, $model)
{
	$support_phone = array(
	'Alcatel' 		=> array ('556', '557', '565', '756', '757', 'C651'),
	'Motorola' 		=> array ('A1000', 'A780', 'A830', 'A835', 'C975', 'E1000', 'E398', 'E680', 'V3', 'V600', 'V620', 'V635' ),
	'Nokia' 		=> array ('3220', '3230', '3650', '3660', '5140', '6101', '6170', '6230', '6230i', '6255', '6260', '6600', '6620', '6630', '6670', '6680', '6681', '6820', '7200', '7600', '7610', '7700', '9300', '9500', 'N-Gage', 'N-Gage QD', 'N70', 'N90', 'N91', 'N92' ),
	'Pantech' 		=> array ('PG3500', 'PG3600', 'PG8000' ),
	'Sharp' 		=> array ('GX-25', 'V-902' ),
	'Samsung' 		=> array ('SGH-D500', 'SGH-E720', 'SGH-i700' ),
	'SIEMENS' 		=> array ('CX65', 'CXT65', 'CXT70', 'CX75', 'S75', 'CXV65', 'M65', 'MT65', 'S65', 'S65V', 'SK65', 'SL65', 'SX1' ),
	'Sony Ericsson' => array ('F500i', 'K300', 'K300i', 'K500', 'K500i', 'K600', 'K600i', 'K600c', 'K700', 'K700i', 'K750i', 'K750', 'P800', 'P900', 'P910', 'P910i', 'S700', 'S700i', 'V800', 'W800i' )
	);

	foreach ($support_phone as $phone_vendor => $models_array)
	{
		if (strtoupper($phone_vendor) == strtoupper($vendor))
			foreach ($models_array as $phone_model)
				if (strtoupper($phone_model) == strtoupper($model))
					return true;
	}
	return false;
}
// ========================================================================

### функция определения папки с поддерживаемым контентом для бесплат игр
function free_game_group($tel_data)
{
	global $vendor, $model;

	$rows = explode("\n", $tel_data);
	foreach ($rows as $row_data)
	{
		$tel_group_data = explode("::", $row_data);
		if ( strtoupper($tel_group_data[1]) == strtoupper($vendor) )
		{
			$group_models = explode(" ", $tel_group_data[2]);
			foreach ($group_models as $group_model)
			{
				if ( strtoupper($group_model) == strtoupper($model) )
					return $tel_group_data[0];
			}
		}
	}
	return false;
}
// ========================================================================

### функция перекодировки
function utf8_win ($s)
{
	$out="";
	$c1="";
	$byte2=false;
	for ($c=0;$c<strlen($s);$c++){
	$i=ord($s[$c]);
	if ($i<=127) $out.=$s[$c];
	if ($byte2){
	$new_c2=($c1&3)*64+($i&63);
	$new_c1=($c1>>2)&5;
	$new_i=$new_c1*256+$new_c2;
	if ($new_i==1025){
	$out_i=168;
	}else{
	if ($new_i==1105){
	$out_i=184;
	}else {
	$out_i=$new_i-848;
	}
	}
	$out.=chr($out_i);
	$byte2=false;
	}
	if (($i>>5)==6) {
	$c1=$i;
	$byte2=true;
	}
	}
	return $out;
}
// ========================================================================

### функция проверки мыла
function verify_addr ($address) {
   $return = false;
   if (preg_match ('/^[\w.-]+@([\w.-]+)\.[a-z]{2,6}$/i', $address, $domain)) {
     $domain = explode ('.', $domain[0]);
     // Split the domain into sections wherein the last element is either 'co', 'org', or the likes, or the primary domain name
     foreach ($domain as $part) { // Iterate through the parts
         if (substr ($part, 0, 1) == '_' || substr ($part, strlen ($part) - 1, 1) == '_')
           $return = false; // The first or last character is _
         else
           $return = true; // The parts are fine. The address seems syntactically valid
     }
   }
   return $return;
}
// ========================================================================

function tag($str,$tag1){
if($GLOBALS['_version']=='wml'){
$tag2=preg_replace('#<(.*?)>#i','</\1>',$tag1);
$str=preg_replace('#^(.*?)$#',$tag1.'\1'.$tag2,$str);
}
return $str;
}

function form($href,$method='post'){
global $_version;
$GLOBALS['FORM_ACTION']=$href;
$GLOBALS['FORM_METHOD']=$method;
if($_version!='wml'){
echo "<form action=\"$href\" method=\"$method\">";
}else{
echo "";}
}

function submit($value,$names=''){
if($GLOBALS['_version']!='wml'){
echo "<input type=\"submit\" class=\"btn\" value=\"$value\"></form>";
}else{
echo "<anchor>$value<go href=\"".$GLOBALS['FORM_ACTION']."\" method=\"".$GLOBALS['FORM_METHOD']."\">";
$n=explode(',',$names);
foreach($n as $name){
echo "<postfield name=\"$name\" value=\"\$($name)\"/>"; }
echo "</go></anchor>";
}}

function nav ($total, $onp, $path='', $add='') {
 global $_version, $nav;
 $in = -3;
 $out = 3;
 $res = '';
 if (strpos($path, '?') !== false) $path .= '&amp;p=';
 else $path .= '?p=';
 if ($add != '') $add = '&amp;' . $add;
 if (isset($_GET['p']) && is_numeric($_GET['p']) && $_GET['p'] > 0) $page = (int)$_GET['p'];
 else $page = 1;
 $maxpp = $total / $onp;
 $maxp = (int)$maxpp;
 if ($maxp < $maxpp) $maxp ++;
 if ($page > $maxp) $page = $maxp;
 $p_of = $page - 1;
 $nav['start'] = $p_of * $onp;
 $nav['end'] = $nav['start'] + $onp;
 $res .= ($_version == 'wml' ? '<hr/><small>' : '<div class="navi">');
 if ($page > 1) $res .= '<a href="' .$path . ($page - 1) . $add . '">Пред.</a> | ';
 $res .= 'Стр. ' . $page . ' из ' . $maxp;
 if ($maxp - $page > 0) $res .= ' | <a href="' . $path . ($page + 1) . $add . '">След.</a>';
 $res .= '<br/>';
 if ($page != 1) {
  $res .= '<a href="' . $path . $add . '">1</a>';
 } else {
  $res .= '[1]';
 }
 for ($ot = $in; $ot <= $out; $ot ++) {
  $t_str = $page + $ot;
  if ($t_str > 1 && $t_str < $maxp) {
   if ($in == $ot && $t_str > 2) {
    $res .= ' ...';
   }
   if ($ot != 0) {
    $res .= ' <a href="' . $path . $t_str . $add . '">' . $t_str . '</a>';
   } else {
    $res .= ' [' . $t_str . ']';
   }
   if ($ot == $out && $t_str < $maxp - 1) {
    $res .= ' ...';
   }
  }
 }
 if ($page != $maxp) {
  $res .= ' <a href="' . $path . $maxp . $add . '">' . $maxp . '</a>';
 } elseif ($maxp > 1){
  $res .= ' [' . $maxp . ']';
 }
 $nav['pages'] = $res . ($_version == 'wml' ? '</small><hr/>' : '</div>');
}

iconv_set_encoding('internal_encoding', 'UTF-8');

function xlen ($x) {
 return iconv_strlen($x);
}

function xpos ($x, $s, $o=false) {
 if ($o === false) return iconv_strpos($x, $s);
 return iconv_strpos($x, $s, $o);
}

function xsub($x, $s, $e=false){
 if ($e === false) return iconv_substr($x, $s);
 return iconv_substr($x, $s, $e);
}

function block ($x, $i=100) {
 $l = xlen($x);
 if ($l <= $i) return $x;
 $p = xpos($x, ' ', $i);
 if ($p > $i + 20) return xsub($x, 0, $i);
 return xsub($x, 0, $p) . ' ...';
}

function sql($sql) {
 $res = mysql_query($sql) or die(mysql_error());
 return $res;
}

function sqlres ($sql, $field) {
 $res = sql($sql);
 $row = mysql_result($res, 0, $field);
 mysql_free_result($res);
 return $row;
}

function sqlrow($sql){
 $res = sql($sql);
 $row = mysql_fetch_array($res, MYSQL_ASSOC);
 mysql_free_result($res);
 return $row;
}

function csql($x) {
 return mysql_real_escape_string($x);
}

function admin_auth(){
 global $AUTH, $login, $admlink;
 if (isset($_GET['login']) && isset($_GET['p']) && !empty($_GET['login']) && !empty($_GET['p'])) {
  $_login = $_GET['login']; $p = $_GET['p'];
  $insess = 0;
 } elseif (isset($_SESSION['login']) && isset($_SESSION['p']) && !empty($_SESSION['login']) && !empty($_SESSION['p'])) {
  $_login = $_SESSION['login'];  $p = $_SESSION['p'];
  $insess = 1;
 }
 if (isset($_login)) {
  $login = preg_replace('#[^0-9A-Za-z.-_]#', '', $_login);
  $pass = preg_replace('#[^0-9A-Za-z.-_]#', '', $p);
  $res = @mysql_query("select pass from superadmin where login='$login' limit 1");
  $row = @mysql_fetch_assoc($res);
  if (!empty($row)) {
   $truepass = $row['pass'];
   if ($truepass == $pass || $truepass == md5($pass)) {
    $AUTH = 1;
    $admlink = 'login=' . $login . '&amp;p=' . $truepass;
    if (!$insess) {
     $_SESSION['login'] = $login;
     $_SESSION['p'] = $truepass;
   }
   } else {
    $AUTH = 0; }
  } else {
   $AUTH = 0; }
 } else {
  $AUTH = 0; }
 if (!$AUTH) {
  $login = '';
  $admlink = '';
 }
}

$DBASE['hc'] = array('&' => '&amp;', '\'' => '&#39;', '"' => '&quot;', '$' => '&#36;', '\\' => '&#92;', '`' => '&#96;', '´' => '&#180;', '^' => '&#94;', '%' => '&#37;', '<' => '&lt;', '>' => '&gt;', '•' => '&#149;', "\x95" => '&#149;', '№' => '&#8470;', '©' => '&#169;', '™' => '&#153;', '®' => '&#174;', '”' => '&#148;', '“' => '&#147;', '…' => '&#133;', '«' => '&#171;', '»' => '&#187;');

function htmlcode ($x, $rev=false) {
 global $DBASE;
 if (!$rev) return strtr($x,$DBASE['hc']);
 return strtr($x, array_flip($DBASE['hc']));
}

?>