Файл: chats/anekdot/admin.php
Строк: 368
<? // WR-Anekdot v 1.2 // 27.12.05 г. // Miha-ingener@yandex.ru
error_reporting (E_ALL);
include "config.php";
if (!isset($_GET['pswrd'])) // Авторизация
{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='style.css'></head><body>
<BR><BR><BR><center>
<form action='admin.php' method=GET name=pass>Введите пароль: <font color="red">admin</font> <BR>по умалчиванию<BR><input type=password size=17 name=pswrd><BR><input type=submit value='Войти'>
<SCRIPT language=JavaScript>document.pass.pswrd.focus();</SCRIPT><BR><BR><BR>";}
else {if ($_GET['pswrd']=="$password")
{ // Авторизация пройдена успешно
$shapka="<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><style>
BODY {BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 12px; BACKGROUND-COLOR: #ffffff; left: 0px; top: 0px; }
TD {BORDER-RIGHT: #666666 0px solid; BORDER-TOP: #666666 0px solid; FONT-WEIGHT: 500; FONT-SIZE: 11px; BORDER-LEFT: #666666 0px solid; COLOR: #000000; BORDER-BOTTOM: #666666 0px solid; TEXT-DECORATION: none}
IMG {BORDER-RIGHT:0px; BORDER-TOP:0px; BORDER-LEFT:0px; BORDER-BOTTOM:0px}
A:link {COLOR:#CC0000; TEXT-DECORATION:none}
A:visited {COLOR:#CC0000; TEXT-DECORATION:none}
A:active {COLOR:#666666; TEXT-DECORATION:none}
A:hover {COLOR:#666666; TEXT-DECORATION:underline}
H3 {font-weight : bold; font-size : 18px;}
input, textarea {font-family: Verdana; font-size: 12px; text-decoration: none; color: #000000; cursor: default; background-color: #FFFFFF; border-style: solid; border-width: 1px; border-color: #000000;}
</style></head><body>
<BR><center><a href=index.php><h3>$fname</h3></a>
<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD><table width=100%><TR>
<TD><B>Сегодня <b>$date</b></TD>
<TD align=center><B><a href=admin.php?pswrd=$password&event=skin>Конфигурирование</a></TD>
<TD align=center><B><a href='admin.php?pswrd=$password'>Главная админки</a></div></B>
<TD align=center><B><a href='index.php'>Вернуться на главную</a></div></B>
</TD></TR>
<TR><TD colspan=4><hr size=-1 width=100%></TD></TR></TABLE>";
// Блок УДАЛЕНИЯ выбранного сообщения
if (isset($_GET['id'])) { $page=$_GET['page'];
$file=file($datafile); $itogo=count($file)-1;
$id=$itogo-$_GET['id'];
//$id=$itogo-$_GET['id']+2;
if ($itogo<1) {print"$back. Нужно оставить хотябы одно сообщение!"; exit;}
$fp=fopen($datafile,"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);
Header("Location: admin.php?pswrd=$password&page=$page"); exit; }
if (isset($_GET['event'])) {
if ($_GET['event']=="add") { // if ($event =="add")
$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];
if (isset($_POST['page'])) {$page=$_POST['page'];} else {$page=1;}
if ($name=="" || strlen($name) > $maxname) {print "$back вы не ввели имя, или вввели слишком длинное имя!</B></center>"; exit;}
if ($msg=="" || strlen($msg) > $maxmsg) {print "$back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
// обрезаем лишние символы в емайле и сообщении
$email=substr($email,0,30);
$msg=stripslashes($msg);
$msg=htmlspecialchars($msg);
$msg=str_replace("|","I",$msg);
$msg=str_replace("rn","<br>",$msg);
// если выбрано - редактирование
if (isset($_GET['rd'])) { $rd=$_GET['rd'];
$fdate=$_POST['fdate'];$ftime=$_POST['ftime']; //$rd - номер РЕДАКТИРУЕМОЙ ячейки
$text="$msg|$name|$email|$fdate|$ftime|";
$file=file($datafile);
$fp=fopen($datafile,"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,"$textrn");}}
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$fp", 0644);
}
else {
$text="$msg|$name|$email|$date|$time|";
$fp=fopen($datafile,"a+");
flock ($fp,LOCK_EX);
fputs($fp,"$textrn");
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$fp", 0644);
}
Header("Location: admin.php?pswrd=$password&page=$page"); exit; }
if ($_GET['event']=="skin") {
if ($sendmail=="1") {$m1="checked"; $m2="";} else {$m2="checked"; $m1="";}
if ($brd=="1") {$mb1="checked"; $mb2="";} else {$mb2="checked"; $mb1="";}
print "$shapka <table width=100%><TR><TD><center><B><font size=+1>Конфигурирование</font></b>
<form action=admin.php?pswrd=$password&event=config method=POST name=REPLIER><table>
<tr><td>Имя скрипта</td><td><input type=text value='$fname' name=fname size=50></tr></td>
<tr><td>Емайл админа / отсылать сообщения</td><td><input type=text value='$adminemail' name=adminemail size=30> <input type=radio name=sendmail value="1"$m1> да <input type=radio name=sendmail value="0"$m2> нет</tr></td>
<tr><td>Пароль админа</td><td><input type=text value='$password' name=password size=15></tr></td>
<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>Сообщений на страницу в админке</td><td><input type=text value='$qqadmin' name=qqadmin size=10></tr></td>
<tr><td>Использовать подпись?</td><td><select class=input name=podpis><option value='$podpis'>Текущее</option><option value='1'>да</option><option value='0'>нет</option></select></tr></td>
<tr><td>Ширина / высота таблицы</td><td><input type=text value='$wdth' name=wdth size=10> <input type=text value='$heght' name=heght size=10></tr></td>
<tr><td>Цвет фона таблицы с анекдотом / бордюр вкл/выкл</td><td> <input type=text value='$acolor' name=acolor size=10> <input type=radio name=brd value="1"$mb1> вкл <input type=radio name=brd value="0"$mb2> выкл</tr></td></tr></td>
<tr><td>Цвет бордюра / текста анекдота</td><td><input type=text value='$brdcolor' name=brdcolor size=10> <input type=text value='$fontcolor' name=fontcolor size=10> </tr></td>
<tr><td colspan=2><center><table><tr><td><input type=submit value='Сохранить конфигурацию'></form></td></tr></table>
</td></tr></table>
</TD></TR></TABLE>
</TD></TR></TBODY></TABLE>";
exit; }
if ($_GET['event']=="config") {
$configdata="<? // WR-anekdot v. 1.2 // 27.12.05 г. // Miha-ingener@yandex.rurn".
"$"."fname="".$_POST['fname'].""; // Имя скрипта отображается в теге TITLE и заголовке админкиrn".
"$"."adminemail="".$_POST['adminemail'].""; // Емайл админаrn".
"$"."sendmail="".$_POST['sendmail'].""; // отсылать сообщения на Емайл админуrn".
"$"."password="".$_POST['password'].""; // Пароль админаrn".
"$"."maxname="".$_POST['maxname'].""; // Максимальное кол-во символов в имениrn".
"$"."maxmsg="".$_POST['maxmsg'].""; // Максимальное количество символов в анекдотеrn".
"$"."qq="".$_POST['qq'].""; // кол-во отображаемых анекдотов на каждой странице (1 - 100)rn".
"$"."qqadmin="".$_POST['qqadmin'].""; // кол-во отображаемых анекдотов на странице администратора (1 - 100)rn".
"$"."page="1";rn".
"$"."podpis="".$_POST['podpis'].""; // 1 - Использовать подпись, 0 - не использоватьrn".
"$"."wdth="".$_POST['wdth'].""; // ширина таблицыrrn".
"$"."heght="".$_POST['heght'].""; // высота таблицыrrn".
"$"."acolor="".$_POST['acolor'].""; // Цвет фона таблицы, в которой выводится анекдотrrn".
"$"."brd="".$_POST['brd'].""; // Включить бордюр анекдота. (ТОЛЬКО 1 или 0)rrn".
"$"."brdcolor="".$_POST['brdcolor'].""; // Цвет бордюра указать обязательно.rrn".
"$"."fontcolor="".$_POST['fontcolor'].""; // Цвет текста.rrn".
"$"."datafile="./anekdots.dat"; // имя файла базы данныхrn".
"$"."back="<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>"; // Удобная строкаrn".
"$"."s2="<img src='smile/biggrin.gif' border=0>"; // Смайлики ;-)rn".
"$"."s1="<img src='smile/smile.gif' border=0>";rn".
"$"."s3="<img src='smile/razz.gif' border=0>";rn".
"$"."s4="<img src='smile/cool.gif' border=0>";rn".
"$"."s5="<img src='smile/mad.gif' border=0>";rn".
"$"."s6="<img src='smile/redface.gif' border=0>";rn".
"$"."s7="<img src='smile/wink.gif' border=0>";rn".
"$"."s8="<img src='smile/rolleyes.gif' border=0>";rn".
"$"."s9="<img src='smile/confused.gif' border=0>";rn".
"$"."s10="<img src='smile/eek.gif' border=0>";rn".
"$"."s11="<img src='smile/cry.gif' border=0>";rn".
"$"."date=date("d.m.Y"); // число.месяц.годrn".
"$"."time=date("H:i:s"); // часы:минуты:секунды rn?>";
$file=file("config.php");
$fp=fopen("config.php","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА
fputs($fp,$configdata);
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$fp", 0644);
Header("Location: admin.php?pswrd=$password&event=skin"); exit; }
} // if isset($event)
else {
if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}
print "$shapka";
if ((!isset($_GET['event'])) or (isset($_GET['event'])) & ($_GET['event']!="add")) {
$lines=file($datafile);
$itogo=count($lines);
$maxi=$itogo-1;
print "
<TABLE border=0 width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR>
<TD><center><b><font size=+1>Всего анекдотов в базе: <font color=#FF0000>$itogo</font>, добавь ещё!</font></b></center>
<center><table ><tr><td valign=top>
<B>Имя</B> и E-mail<BR>
<B>Сообщение</B>
<table width=90 height=70><tr><td valign=top>
<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>
</tr></td></table>
</td><td>";
// ищем сообщение для редактирования и выводим его в форму
if (isset($_GET['rd'])) { $rd=$maxi-$_GET['rd'];
$dt=explode("|",$lines[$rd]);
$dt[0]=str_replace("<br>", "rn", $dt[0]);
print "
<form action=admin.php?pswrd=$password&event=add&rd=$rd method=POST name=REPLIER>
<input type=text value='$dt[1]' name=name size=30>
<input type=text value='$dt[2]' name=email size=26><br>
<textarea cols=59 rows=10 size=500 name=msg>$dt[0]</textarea>
<input type=hidden name=fdate value='$dt[3]'>
<input type=hidden name=ftime value='$dt[4]'>
<input type=hidden name=page value='$page'>
<SCRIPT language=JavaScript>document.REPLIER.msg.focus();</SCRIPT>
<center><input type=submit value='Сохранить под этим же номером'></form>
";
}
else
{
print "<form action=admin.php?pswrd=$password&event=add method=post name=REPLIER>
<input type=text value='' name=name size=30>
<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></TR>
</TBODY></TABLE><BR>";
// Выводим qq сообщений на текущей странице
if ($page=="0") {$page="1";} else {$page=abs($page);}
$maxpage=ceil(($maxi+1)/$qqadmin); if ($page>$maxpage) {$page=$maxpage;}
$fm=$maxi-$qqadmin*($page-1); if ($fm<"0") {$fm=$qqadmin;}
$lm=$fm-$qqadmin; if ($lm<"0") {$lm="-1";}
do { $dt = explode("|", $lines[$fm]); $fm--;
$num=$itogo-$fm-2; $num2=$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]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\?[[:alnum:]?+&_=/%]*)?)?)", "<a href='\1' title='\1' target='_blank'>\1</a>", $dt[0]);
print"
<TABLE border=1 width=780 align=center cellPadding=0 cellSpacing=6><TBODY>
<TR><TD><B><a href='mailto:$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B><BR>
$dt[0]<BR>
<div align=right>
<table><TR><TD bgcolor=#22FF44>
<B><a href='admin.php?pswrd=$password&rd=$num&page=$page'>.P.</a></TD><TD> </TD><TD bgcolor=#FF2244><a href='admin.php?pswrd=$password&id=$num&page=$page'>.X.</a></B></TD><TD> $num2
</TD></TR></TABLE>
</div>
</TD>
</TR></TBODY></TABLE><BR>";
$whm=$lm; $whe=$fm;
} while($whm < $whe);
print "</td></tr></table>";
// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы: ";
for($i=0; $i<$maxi+1;) {$ip=$i/$qqadmin+1;
if ($page==$ip) {print "<B>$ip</B> ";} else {print "<a href='admin.php?pswrd=$password&page=$ip'>$ip</a> ";}
$i=$i+$qqadmin;} print "(дробление = <B>$qqadmin</B>)";
}
}
}
}
print "<BR><BR><center><font size=-2>Powered by <a href='http://www.waufon.ru/'>WAUFON</a> © 1.2</font></body></html>";
?>