View file gb.php

File size: 4.96Kb
<?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&amp;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);
?>