<? // WR-Guest v 2.0.1 //  28.03.11 г.  //  Miha-ingener@yandex.ru

error_reporting (E_ALL);

include "data/config.php";

// структура файла guest.dat - RN|TIMESTAMP|1|192.168.1.2|NAME|EMAIL|WWW|ADDPOLE|MSG|ADMINTEXT|REZERVED1|REZERVED2|REZERVED3|

$skey="598562"; // !!! Секретный ключ. 
                // Поменяйте на свой и фиг кто вскроет админку :-)
                // !!! ПОСЛЕ СМЕНЫ - пароль админа становится ошибочным!
                // для получения нового пароля разкоменируйте строку № 65
                // вставьте полученный код в config.php а переменную $password

// Авторизация
$adminname="1"; // имя администратора
$adminpass=$password;

// Выбран ВЫХОД - очищаем куки
if(isset($_GET['event'])) { if ($_GET['event']=="clearcooke") { setcookie("gbcookies","",time()-3600); Header("Location: index.php"); exit; } }


function replacer ($text) { // ФУНКЦИЯ очистки кода
$text=str_replace("&#032;",' ',$text);
$text=str_replace(">",'&gt;',$text);
$text=str_replace("<",'&lt;',$text);
$text=str_replace("\"",'&quot;',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'&#036;',$text);
$text=preg_replace("/\r/",'',$text);
$text=preg_replace("/\\\/",'&#092;',$text);
// если magic_quotes включена - чистим везде СЛЭШи в этих случаях: одиночные (') и двойные кавычки ("), обратный слеш (\)
if (get_magic_quotes_gpc()) { $text=str_replace("&#092;&quot;",'&quot;',$text); $text=str_replace("&#092;'",'\'',$text); $text=str_replace("&#092;&#092;",'&#092;',$text); }
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'<p> ',$text);
$text=str_replace("\n",'<br> ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace('   ',' ',$text);
return $text; }


if (isset($_COOKIE['gbcookies'])) { // Сверяем имя/пароль из КУКИ с заданным в конфиг файле
 $text=$_COOKIE['gbcookies'];
$text=trim($text); // Вырезает ПРОБЕЛьные символы 
if (strlen($text)>60) exit("Попытка взлома - куки сильно большие");
$text=replacer($text);
$exd=explode("|",$text); $name1=$exd[0]; $pass1=$exd[1];
if ($name1!=$adminname or $pass1!=$adminpass) 
{sleep(1); setcookie("gbcookies", "0", time()-3600); Header("Location: admin.php"); exit;} // убаваем НЕВЕРНУЮ КУКУ!!!

} else { // ЕСЛИ ваще нету КУКИ

sleep(1); // мелкая защита от БОТОВ. Человеку 2 секунды не время - а прога по подбору ключа - будет работать долго

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) {print"$back Вы не ввели имя или пароль!"; exit;}
$text=replacer($text);
$exd=explode("|",$text); $name=$exd[0]; $pass=$exd[1];

//$qq=md5("$pass+$skey"); print"$qq"; exit; // РАЗБЛОКИРУЙТЕ для получения MD5 своего пароля!

// Сверяем введённое имя/пароль с заданным в конфиг файле
if ($name==$adminname & md5("$pass+$skey")==$adminpass) 
{$tektime=time(); $gbcookies="$adminname|$adminpass|$tektime|";
setcookie("gbcookies", $gbcookies, time()+18000); Header("Location: admin.php"); exit;}
else {print "$back Ваш данные <B>ОШИБОЧНЫ</B>!</center>"; exit;}

} else { // если нету данных, то выводим ФОРМУ ввода пароля

echo "<html><head><META HTTP-EQUIV='Pragma' CONTENT='no-cache'><META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'><META content='text/html; charset=windows-1251' http-equiv=Content-Type><link rel=stylesheet type='text/css' href='$skin/style.css'></head><body>
<BR><BR><BR><center>
<form action='admin.php' method=POST name=pswrd>
Введите пароль: <BR>
<input type=password style='WIDTH: 120px; height:20px;' name=pass><BR>
<input type=hidden size=17 name=name value=\"$adminname\">
<input type=submit style='WIDTH: 120px; height:20px;' value='Войти'>
<SCRIPT language=JavaScript>document.pswrd.pass.focus();</SCRIPT><BR><BR><BR>";
print "<BR><BR><center><small>Powered by <a href='http://www.wr-script.ru/'>WR-Guest</a> &copy; 2.0</small></body></html>";
exit;}

} // АВТОРИЗАЦИЯ ПРОЙДЕНА!

