// WR-forum Lite v 2.2 UTF-8 // 07.01.2019 г. // WR-Script.ru
error_reporting (E_ALL); //error_reporting(0);
ini_set('register_globals','off'); // Все скрипты написаны для этой настройки php
$podpis_pokaz=TRUE; // Показывать подпись участников ВСЕМ (включая не зарегистрированных и поисковиков)
include "data/config.php";
$skey="657567"; // Секретный ключ НЕ МЕНЯТЬ !!!
$adminpass=$password; // Авторизация
function replacer ($text) { // ФУНКЦИЯ очистки кода
$text=str_replace(" ",' ',$text);
$text=str_replace(">",'>',$text);
$text=str_replace("<",'<',$text);
$text=str_replace("\"",'"',$text);
$text=preg_replace("/\n\n/",'
',$text);
$text=preg_replace("/\n/",' ',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=preg_replace("/\\\/",'\',$text);
// если magic_quotes включена - чистим везде СЛЭШи в этих случаях: одиночные (') и двойные кавычки ("), обратный слеш (\)
if (get_magic_quotes_gpc()) { $text=str_replace("\"",'"',$text); $text=str_replace("\'",'\'',$text); $text=str_replace("\\",'\',$text); }
$text=str_replace("\r\n"," ",$text);
$text=str_replace("\n\n",'
',$text);
$text=str_replace("\n",' ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace(' ',' ',$text);
return $text; }
function unreplacer ($text) { // ФУНКЦИЯ замены спецсимволов конца строки на обычные
$text=str_replace("<br>"," ",$text);
$text=str_replace("|","|",$text);
return $text;}
function nospam() { global $max_key,$rand_key; // Функция АНТИСПАМ
if (array_key_exists("image", $_REQUEST)) { $num=replacer($_REQUEST["image"]);
for ($i=0; $i<10; $i++) {if (md5("$i+$rand_key")==$num) {imgwr($st,$i); die();}} }
$xkey=""; mt_srand(time()+(double)microtime()*1000000);
$dopkod=mktime(0,0,0,date("m"),date("d"),date("Y")); // доп.код: меняется каждые 24 часа
$stime=md5("$dopkod+$rand_key");// доп.код
echo'Защитный код: ';
for ($i=0; $i<$max_key; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$rand_key+$dopkod);
echo "\n";
$xkey=$xkey.$snum[$i];}
$xkey=md5("$xkey+$rand_key+$dopkod"); //число + ключ из data/config.php + код меняющийся кажые 24 часа
print"
";
return; }
// Выбран ВЫХОД - очищаем куки 11-11-18
if(isset($_GET['event'])) { if ($_GET['event']=="clearcooke") {
$url="http".(($_SERVER['SERVER_PORT']==443)?"s":"")."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $forum_url=str_replace('admin.php?event=clearcooke','',"$url");
setcookie("wrforumm","",time()-3600); Header("Location: $forum_url"); exit; } }
if (isset($_COOKIE['wrforumm'])) { // Сверяем имя/пароль из КУКИ с заданным в конфиг файле
$text=$_COOKIE['wrforumm'];
$text=trim($text); // Вырезает ПРОБЕЛьные символы
if (strlen($text)>60) exit("Попытка взлома - длина переменной куки сильно большая!");
$text=replacer($text);
$exd=explode("|",$text); $name1=$exd[0]; $pass1=$exd[1];
if (($name1!=$adminname and $name1!=$modername) or ($pass1!=$adminpass and $pass1!=$moderpass)) {sleep(1); setcookie("wrforumm", "0", time()-3600); Header("Location: admin.php"); exit;}
} else { // ЕСЛИ ваще нету КУКИ
if (isset($_POST['name']) & isset($_POST['pass'])) { // Если есть переменные из формы ввода пароля
$name=str_replace("|","I",$_POST['name']); $pass=str_replace("|","I",$_POST['pass']);
$text="$name|$pass|";
$text=trim($text); // Вырезает ПРОБЕЛьные символы
if (strlen($text)<4) exit("$back Вы не ввели имя или пароль!");
$text=replacer($text);
$exd=explode("|",$text); $name=$exd[0]; $pass=$exd[1];
//$msg_onpage=md5("$pass+$skey"); exit("$msg_onpage"); // РАЗБЛОКИРУЙТЕ для получения MD5 своего пароля!
//--А-Н-Т-И-С-П-А-М--проверка кода--
if ($antispam==TRUE) {
if (!isset($_POST['usernum']) or !isset($_POST['xkey']) or !isset($_POST['stime']) ) exit("данные из формы не поступили!");
$usernum=replacer($_POST['usernum']); $xkey=replacer($_POST['xkey']); $stime=replacer($_POST['stime']);
$dopkod=mktime(0,0,0,date("m"),date("d"),date("Y")); // доп.код. Меняется каждые 24 часа
$usertime=md5("$dopkod+$rand_key");// доп.код
$userkey=md5("$usernum+$rand_key+$dopkod");
if (($usertime!=$stime) or ($userkey!=$xkey)) exit("введён ОШИБОЧНЫЙ код!");}
// Сверяем введённое имя/пароль с заданным в конфиг файле и пишем в лог инфу
$tektime=time(); $verno="0";
if ($name==$adminname & md5("$pass+$skey")==$adminpass) $verno="1";
if ($name==$modername & md5("$pass+$skey")==$moderpass) $verno="1";
$fp=fopen("$datadir/adminlog.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$tektime|$verno|$name|0||\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
// присваиваются куки АДМИНИСТРАТОРУ
if ($name==$adminname & md5("$pass+$skey")==$adminpass) {$wrforumm="$adminname|$adminpass|$tektime|"; setcookie("wrforumm", $wrforumm, time()+18000); Header("Location: admin.php"); exit;}
// присваиваются куки МОДЕРАТОРУ
if ($name==$modername & md5("$pass+$skey")==$moderpass) {$wrforumm="$modername|$moderpass|$tektime|"; setcookie("wrforumm", $wrforumm, time()+18000); Header("Location: admin.php"); exit;}
exit("Ваши данные ОШИБОЧНЫ!");
} else { // если нету данных, то выводим ФОРМУ ввода пароля
// 11-11-2018 г. Новый блок авторизации
echo '