- <?php
- error_reporting(7);
-
- $name=explode('.',$_SERVER['HTTP_X_FORWARDED_HOST']);
- $user=strtolower($name[0]);
- $domain=strtolower($name[1]);
- $path='/home/kmx/www/sites/'.$domain.'/'.$user;
- if (!is_dir($path)) {header('Location: http://kmx.ru/?not_found');exit;}
-
- $nocache=rand(100,999);
-
- include('/home/kmx/includes/function_string.inc');
- $site=$user;
- $wmlfile='gbfree.wml';
- $data['num']=130;
- include('/home/kmx/includes/rand_reklama.php');
- $reklama=cyr2utf($reklama);
-
- touch($path.'/gb-free-setting.dat');
- $f=fopen($path.'/gb-free-setting.dat','r+');
- $setting[]=trim(fgets($f,65536));
- $setting[]=trim(fgets($f,65536));
- $setting[]=trim(fgets($f,65536));
- $setting[]=trim(fgets($f,65536));
- $setting[]=trim(fgets($f,65536));
- fopen($f);
-
- $name=strtoupper($user).'-Гостевая книга';
- if ($setting[0]!='') $name=htmlspecialchars($setting[0]);
-
- $begin_text=$setting[1];
-
- $end_text=$setting[2];
-
- $separate_text='- - - - -';
- if ($setting[3]!='') $separate_text=$setting[3];
-
- $name=strtoupper($user).'-Гостевая книга';
- if ($setting[0]!='') $name=htmlspecialchars($setting[0]);
-
- Header("Content-type:text/vnd.wap.wml; charset=Utf-8");
- Header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
- Header("Cache-Control: no-cache, must-relative");
-
- $wml='<?xml version="1.0" encoding="Utf-8"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.xml"><wml>';
- # if ($offservice) die ($wml.'<card id="gb" title="'.$name.'"><p align="center">Данная услуга автором сайта не заказана...<br/><anchor>Назад<prev/></anchor></p></card></wml>');
-
- touch($path.'/gb-free-antiflood.dat');
- touch($path.'/gb-free-message.dat');
-
- $command=substr($_SERVER['QUERY_STRING'],0,3);
-
- if ($command=='nex') $page=$HTTP_GET_VARS['next']+0;
- if ($page<1) $page=1;
- if ($page>99) $page=1;
-
- $userinfo=trim(substr(substr($_SERVER['REMOTE_ADDR'].str_repeat(' ',15),0,15).' '.strtoupper($_SERVER['HTTP_USER_AGENT']),0,68));
- $f=fopen($path.'/gb-free-antiflood.dat','r+');
- fseek($f,0,SEEK_SET);
- $unical=true;
- while (!feof($f))
- {
- $_timestamp=fread($f,10);
- $_userinfo=trim(fread($f,70));
- if (time()-$_timestamp>900) continue;
- $data_unical.=$_timestamp.' '.substr($_userinfo.str_repeat(' ',70),0,68)."\n";
- if ($userinfo==$_userinfo) $unical=false;
- }
- ftruncate($f,0);
- fseek($f,0,SEEK_SET);
- fwrite($f,$data_unical);
- fclose($f);
-
- //Рисунки
- $i00='<img src="." alt=""/>';
- $i01='<img src="/gblogo.gif" alt="logo"/>';
-
- //Подпись
- #$tm='<br/><br/><small>РЎrеаted bСѓ ©DРёmРѕn</small>';
- $tm='<br/><br/><small>©K-Media</small>';
-
- //Начало карты
- $c01='<card id="chat" title="'.$name.'">';
- //Конец карты
- $c98='</card>';
- //Конец и деки
- $c99='</card></wml>';
-
- //Параграф с левым выравниванием
- $p01='<p align="left">';
- //Параграф с центральным выравниванием
- $p02='<p align="center">';
- //Параграф с правым выравниванием
- $p03='<p align="right">';
- //Закрыть параграф
- $p99='</p>';
-
- //Кнопка "назад"
- $a01='<br/><anchor>Назад<prev/></anchor>';
- //Кнопка "на главную"
- $a02='<br/><a href="http://'.$user.'.'.$domain.'.ru" accesskey="#">На главную</a>';
- //Кнопка "Обновить"
- $a03='<br/><a href="/gbfree.wml" accesskey="1">Обновить</a>';
- //Кнопка "Написать"
- if ($unical) $a04='<br/><a href="/gbfree.wml?add" accesskey="2">Написать</a>';
- //Кнопка "Далее"
- $a05='<a href="/gbfree.wml?next='.($page+1).'" accesskey="3">Далее</a>';
- //Кнопка "admin"
- $a06='<br/><a href="/gbfree.wml?admin" accesskey="0">Управление</a>';
- //Кнопка "отправить"
- $a07='<br/><anchor>Отправить<go href="/gbfree.wml?post" method="post"><postfield name="n" value="$(gbnick)"/><postfield name="e" value="$(gbemail)"/><postfield name="m" value="$(m'.$nocache.')"/></go></anchor>';
-
- //Soft-Кнопка "FAQ"
- //Кнопка "Написать"
- $faq='<do name="faq" type="options" label="FAQ"><go href="/gbfree.wml?'.$u.'faq"/></do>';
- if ($unical) $sk01='<do name="add" type="options" label="Написать"><go href="/gbfree.wml?add"/></do>';
-
- //Поле "логин"
- $f01='<br/>РќРёРє:<br/><input type="text" name="gbnick" title="РќРёРє" maxlength="16" value=""/>';
- //Поле "E-Mail"
- $f02='<br/>E-Mail:<br/><input type="text" name="gbemail" title="E-Mail" maxlength="32" value=""/>';
- //Поле "Сообщение"
- $f03='<br/>Сообщение:<br/><input type="text" name="m'.$nocache.'" title="Сообщение" maxlength="256" value=""/>';
-
- //Пустой текст
- $t00='';
- //Неправильнй логин или пароль
- $t01='<b>Стр. '.$page.'</b>';
- //Гостевая не чат
- $t02='<small>Гостевая книга - не чат! Уложитесь в одно сообщение!</small>';
- //Ограничение
- $t03='<small>Написание в гостевую ограниченно по времени: не более одного сообщения в 15 минут!</small>';
-
- //Таймер обновления
- $tm1='<onevent type="ontimer"><go href="/gbfree.wml"/></onevent><timer value="3000"/>';
-
- if ($command=='pos')
- {
- $nick=substr(utf2cyr(str_replace(" ","_",trim(str_replace(" "," ",str_replace("\t"," ",str_replace("\n"," ",str_replace("\r"," ",stripslashes($HTTP_POST_VARS['n'])))))))),0,16);
- $email=substr(utf2cyr(str_replace(" ","",trim(str_replace(" "," ",str_replace("\t"," ",str_replace("\n"," ",str_replace("\r"," ",stripslashes($HTTP_POST_VARS['e'])))))))),0,32);
- $message=substr(utf2cyr(trim(str_replace(" "," ",str_replace("\t"," ",str_replace("\n"," ",str_replace("\r"," ",stripslashes($HTTP_POST_VARS['m']))))))),0,256);
-
- if (($nick!='')&&($message!=''))
- {
- $message2file=$nick."\t".$email."\t".$message."\n";
- $f=fopen($path.'/gb-free-message.dat','r+');
- $tmp1=substr(fgets($f,65536),11);
- $tmp2=substr(fgets($f,65536),11);
- fseek($f,0,SEEK_SET);
- $text=fread($f,102400);
- fseek($f,0,SEEK_SET);
- if (($tmp1!=$message2file)&&($tmp2!=$message2file))
- {
- if ($unical)
- {
- fwrite($f,time()."\t".$nick."\t".$email."\t".$message."\n".$text);
- $f2=fopen($path.'/gb-free-antiflood.dat','a+');
- fwrite($f2,time().' '.substr($userinfo.str_repeat(' ',70),0,68)."\n");
- fclose($f2);
- }
- else die($wml.$c01.$tm1.$faq.$p01.$t03.'<br/>Time Out'.$a01.$tm.$p99.$c99);
- }
-
- $tr=strlen("\t".$nick."\t".$email."\t".$message."\n".$text)+10;
- if ($tr<102400) ftruncate($f,$tr);
- else ftruncate($f,102400);
- fclose($f);
- }
- unset($text,$data_unical,$message2file,$tmp1,$tmp2,$userinfo,$_userinfo);
- $command='';
- }
-
- if (($command=='')||($command=='nex'))
- {
- $f=fopen($path.'/gb-free-message.dat','r+');
- fseek($f,0,SEEK_SET);
- $cntpage=1;
- $screen='';
- while ($cntpage<=$page)
- {
- while (true)
- {
- if ((feof($f))&&($cntpage<$page)) $t01='<b>Стр. '.$cntpage.'</b>';
- if (feof($f)) die($wml.$c01.$tm1.$faq.$sk01.$p02.'<small>'.$reklama.'</small><br/>'.$t01.$p99.$p01. $screen .$a05.$a04.$a02.$tm.$p99.$c99);
- $printmsg='';
- $tmpa=explode("\t",fgets($f,65536),5);
- if (($tmpa[0]=='')||($tmpa[1]=='')||($tmpa[3]=='')) continue;
- $printmsg='<u><b>'.cyr2utf(str_replace("$","$$",htmlspecialchars($tmpa[1]))).'</b> '.date("j.m G:i",$tmpa[0]).'</u>';
- if ($tmpa[2]!='') $printmsg.=' <br/><small>'.cyr2utf(str_replace("$","$$",htmlspecialchars($tmpa[2]))).' </small>';
- $printmsg.=' <br/>'.cyr2utf(str_replace("$","$$",htmlspecialchars(trim($tmpa[3]))));
- if ($tmpa[4]!='') $printmsg.=' <br/>'.cyr2utf('<b>Ответ:</b> '.str_replace("$","$$",htmlspecialchars($tmpa[4])));
- $printmsg.=' <br/>'.cyr2utf(str_replace("$","$$",htmlspecialchars($separate_text))).' <br/> <br/>';
- if (strlen($screen.$printmsg)>2300)
- {
- if ($cntpage==$page) die($wml.$c01.$tm1.$faq.$sk01.$p02.'<small>'.$reklama.'</small><br/>'.$t01.$p99.$p01. $screen .$a05.$a04.$a02.$tm.$p99.$c99);
- else break;
- }
- $screen.=$printmsg;
- }
- $screen='';
- $cntpage++;
- }
- }
-
- if ($command=='add')
- {
- if ($unical) die($wml.$c01.$p01.$t02.$f01.$f02.$f03.$a07.$a01.$tm.$p99.$c99);
- else die($wml.$c01.$tm1.$p01.$t03.'<br/>Time Out'.$a01.$tm.$p99.$c99);
- }
-
- if ($command=='faq')
- die($wml.$c01.$p01.
- 'Онлайн общение в гостевых запрещено! Гостевая книга - не чат! По этой причине написание в гостевую ограничивается по времени на 15 минут.<br/>'.
- 'В гостевой хранится 100kb сообщений (выделяется из лимита сайта). По достижении этого предела, самые старые сообщения будут вытесняться.<br/>'.
- 'Ручная очистка пока не реализована.<br/>'.
- $a01.$tm.$p99.$c99);
-
- die($wml.$c01.$p01."Неопознанная ошибка!".$a01.$tm.$p99.$c99);
- ?>