$gbc=$_COOKIE['gbcookies']; $gbc=explode("|", $gbc); $gbname=$gbc[0];$gbpass=$gbc[1];$gbtime=$gbc[2];




// Блок УДАЛЕНИЯ выбранного сообщения
if (isset($_GET['id'])) { $page=$_GET['page']; $type=$_GET['type'];
if ($type==1) {$basa="data/guest.dat"; $addinfo="page=$page";} else {$basa="data/guest-moder.dat"; $addinfo="moderation&page=$page";}
$file=file($basa); $itogo=count($file)-1;
if ($msginout==1) {$id=$itogo-$_GET['id'];} else {$id=$itogo-$_GET['id']+2;}
if ($itogo<1 and $type==1) exit("$back. Нужно оставить хотябы одно сообщение!");

$fp=fopen($basa,"w");
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$id) unset($file[$i]); }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
//@chmod($basa, 0644);
Header("Location: admin.php?$addinfo"); exit; }




// Блок МОДЕРИРОВАНИя (сообщение одобрено, пишем в базу)
if (isset($_GET['add'])) { $page=$_GET['page'];
$basa1="data/guest-moder.dat"; $basa2="data/guest.dat";
$file=file($basa1); $itogo=count($file)-1;
if ($msginout==1) $id=$itogo-$_GET['add']; else $id=$itogo-$_GET['add']+2;
$record=$file[$id];
$fp=fopen($basa1,"w"); //стираем запись
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$id) unset($file[$i]); }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);

$fp=fopen($basa2,"a+"); // пишем строку в центральную базу
flock ($fp,LOCK_EX);
fputs($fp,"$record");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
Header("Location: admin.php?moderation"); exit; }



// Добавление IP-юзера в БАН
if (isset($_GET['badip']))  {
if (isset($_POST['ip'])) {$ip=$_POST['ip']; $badtext=$_POST['text'];}
if (isset($_GET['ip_get'])) {$ip=$_GET['ip_get']; $badtext="За добавление нежелательных сообщений на форум! ЗА СПАМ!!!";}
if (strlen($ip)<8) exit("Введите IP по формату X.X.X.X, где Х - число от 1 до 255! Сейчас запрос пуст или IP НЕ указан!");
$text="$ip|$badtext|"; $text=stripslashes($text); $text=htmlspecialchars($text); $text=str_replace("\r\n", "<br>", $text);
$fp=fopen("data/bad_ip.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
Header("Location: admin.php?event=blockip"); exit; }



// Удаления юзера из БАНА
if (isset($_GET['delip']))  { $xd=$_GET['delip'];
$file=file("data/bad_ip.dat"); $dt=explode("|",$file[$xd]); 
$fp=fopen("data/bad_ip.dat","w");
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$xd) unset($file[$i]); }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
Header("Location: admin.php?event=blockip"); exit; }





