Файл: includes/service/gbfree.php
Строк: 177
<?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);
?>