253 lines
5.9 KiB
PHP
253 lines
5.9 KiB
PHP
|
<?php
|
||
|
|
||
|
@set_magic_quotes_runtime(0);
|
||
|
|
||
|
if (!defined("_FCORE"))
|
||
|
{
|
||
|
die('non autorise');
|
||
|
}
|
||
|
|
||
|
if (is_file(_FCORE."ban.xlist"))
|
||
|
{
|
||
|
$banlist = file(_FCORE."ban.xlist",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
|
||
|
if(in_array($_SERVER['REMOTE_ADDR'], $banlist))
|
||
|
{
|
||
|
die('banni');
|
||
|
}
|
||
|
}
|
||
|
else die('blacklist introuvable');
|
||
|
|
||
|
if (is_file(_FCORE."config.xconf"))
|
||
|
{
|
||
|
$fconfig = file(_FCORE."config.xconf",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
|
||
|
$config = array();
|
||
|
$exp = '#^(\\w{3,30})(?:\\[(\\w{1,30})\\])?\\s?\:\\s?"(.{0,500})"$#ui';
|
||
|
foreach ($fconfig as $conf_value)
|
||
|
{
|
||
|
if (preg_match($exp,trim($conf_value)))
|
||
|
{
|
||
|
|
||
|
$m1 = NULL;
|
||
|
$m2 = NULL;
|
||
|
$m3 = NULL;
|
||
|
|
||
|
preg_replace_callback($exp,create_function('$matches','global $m1,$m2,$m3; $m1 = $matches[1]; $m2 = $matches[2]; $m3 = $matches[3]; return true;'),trim($conf_value));
|
||
|
|
||
|
if(!empty($m2))
|
||
|
{
|
||
|
$config[$m1][$m2] = $m3;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$config[$m1] = $m3;
|
||
|
}
|
||
|
}
|
||
|
else { die("Fichier de configuration incorrect!"); }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
else die("fichier de configuration introuvable!");
|
||
|
|
||
|
if($config['actif']!='1')
|
||
|
{
|
||
|
die('desactive');
|
||
|
}
|
||
|
|
||
|
setLocale(LC_TIME, $config['locales'], $config['lang']);
|
||
|
|
||
|
function file_log($message,$level=0)
|
||
|
{
|
||
|
$date = strftime('%d-%m-%Y');
|
||
|
if (is_writable(_FCORE."logs/") || is_writable(_FCORE."logs/".$date.".xlog"))
|
||
|
{
|
||
|
$fichier = fopen(_FCORE."logs/".$date.".xlog",'a+');
|
||
|
|
||
|
switch($level)
|
||
|
{
|
||
|
default:
|
||
|
case 0: $level = 'MESSAGE'; break;
|
||
|
case 1: $level = 'AVERTISSEMENT'; break;
|
||
|
case 2: $level = 'ERREUR'; break;
|
||
|
}
|
||
|
$time = strftime('%H:%M:%S');
|
||
|
$req = $_SERVER['REQUEST_METHOD'];
|
||
|
$arg = $_SERVER['REQUEST_URI'];
|
||
|
$remote = $_SERVER['REMOTE_ADDR'];
|
||
|
$ua = $_SERVER['HTTP_USER_AGENT'];
|
||
|
@$referer = $_SERVER['HTTP_REFERER'];
|
||
|
$line = "[$time] $level : $message , [$remote] [$req] [$arg] [$ua] [$referer]\n";
|
||
|
|
||
|
fwrite($fichier,$line);
|
||
|
fclose($fichier);
|
||
|
|
||
|
}
|
||
|
else die('log non accessible en ecriture');
|
||
|
}
|
||
|
|
||
|
|
||
|
function random($l=128)
|
||
|
{
|
||
|
switch ($l)
|
||
|
{
|
||
|
default:
|
||
|
case 128: $n = 1; break;
|
||
|
case 256: $n = 2; break;
|
||
|
case 512: $n = 4; break;
|
||
|
case 1024: $n = 8; break;
|
||
|
case 2048: $n = 16; break;
|
||
|
}
|
||
|
|
||
|
for($i = 1;$i <= $n; $i++)
|
||
|
{
|
||
|
$var = time().microtime().mt_rand().md5(time()).md5(microtime()).md5(mt_rand()).sha1(time()).sha1(microtime()).sha1(mt_rand());
|
||
|
$r[$i] = md5(md5($var)^sha1($var));
|
||
|
}
|
||
|
$var = implode('',$r);
|
||
|
|
||
|
return $var;
|
||
|
}
|
||
|
|
||
|
function hash_var($var)
|
||
|
{
|
||
|
$hash = hash('whirlpool', $var);
|
||
|
return $hash;
|
||
|
}
|
||
|
|
||
|
function decode_ip($int_ip)
|
||
|
{
|
||
|
$hexipbang = explode('.', chunk_split($int_ip, 2, '.'));
|
||
|
return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]);
|
||
|
}
|
||
|
|
||
|
function encode_ip($dotquad_ip=FALSE)
|
||
|
{
|
||
|
if(!$dotquad_ip)
|
||
|
{
|
||
|
$dotquad_ip = $_SERVER['REMOTE_ADDR'];
|
||
|
}
|
||
|
$ip_sep = explode('.', $dotquad_ip);
|
||
|
return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
|
||
|
}
|
||
|
|
||
|
function gpc($name,$method='get')
|
||
|
{
|
||
|
switch($method)
|
||
|
{
|
||
|
default:
|
||
|
case 'get': $var = isset($_GET[$name])?$_GET[$name]:NULL; break;
|
||
|
case 'post': $var = isset($_POST[$name])?$_POST[$name]:NULL; break;
|
||
|
case 'cookie': $var = isset($_COOKIE[$name])?$_COOKIE[$name]:NULL; break;
|
||
|
}
|
||
|
|
||
|
if(!empty($var))
|
||
|
{
|
||
|
$var = get_magic_quotes_gpc()?stripslashes($var):$var;
|
||
|
return $var;
|
||
|
}
|
||
|
else return FALSE;
|
||
|
}
|
||
|
|
||
|
function cookie($name,$value,$time=NULL)
|
||
|
{
|
||
|
global $config;
|
||
|
|
||
|
if(empty($time))
|
||
|
{
|
||
|
$time = time()+$config['session_time']+$config['fuseau_horaire']*3600;
|
||
|
}
|
||
|
|
||
|
setcookie($name,$value,$time);
|
||
|
}
|
||
|
|
||
|
function enc($var)
|
||
|
{
|
||
|
$string = preg_replace_callback('#^(.*\\??)(.*)?$#u',create_function('$matches',' return htmlspecialchars($matches[1].urlencode($matches[2]));'),$var);
|
||
|
return $string;
|
||
|
}
|
||
|
|
||
|
function url($string,$external=FALSE)
|
||
|
{
|
||
|
global $config;
|
||
|
|
||
|
if($external)
|
||
|
{
|
||
|
return enc($string);
|
||
|
}
|
||
|
|
||
|
$domain = $config['domaine'];
|
||
|
|
||
|
if($config['url_rewriting'] != '1')
|
||
|
{
|
||
|
$masque = $config['url_masque'][$domain."_"._FDIR];
|
||
|
$replace = $config['url_replace'][$domain."_"._FDIR];
|
||
|
$var = preg_replace($masque,$replace,$string);
|
||
|
return enc($var);
|
||
|
}
|
||
|
else return enc($string);
|
||
|
}
|
||
|
|
||
|
function bbcode($var,$level=0)
|
||
|
{
|
||
|
global $config;
|
||
|
|
||
|
switch($level)
|
||
|
{
|
||
|
case 1:
|
||
|
$pattern[] = '#\\[size=([1-2][0-9])\\](.+?)\\[/size\\]#u';
|
||
|
$replace[] = '<span style="font-size: $1px;">$2</span>';
|
||
|
|
||
|
$pattern[] = '#\\[color=(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow)\\](.+?)\\[/color\\]#u';
|
||
|
$replace[] = '<span style="color: $1;">$2</span>';
|
||
|
|
||
|
$pattern[] = '#\\[img\\]http://([a-zA-Z0-9_/.%*+~,\\#-]+)\\[/img\\]#u';
|
||
|
$replace[] = '<img src="http://$1" alt="$1" />';
|
||
|
|
||
|
default:
|
||
|
case 0:
|
||
|
$pattern[] = '#\\[url=(?:http://)?([a-zA-Z0-9_/.%*+~,\\#-]+)\\](.+?)\\[/url\\]#u';
|
||
|
$replace[] = '<a href="http://$1">$2</a>';
|
||
|
|
||
|
$pattern[] = '#\\[url\\](?:http://)?([a-zA-Z0-9_/.%*+~,\\#-]+)\\[/url\\]#u';
|
||
|
$replace[] = '<a href="http://$1">$1</a>';
|
||
|
|
||
|
$pattern[] = '#\\[cite\\](.+?)\\[/cite\\]#u';
|
||
|
$replace[] = '<cite>$1</cite>';
|
||
|
|
||
|
$pattern[] = '#\\[u\\](.+?)\\[/u\\]#u';
|
||
|
$replace[] = '<ins>$1</ins>';
|
||
|
|
||
|
$pattern[] = '#\\[i\\](.+?)\\[/i\\]#u';
|
||
|
$replace[] = '<em>$1</em>';
|
||
|
|
||
|
$pattern[] = '#\\[b\\](.+?)\\[/b\\]#u';
|
||
|
$replace[] = '<strong>$1</strong>';
|
||
|
|
||
|
foreach($config['smiley'] as $keys => $values)
|
||
|
{
|
||
|
$pattern[] = '#'.preg_quote($values).'#u';
|
||
|
$replace[] = '<img src="'.$config['smiley_dir'].'/'.$keys.'.gif" alt="'.$keys.'" />';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$pattern = array_reverse($pattern);
|
||
|
$replace = array_reverse($replace);
|
||
|
|
||
|
$var = preg_replace($pattern,$replace,$var);
|
||
|
return $var;
|
||
|
}
|
||
|
|
||
|
|
||
|
define('SMARTY_DIR',_FCORE.'templates/libs/');
|
||
|
|
||
|
require_once(_FCORE."access.php");
|
||
|
|
||
|
require_once(SMARTY_DIR."Smarty.class.php");
|
||
|
|
||
|
require_once(_FCORE."bdd.class.php");
|
||
|
|
||
|
require_once(_FCORE."session.class.php");
|
||
|
|
||
|
header("Content-Type: text/html;charset=utf-8");
|
||
|
|
||
|
?>
|