<?php
/*
Простая гостевая книга с админкой.
Для удаления сообщения в ответе нужно написать "#".
Поддерживает защиту от нескольких одинаковых добавлений и транслит
Автор: Denvas
*/
include_once("config.php");
include_once("function.php");
include_once("session.php");
include_once("shop.php");
include_once("design.php");
include_once("secure.php");
$codecounter="";
$auth=AuthAdmin();
InitDesign($design_name,$wapver);
head();
$code.=design("Гостевая книга".($auth?" (Админ)":""),"header");
$namefile=$path_download."/data_gb.txt";
$a=isset($_GET["a"])?$_GET["a"]:"";
if(strcmp($a,"new")==0){
$showform=1;
if(!empty($_POST["send"])){
$showform=0;
if(empty($_POST["name"])){$code.=design("Скажите свое имя","error");$showform=1;};
if(empty($_POST["message"])){$code.=design("Отсутствует сообщение","error");$showform=1;};
$data["name"]=$_POST["name"];
$data["message"]=UrlInText($_POST["message"]);
$gb=@file($namefile);
$stop=count($gb)-20;if($stop<=0)$stop=0;$flag=false;
for($j=count($gb)-1;$j>=$stop;$j--)
if(strpos($gb[$j],$data["name"]."|".$data["message"])){
$flag=true;break;
};
if(!SecureCheck("",$_POST["qwe"])){$code.=design("Повторите ввод цифр","error");$showform=1;};
if($flag){$code.=design("Ваше сообщение уже добавлено","error");$showform=1;};
}
else{
$data["name"]="";
$data["message"]="";
};
if(!$showform){
$fd=fopen($namefile,"ab");
flock($fd,LOCK_EX);
fwrite($fd,time()."|".mt_rand(10000,99999)."|".$data["name"]."|".$data["message"]."|".$_SERVER['REMOTE_ADDR']."|".@$_SERVER['HTTP_USER_AGENT']."|\n");
fclose($fd);
Relocation(QueryParam(array("a","p")),"Ваше сообщение добавлено",20);
};
$code.=ShowForm(array(
array("Имя","name",$data["name"],"text"),
array("Сообщение","message",$data["message"],"textarea"),
array("Транслит","tr",0,"select",array("0"=>"Нет","1"=>"Да")),
array("Цифры ".NumImg(),"qwe","","text"),
),"Сказать");
}
elseif(strcmp($a,"edit")==0){
$id=strtr($_GET["id"],array("."=>"|"));
$gb=@file($namefile);
$rows=count($gb);$flag=-1;
for($j=$rows-1;$j>=0;$j--){
if(strpos($gb[$j],$id)===0){$flag=$j;break;};
};
if($flag<0)Relocation(QueryParam(array("a","p")),"Не найдено",20);
$elem=explode("|",trim($gb[$flag]));
$code.=$elem[3]."<br/>";
$data["answer"]=strip_tags(strtr($elem[6],array("<br/>"=>"\n")));
$showform=1;
if(!empty($_POST["send"])){
$showform=0;
$data["answer"]=UrlInText($_POST["answer"]);
};
if(!$showform){
if(strcmp($data["answer"],"#")==0){
array_splice($gb,$flag,1);
}
else{
$elem[6]=$data["answer"];
$gb[$flag]=join("|",$elem)."\n";
};
$fd=fopen($namefile,"wb");
flock($fd,LOCK_EX);
fwrite($fd,join($gb));
fclose($fd);
Relocation(QueryParam(array("a","p","id")),"Обновлено",20);
};
$code.=ShowForm(array(
array("Ответ","answer",$data["answer"],"textarea"),
),"Сказать");
}
else{
$code.="<a href='".QueryParam(array("a"))."a=new'>Сказать</a><br/>";
$gb=@file($namefile);
$rows=count($gb);
list($start,$stop)=GetPage();
$codemenu="";
$codebanner="";
$dcur=date("d.m.Y", time());
for($j=$rows-$start-1;$j>$rows-$stop-1;$j--){
if(empty($gb[$j]))continue;
$elem=explode("|",trim($gb[$j]));
if(count($elem)<5)continue;
if(strcmp(date("d.m.Y", $elem[0]),$dcur)==0)
$d=date("H:i", $elem[0]);
else
$d=date("d.m.Y H:i", $elem[0]);
$codegb=$d.". ".$elem[2].": ".$elem[3]."<br/>";
if(!empty($elem[6]))$codegb.="Ответ: ".$elem[6]."<br/>";
if($auth)$codegb.="<a href='".QueryParam(array("a","p"))."a=edit&id=".$elem[0].".".$elem[1]."'>Ответить</a><br/>";
$code.=design($codegb,"line".($j%2));
};
$code.=ShowPage();
if($rows>1)$code.="<a href='".QueryParam(array("a"))."a=new'>Сказать</a><br/>";
};
if($auth)$code.="<a href='".QueryParam(array("login","pwd"),1,"admin.php")."'>В админку</a><br/>";
if(empty($template["secondmenu"]))
$codemenu=strtr($template["backmain"],array("\$url\$"=>QueryParam(array(),1,"index.php")));
else
$codemenu=MainMenu("secondmenu");
SaveLog();
bottom();
ShowXML($code);
?>