View file chats/anekdot/admin.php

File size: 15.25Kb
<? // 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("\r\n","<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,"$text\r\n");}}
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,"$text\r\n");
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>&nbsp;&nbsp;&nbsp;&nbsp;<input type=radio name=sendmail value=\"1\"$m1> да&nbsp; <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> вкл&nbsp; <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.ru\r\n".
"$"."fname=\"".$_POST['fname']."\"; // Имя скрипта отображается в теге TITLE и заголовке админки\r\n".
"$"."adminemail=\"".$_POST['adminemail']."\"; // Емайл админа\r\n".
"$"."sendmail=\"".$_POST['sendmail']."\"; // отсылать сообщения на Емайл админу\r\n".
"$"."password=\"".$_POST['password']."\"; // Пароль админа\r\n".
"$"."maxname=\"".$_POST['maxname']."\";  // Максимальное кол-во символов в имени\r\n".
"$"."maxmsg=\"".$_POST['maxmsg']."\"; // Максимальное количество символов в анекдоте\r\n".
"$"."qq=\"".$_POST['qq']."\"; // кол-во отображаемых анекдотов на каждой странице (1 - 100)\r\n".
"$"."qqadmin=\"".$_POST['qqadmin']."\"; // кол-во отображаемых анекдотов на странице администратора (1 - 100)\r\n".
"$"."page=\"1\";\r\n".
"$"."podpis=\"".$_POST['podpis']."\"; // 1 - Использовать подпись, 0 - не использовать\r\n".
"$"."wdth=\"".$_POST['wdth']."\"; // ширина таблицы\r\r\n".
"$"."heght=\"".$_POST['heght']."\"; // высота таблицы\r\r\n".
"$"."acolor=\"".$_POST['acolor']."\"; // Цвет фона таблицы, в которой выводится анекдот\r\r\n".
"$"."brd=\"".$_POST['brd']."\"; // Включить бордюр анекдота. (ТОЛЬКО 1 или 0)\r\r\n".
"$"."brdcolor=\"".$_POST['brdcolor']."\"; // Цвет бордюра указать обязательно.\r\r\n".
"$"."fontcolor=\"".$_POST['fontcolor']."\"; // Цвет текста.\r\r\n".
"$"."datafile=\"./anekdots.dat\"; // имя файла базы данных\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".
"$"."date=date(\"d.m.Y\"); // число.месяц.год\r\n".
"$"."time=date(\"H:i:s\"); // часы:минуты:секунды \r\n?>";

$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>", "\r\n", $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>&nbsp;
<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>&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></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>&nbsp;&nbsp;</TD><TD bgcolor=#FF2244><a href='admin.php?pswrd=$password&id=$num&page=$page'>.X.</a></B></TD><TD> &nbsp;&nbsp; $num2
</TD></TR></TABLE>
</div>
</TD>
</TR></TBODY></TABLE><BR>";

$whm=$lm; $whe=$fm;
} while($whm < $whe);
print "</td></tr></table>";


// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы:&nbsp; ";
for($i=0; $i<$maxi+1;) {$ip=$i/$qqadmin+1;
if ($page==$ip) {print "<B>$ip</B> &nbsp;";} else {print "<a href='admin.php?pswrd=$password&page=$ip'>$ip</a> &nbsp;";}
$i=$i+$qqadmin;} print "(дробление = <B>$qqadmin</B>)";
}

}


}


}
print "<BR><BR><center><font size=-2>Powered by <a href='http://www.waufon.ru/'>WAUFON</a> &copy; 1.2</font></body></html>";
?>