if (isset($_GET['event'])) { if ($_GET['event']=="blockip") { // - БЛОКИРОВКА по IP

$itogo=0;
if (is_file("data/bad_ip.dat")) { $lines=file("data/bad_ip.dat"); $i=count($lines); $itogo=$i;
if ($i>0) {

echo'<table width=100% border=0 cellpadding=1 cellspacing=0><TR><TD>
<table border=0 width=100% cellpadding=2 cellspacing=1 class=forumline><tr> 
<th class=thCornerL width=50 height=25 nowrap=nowrap>.X.</th>
<th class=thCornerL width=150>IP</th>
<th class=thCornerL >Формулировка</th>
</tr>';

do {$i--; $idt=explode("|", $lines[$i]);
   print"<TR bgcolor=#F7F7F7><td width=10 align=center><table><tr><td width=10 bgcolor=#FF2244><B><a href='admin.php?delip=$i'>.X.</a></B></td></tr></table></td><td>$idt[0]</td><td>$idt[1]</td></tr>";
} while($i > "0");
} else print"<br><br><H2 align=center>Заблокированные IP-адреса отсутствуют</H2><br>";
} else print"<br><br><H2 align=center>Заблокированные IP-адреса отсутствуют</H2><br>";
print"</table><br><CENTER><form action='admin.php?badip' method=POST>
Добавь IP НЕдруга! &nbsp; <input type=text style='FONT-SIZE: 14px; WIDTH: 110px' maxlength=15 name=ip> Формулировка: <input type=text style='FONT-SIZE: 14px; WIDTH: 200px' maxlength=50 name=text> 
<input type=submit value=' добавить '></form><br><br>*вводите IP аккуратно, не ставьте лишних ноликов и всякий пробелов.
<br><BR>Всего заБАНено пользователей - <B>$itogo</B><BR><BR></td></tr></table>"; exit;}}




if (isset($_GET['event'])) {

if ($_GET['event']=="add") { // if ($event =="add")

if (isset($_POST['name'])) $name=$_POST['name']; else $name="";
if (isset($_POST['msg'])) $msg=$_POST['msg']; else $msg="";
if (isset($_POST['email'])) $email=$_POST['email']; else $email="";
if (isset($_POST['page'])) $page=$_POST['page']; else $page=1;
if (isset($_POST['www'])) $www=$_POST['www']; else $www="";
if (isset($_POST['addpole'])) $addpole=$_POST['addpole']; else $addpole="";
if (isset($_POST['admintext'])) $admintext=$_POST['admintext']; else $admintext="";
if (isset($_POST['rn'])) $rn=$_POST['rn']; else $rn="";
if (isset($_POST['ip'])) $ip=$_POST['ip']; else $ip="";
if (isset($_POST['timestamp'])) $timestamp=$_POST['timestamp']; else $timestamp="";

if (isset($_POST['rezerved1'])) $rezerved1=$_POST['rezerved1']; else $rezerved1="";
if (isset($_POST['rezerved2'])) $rezerved2=$_POST['rezerved2']; else $rezerved2="";
if (isset($_POST['rezerved3'])) $rezerved3=$_POST['rezerved3']; else $rezerved3="";

if ($name=="" || strlen($name) > $maxname) exit("$back вы не ввели имя, или вввели слишком длинное имя!</B></center>");
if ($msg=="" || strlen($msg) > $maxmsg) exit("$back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>");

// обрезаем лишние символы в емайле и сообщении
$email=substr($email,0,30);
$msg=stripslashes($msg);
$msg=htmlspecialchars($msg);
$msg=str_replace("|","I",$msg);
$msg=str_replace("\r\n","<br>",$msg);


// если выбрано - редактирование
if (isset($_GET['rd'])) { $rd=$_GET['rd']; // $rd - номер РЕДАКТИРУЕМОЙ ячейки

// производим запись данных в файл по шаблону: ключ|штамп_времени|1|IP|имя|емайл|www-адрес|доп_поле|собщение|ответ_админа|резервное_поле1|резервное_поле2|резервное_поле3|
$text="$rn|$timestamp|1|$ip|$name|$email|$www|$addpole|$msg|$admintext|$rezerved1|$rezerved2|$rezerved3|"; $text=replacer($text);

$file=file("data/guest.dat");
$fp=fopen("data/guest.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА
for ($i=0;$i< sizeof($file);$i++) {if ($rd!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$text\r\n");}}
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
//@chmod("data/guest.dat", 0644);
}


else {
$today=mktime(); // определяем текущее время
$ip=$_SERVER['REMOTE_ADDR']; // определяем IP юзера

$text="$rn|$today|1|$ip|$name|$email|$www|$addpole|$msg|$admintext|$rezerved1|$rezerved2|$rezerved3|"; $text=replacer($text);

$fp=fopen("data/guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
//@chmod("data/guest.dat", 0644);
}

Header("Location: admin.php?page=$page"); exit; }




if ($_GET['event']=="skin")  {

if ($sendmail==TRUE) {$s1="checked"; $s2="";} else {$s2="checked"; $s1="";}
if ($antiflud==TRUE) {$af1="checked"; $af2="";} else {$af2="checked"; $af1="";}
if ($liteurl==TRUE) {$lu1="checked"; $lu2="";} else {$lu2="checked"; $lu1="";}
if ($smile==TRUE) {$sm1="checked"; $sm2="";} else {$sm2="checked"; $sm1="";}
if ($undermoder==TRUE) {$um1="checked"; $um2="";} else {$um2="checked"; $um1="";}

$reclama=file_get_contents("data/top.html"); // считываем рекламный блок top.html

print "<html><head><META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\"><META HTTP-EQUIV=\"Cache-Control\" CONTENT=\"no-cache\"><META content='text/html; charset=windows-1251' http-equiv=Content-Type><link rel=stylesheet type='text/css' href='$skin/style.css'></head><body><BR><BR><BR><center>

<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='$skin/1.gif' width=14 height=12 border=0></TD><TD width='98%' background='$skin/2.gif'></TD><TD width='1%'><IMG src='$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='$skin/4.gif'></TD>
<TD><table width=100%><TR>
<TD><B>Сегодня <b>$date</b></TD>
<TD align=center><B><a href=admin.php?event=skin>Конфигурирование</a></TD>
<TD align=center><B><a href='admin.php'>Главная админки</a></div></B>
<TD align=center><B><a href='admin.php?event=clearcooke'>Вернуться на главную</a></div></B>
</TD></TR>
<TR><TD colspan=4><hr size=-1 width=100%></TD></TR></TABLE>

<table width=100%><TR><TD>
<center><B><font size=+1>Конфигурирование</font></b>

<form action=admin.php?event=config method=POST name=REPLIER>
<table>
<tr><td>Имя скрипта</td><td><input type=text value='$gname' name=gname size=70></tr></td>
<tr><td>Текст приветствия</td><td><textarea cols=70 rows=4 size=500 name=maintext>$maintext</textarea></tr></td>
<tr><td>Рекламный блок</td><td><textarea cols=70 rows=8 size=500 name=reklama>$reclama</textarea></tr></td>
<tr><td>Ссылка на главную сайта</td><td><input type=text value='$mainpage' name=mainpage size=70></td></tr>
<tr><td>Емайл админа / отсылать сообщения</td><td><input type=text value='$adminemail' name=adminemail size=30>&nbsp;&nbsp;&nbsp;&nbsp; <input type=radio name=sendmail value=\"1\"$s1/> да&nbsp;&nbsp; <input type=radio name=sendmail value=\"0\"$s2/> нет</tr></td></tr></td>
<tr><td>Пароль админа *</td><td><input name=password type=hidden value='$password'><input type=text value='скрыт' name=newpassword size=15> (зашифрован) * используйте только буквы и/или цифры!&nbsp;&nbsp;</td></tr>

<tr><td>Включить <B>МОДЕРИРОВАНИЕ</B> сообщений?</td><td><input type=radio name=undermoder value=\"1\"$um1/> да&nbsp;&nbsp; <input type=radio name=undermoder value=\"0\"$um2/> нет</tr></td></tr></td>
<tr><td>Задействовать функцию <B>АНТИСПАМ</B>?</td><td><select class=input name=antispam>
<option value=\"$antispam\">Не менять</option>
<option value='0'>Нет, отключить</option>
<option value='2'>Да - Матоперации</option>
<option value='3'>Да - Загадки</option>
<option value='4'>Да - Цифрозащита</option>
</select>&nbsp;&nbsp;&nbsp; Для Цифрозащиты: <input type=text value='$max_key' name=max_key size=4 maxlength=1> (от 1 до 9) цифр</tr></td>

<tr><td class=row1>Задействовать функцию <B>АНТИФЛУД</B>?</td><td class=row1><input type=radio name=antiflud value=\"1\"$af1/> да&nbsp;&nbsp; <input type=radio name=antiflud value=\"0\"$af2/> нет</tr></td>
<tr><td class=row1>Делать ссылки в тексте <B>активными</B>?</td><td class=row1><input type=radio name=liteurl value=\"1\"$lu1/> да&nbsp;&nbsp; <input type=radio name=liteurl value=\"0\"$lu2/> нет</tr></td>

<tr><td class=row1>Включить / отключить графические смайлы?</td><td class=row1><input type=radio name=smile value=\"1\"$sm1/> включить &nbsp;&nbsp; <input type=radio name=smile value=\"0\"$sm2/> отключить</td></tr>
<tr><td>Макс. длина имени</td><td><input type=text value='$maxname' name=maxname size=10></tr></td>
<tr><td>Макс. длина сообщения</td><td><input type=text value='$maxmsg' name=maxmsg size=10></tr></td>
<tr><td>Сообщений на страницу</td><td><input type=text value='$qq' name=qq size=10></tr></td>
<tr><td>Cледование сообщений</td><td><select class=input name=msginout><option value='$msginout'>Текущее</option><option value='1'>по убыванию</option><option value='0'>по возрастанию</option></select></tr></td>

<tr><td>Скин</td><td><select class=input name=skin>

<option value=\"$skin\">Текущий</option>
<option value='original' style='color: #000000; background: #FF0000'>Светло-красный</option>
<option value='black' style='color: #000000; background: #FFFFFF'>Чёрно-белый</option>
<option value='blue' style='color: #FFFFFF; background: #0086BF'>Тёмно-голубой</option>
<option value='korich' style='color: #FFFFFF; background: #968549'>Коричневый</option>

</select></nobr></tr></td>

<tr><td colspan=2><center><table><tr><td><input type=submit value='Сохранить конфигурацию'></form></td></tr></table>
</td></tr></table>

* Если хотите изменить пароль - сотрите слово <B>\"скрыт\"</B> и введите новый пароль.

</TD></TR></TABLE></TD>
<TD background='$skin/6.gif'>&nbsp;</TD>
</TR><TR><TD><IMG src='$skin/8.gif' width=14 height=12 border=0></TD><TD background='$skin/5.gif'></TD><TD><IMG src='$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
";
exit;
}



if ($_GET['event']=="config")  {

mt_srand(time()+(double)microtime()*1000000); $rand_key=mt_rand(1000,9999); // Генерируем случайное число для цифрозащиты

if (strlen($_POST['newpassword'])<1) {print"$back разрешается длина пароля МИНИМУМ 1 символ!";}
if ($_POST['newpassword']!="скрыт") {$pass=trim($_POST['newpassword']); $_POST['password']=md5("$pass+$skey");}

$configdata="<? // WR-Guest v 2.0.1 //  28.03.11 г.  //  Miha-ingener@yandex.ru\r\n".
"$"."gname=\"".$_POST['gname']."\"; // Имя гостевой книги отображается в теге TITLE и заголовке\r\n".
"$"."maintext=\"".$_POST['maintext']."\"; // Текст, выводящийся перед формой ввода сообщения\r\n".
"$"."mainpage=\"".$_POST['mainpage']."\"; // Ссылка на главную страницу\r\n".
"$"."adminemail=\"".$_POST['adminemail']."\"; // Емайл админа\r\n".
"$"."sendmail=\"".$_POST['sendmail']."\"; // отсылать сообщения на Емайл админу\r\n".
"$"."password=\"".$_POST['password']."\"; // Пароль админа\r\n".
"$"."undermoder=\"".$_POST['undermoder']."\";  // включить Модерирование сообщений? да/нет - 1/0\r\n".
"$"."antispam=\"".$_POST['antispam']."\"; // АНТИСПАМ вкл1/вкл2/вкл3/вкл4/выкл - 1/2/3/4/0\r\n".
"$"."antiflud=\"".$_POST['antiflud']."\"; // Функцию АНТИФЛУД вкл/выкл: 1/0\r\n".
"$"."max_key=\"".$_POST['max_key']."\"; // Кол-во символов в коде ЦИФРОЗАЩИТЫ\r\n".
"$"."rand_key=\"".$rand_key."\"; // Случайное число для цифрозащиты\r\n".
"$"."smile=\"".$_POST['smile']."\"; // Включить / отключить графические смайлы\r\n".
"$"."maxname=\"".$_POST['maxname']."\";  // Максимальное кол-во символов в имени\r\n".
"$"."maxmsg=\"".$_POST['maxmsg']."\"; // Максимальное кол-во символов в сообщении\r\n".
"$"."msginout=\"".$_POST['msginout']."\"; // порядок просмотра сообщений: возрастание/убывание - 1/0\r\n".
"$"."qq=\"".$_POST['qq']."\"; // кол-во отображаемых сообщений на каждой странице гостевой: 1-100\r\n".
"$"."skin=\"".$_POST['skin']."\";  // Скин\r\n".
"$"."liteurl=\"".$_POST['liteurl']."\";// Подсвечивать УРЛ? 1/0\r\n".
"$"."back=\"<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>\"; // Удобная строка\r\n".
"$"."s2=\"<img src='smile/biggrin.gif' border=0>\";  // Смайлики ;-)\r\n".
"$"."s1=\"<img src='smile/smile.gif' border=0>\";\r\n".
"$"."s3=\"<img src='smile/razz.gif' border=0>\";\r\n".
"$"."s4=\"<img src='smile/cool.gif' border=0>\";\r\n".
"$"."s5=\"<img src='smile/mad.gif' border=0>\";\r\n".
"$"."s6=\"<img src='smile/redface.gif' border=0>\";\r\n".
"$"."s7=\"<img src='smile/wink.gif' border=0>\";\r\n".
"$"."s8=\"<img src='smile/rolleyes.gif' border=0>\";\r\n".
"$"."s9=\"<img src='smile/confused.gif' border=0>\";\r\n".
"$"."s10=\"<img src='smile/eek.gif' border=0>\";\r\n".
"$"."s11=\"<img src='smile/cry.gif' border=0>\";\r\n".
"$"."s12=\"<font color=#ff0000><B>\";\r\n".
"$"."date=date(\"d.m.Y\"); // число.месяц.год\r\n".
"$"."time=date(\"H:i:s\"); // часы:минуты:секунды \r\n?>";

$file=file("data/config.php");
$fp=fopen("data/config.php","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА
fputs($fp,$configdata);
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);

// Записываем рекламный блок
$file=file("data/top.html");
$fp=fopen("data/top.html","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
fputs($fp,$_POST['reklama']);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
Header("Location: admin.php?event=skin"); exit; }

} // if isset['event']


else {

if (isset($_GET['page'])) $page=$_GET['page']; else $page="1";

$rlines=file("data/guest-moder.dat"); $ritogo=count($rlines);
if ($undermoder==TRUE) $addtext="</TR><TR><TD colspan=5><B>Модерирование включено</B>, поэтому перейдите в раздел 'НОВЫЕ сообщения' и промодерируйте сообщения.</td>"; else $addtext="";

print "<html><head>
<title>$gname</title>
<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<link rel=stylesheet type='text/css' href='$skin/style.css'>
<SCRIPT language=JavaScript>
function x () {return;}
function FocusText() {
    document.REPLIER.admintext.focus();
    document.REPLIER.admintext.select();
    return true; }
function DoSmilie(addSmilie) {
    var revisedmsgage;
    var currentmsgage = document.REPLIER.admintext.value;
    revisedmsgage = currentmsgage+addSmilie;
    document.REPLIER.admintext.value=revisedmsgage;
    document.REPLIER.admintext.focus();
    return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>
</head>
<body>
<center><a href=index.php><h3>$gname</h3></a>

<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='$skin/1.gif' width=14 height=12 border=0></TD><TD width='98%' background='$skin/2.gif'></TD><TD width='1%'><IMG src='$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='$skin/4.gif'></TD>
<TD>
<table width=100%><TR>
<TD><B>Сегодня <b>$date</b></TD>
<TD align=center><B><a href=admin.php?event=skin>Конфигурирование</a></TD>
<TD align=center><B><a href='admin.php'>Главная админки</a></B></td>
<TD align=center><B><a href='admin.php?moderation'>НОВЫЕ сообщения [$ritogo]</a></B></td>
<TD align=center><B><a href='admin.php?event=clearcooke'>Вернуться на главную</a></td>
$addtext</TD></TR></TABLE>
</TD>
<TD background='$skin/6.gif'>&nbsp;</TD>
</TR><TR><TD><IMG src='$skin/8.gif' width=14 height=12 border=0></TD><TD background='$skin/5.gif'></TD><TD><IMG src='$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>";


// ЕСЛИ запрошены новые сообщения, ожидающие модерирование, то подключаем базу с ними
if (isset($_GET['moderation'])) {$basetype=2; $base="data/guest-moder.dat";} else {$basetype=1; $base="data/guest.dat";}

if ((!isset($_GET['event'])) or (isset($_GET['event'])) & ($_GET['event']!="add"))  {
$lines=file($base);
$itogo=count($lines);
$maxi=$itogo-1;

if ($maxi>"-1") {

print "
<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='$skin/1.gif' width=14 height=12 border=0></TD><TD width='98%' background='$skin/2.gif'></TD><TD width='1%'><IMG src='$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='$skin/4.gif'></TD>
<TD><center><b><font size=+1>Всего сообщений в базе: <font color=#FF0000>$itogo</font>, добавь ещё!</font></b></center>
<center><table ><tr><td valign=top>
</td><td>
";  


// ищем сообщение для редактирования и выводим его в форму
if (isset($_GET['rd']))  {
if ($msginout==1) {$rd=$maxi-$_GET['rd'];} else {$rd=$maxi-$_GET['rd']+2;}

$dt=explode("|",$lines[$rd]);
$dt[0]=str_replace("<br>", "\r\n", $dt[0]);

print "
<form action=admin.php?event=add&rd=$rd method=POST name=REPLIER>
Имя: <input type=text value='$dt[4]' name=name size=56><br><br>
Емайл: <input type=text value='$dt[5]' name=email size=54><br><br>
Сайт: <input type=text value='$dt[6]' name=www size=55><br><br>
Доп.поле: <input type=text value='$dt[7]' name=addpole size=51><br><br>
Резервное поле 1: <input type=text value='$dt[10]' name=rezerved1 size=51><br><br>
Резервное поле 2: <input type=text value='$dt[11]' name=rezerved2 size=51><br><br>
Резервное поле 3: <input type=text value='$dt[12]' name=rezerved3 size=51><br><br>

Сообщение:<br><textarea cols=80 rows=7 size=500 name=msg>$dt[8]</textarea><br><br>
Ответ администратора:<br><textarea cols=80 rows=7 size=500 name=admintext>$dt[9]</textarea>
<input type=hidden name=page value='$page'>
<input type=hidden name=rn value='$dt[0]'>
<input type=hidden name=ip value='$dt[3]'>
<input type=hidden name=timestamp value='$dt[1]'>
<br>
<A href='javascript:%20x()' onclick=\"DoSmilie(' :-))');\">$s1</a>
<a href='javascript:%20x()' onclick=\"DoSmilie(' :-)');\">$s2</a>
<a href='javascript:%20x()' onclick=\"DoSmilie(' :-P');\">$s3</a>
<a href='javascript:%20x()' onclick=\"DoSmilie(' 8-)');\">$s4</a>
<a href='javascript:%20x()' onclick=\"DoSmilie(' :-(');\">$s5</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' :-O');\">$s6</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' ;-)');\">$s7</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(':roll:');\">$s8</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(':rf:');\">$s9</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' 8-(');\">$s10</a>
<A href='javascript:%20x()' onclick=\"DoSmilie(' `-(');\">$s11</a>
<A href='javascript:%20x()' onclick=\"DoSmilie('[RB] [/RB]');\"><font color=red><B>RB</b></font></a><br>
<SCRIPT language=JavaScript>document.REPLIER.admintext.focus();</SCRIPT><br>
<center><input type=submit value='Сохранить под этим же номером'></form>

";
}
else 
{
print "<form action=admin.php?event=add method=post name=REPLIER>
<input type=text value='' name=name size=30>&nbsp;
<input type=text value='' name=email size=26><br> 
<textarea cols=59 rows=10 size=500 name=msg></textarea>
<SCRIPT language=JavaScript>document.REPLIER.msg.focus();</SCRIPT>
<center><input type=submit value='Добавить'></form>";
}
print"</tr></td></table>

</TD><TD background='$skin/6.gif'>&nbsp;</TD>
</TR><TR><TD><IMG src='$skin/8.gif' width=14 height=12 border=0></TD><TD background='$skin/5.gif'></TD><TD><IMG src='$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>";



// Выводим qq сообщений на текущей странице

if ($page=="0") $page="1"; else $page=abs($page);

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) $page=$maxpage;

if ($msginout=="1") 
{ $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
  $lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else 
{ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
  $lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }


  // формируем переменную $pageinfo - со СПИСКОМ СТРАНИЦ
$pageinfo=""; $addpage=""; $maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) $page=$maxpage;
$pageinfo.="<div style='padding:6px;' class=pgbutt>Страницы: &nbsp;";
if ($page>3 and $maxpage>5) $pageinfo.="<a href='admin.php'>1</a> ... ";
$f1=$page+2; $f2=abs($page-2); if ($f2=="0") $f2=1; if ($page>=$maxpage-1) $f1=$maxpage;
if ($maxpage<=5) {$f1=$maxpage; $f2=1;}
for($i=$f2; $i<=$f1; $i++) { if ($page==$i) $pageinfo.="<B>$i</B> &nbsp;"; 
else {if ($i!=1) $addpage="?page=$i"; $pageinfo.="<a href=admin.php$addpage>$i</a> &nbsp;";} }
if ($page<=$maxpage-3 and $maxpage>5) $pageinfo.="... <a href=admin.php?page=$maxpage>$maxpage</a>";
$pageinfo.='</div>';

print"$pageinfo";

do { $dt = explode("|", $lines[$fm]);
if ($msginout=="1") {$fm++;} else {$fm--;}
$num=$itogo-$fm; $pnum=$num-1;
// заменяем текстовые смайлики на графические
$dt[0]=str_replace(":-))",$s1,$dt[0]);
$dt[0]=str_replace(":-)",$s2,$dt[0]);
$dt[0]=str_replace(":-P",$s3,$dt[0]);
$dt[0]=str_replace("8-)",$s4,$dt[0]);
$dt[0]=str_replace(":-(",$s5,$dt[0]);
$dt[0]=str_replace(":-O",$s6,$dt[0]);
$dt[0]=str_replace(";-)",$s7,$dt[0]);
$dt[0]=str_replace(":roll:",$s8,$dt[0]);
$dt[0]=str_replace(":rf:",$s9,$dt[0]);
$dt[0]=str_replace("8-(",$s10,$dt[0]);
$dt[0]=str_replace("`-(",$s11,$dt[0]);
$dt[0]=str_replace("[RB]","<B><font color=red>", $dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>", $dt[0]);
$dt[0]=str_replace("&amp;#124;","&#124;",$dt[0]);
$dt[0]=preg_replace("#(\[url=([^\]]+)\](.*?)\[/url\])|(http://(www.)?[0-9a-z\.-]+\.[a-z]{2,6}[0-9a-z/\?=&\._-]*)#","<a href=\"$4\" >$4</a> ",$dt[0]);

if (isset($_GET['moderation'])) $knopka="<a href='admin.php?add=$num&page=$page' title='ОДОБРИТЬ'>.+.</a>";
else $knopka="<a href='admin.php?rd=$num&type=$basetype&page=$page'>.Редактировать / Ответить.</a>";

$dt[1]=date("d.m.Y : H:i:s",$dt[1]);

print"
<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='$skin/1.gif' width=14 height=12 border=0></TD><TD width='98%' background='$skin/2.gif'></TD><TD width='1%'><IMG src='$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='$skin/4.gif'></TD>
<TD><B><a href='mailto:$dt[5]'>$dt[4]</a> ($dt[1])</B>, IP: $dt[3] <a href='admin.php?badip&ip_get=$dt[3]'><B><font color=red>БАН по IP</font></B></a>

<UL><em>$dt[8]</em><br><br>";

if (strlen($dt[9])>1) print"<fieldset align=center style='width:80%; color:#0080C0'><legend><B>Отвечает администратор:</B></legend>$dt[9]</fieldset>";

print"
<div align=right><table><TR><TD bgcolor=#22FF44><B>$knopka</TD><TD>&nbsp;&nbsp;</TD><TD bgcolor=#FF2244><a href='admin.php?id=$num&type=$basetype&page=$page'>.X.</a></B></TD><TD> &nbsp;&nbsp; $pnum</TD></TR></TABLE></div>
</TD>
<TD background='$skin/6.gif'>&nbsp;</TD>
</TR><TR><TD><IMG src='$skin/8.gif' width=14 height=12 border=0></TD><TD background='$skin/5.gif'></TD><TD><IMG src='$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
";



if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;}
} while($whm < $whe);
print "</td></tr></table>
$pageinfo (дробление = <B>$qq</B> сообщений на страницу)"; // выводим СПИСОК СТРАНИЦ ВНИЗУ

} else print"<br><br>Гостевая книга пуста. Добавьте сообщение. <br>"; // if $maxi > "-1"
}
}

// [0]тестовое сообщение|[1]Михаил|[2]емайл|[3]19.08.2010|[4]09:37:12|[5]1282181833|

?>
<BR><BR><center><font size=-2>Powered by <a href='http://www.wr-script.ru/'>WR-Guest</a> &copy; 2.0</font></body></html>

