Просмотр файла includes/service/gbfree.php

Размер файла: 8.63Kb
<?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у &#xA9;Dиmоn</small>';
$tm='<br/><br/><small>&#xA9;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);
?>