<?
require('./inc/configuration.php');
require('./inc/functions.php');
$go = isset($_GET['do']) ? $_GET['do'] : 'index';
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if($go != 'index' && $go != 'write' && $go != 'citate' && $go != 'mail' && $go != 'url' && $go != 'gb_codes' && $go != 'smiles') $go = 'xakep';
if(mysql_num_rows(mysql_query('SELECT `id` FROM `books` WHERE `id` = '.$id.';')) == 0)
{
error('Гостевая с таким ID не найдена!');
}
if(mysql_num_rows(mysql_query('SELECT `id` FROM `disarmed` WHERE `book` = '.$id.' and `ip` = "'.$_SERVER['REMOTE_ADDR'].'" and `expired` > UNIX_TIMESTAMP();')) > 0)
{
error('Доступ заблокирован.');
}
if(mysql_num_rows(mysql_query('SELECT `id` FROM `disarmed` WHERE `book` = '.$id.' and `ua` = "'.mysql_escape_string($_SERVER['HTTP_USER_AGENT']).'" and `expired` > UNIX_TIMESTAMP();')) > 0)
{
error('Доступ заблокирован.');
}
$changes = get_config($id);
switch($go)
{
case 'index':
echo title(htmlspecialchars(stripslashes($changes['title']))).
'<div class="header">'.htmlspecialchars(stripslashes($changes['headertitle'])).'</div>'.
'<!-- Меню -->'.
'<div class="buttons">'.
'<div class="hr_up"></div>'.
'<a href="gb.php?id='.$id.'&do=write">Написать</a>| <a href="gb.php?id='.$id.'">Обновить</a> | <a href="gb.php?id='.$id.'&do=gb_codes">GB коды</a> | <a href="gb.php?id='.$id.'&do=smiles">Смайлы</a>'.
'<div class="hr_down"></div>'.
'</div>'.
'<!-- Меню -->';
/* ^ HEADER ^*/
if(mysql_num_rows(mysql_query('SELECT `id` FROM `msg` WHERE `book` = '.$id.';')) == 0)
{
echo '<div class="msg">Гостевая книга пуста. Становись первым!</div>';
}
else
{
$all = mysql_num_rows(mysql_query('SELECT `id` FROM `msg` WHERE `book` = '.$id.';'));
$pnumber = $changes['elementsonpage'];
$page=(isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$num_pages=ceil($all/$pnumber);
$start=$page*$pnumber-$pnumber;
if ($page > $num_pages || $page < 1)
{
$page=1;
$start=0;
}
$q = mysql_query('SELECT * FROM `msg` WHERE `book` = '.$id.' ORDER BY `id` DESC LIMIT '.($start).','.($start + $pnumber).';');
while($r = mysql_fetch_array($q))
{
/* PRINT MESSAGES */
if($r['type'] == 1) $nickname = htmlspecialchars(stripslashes($r['nick']));
if($r['type'] == 2) $nickname = '<span style="color: #0099FF;">Администратор</span>';
if($r['type'] == 3) $nickname = '<span style="color: #BB0000;">Системное</span>';
if($r['type'] == 4) $nickname = '<span style="color: #660000;">Владелец сервиса</span>';
$url = !empty($r['url']) ? '<a href="gb.php?id='.$id.'&do=url&link='.urlencode($r['url']).'"><img src="img/url.gif" alt="Сайт" /></a>' : '';
$mail = !empty($r['mail']) ? '<a href="gb.php?id='.$id.'&do=mail&msg='.$r['id'].'"><img src="img/e-mail.gif" alt="E-Mail пользователя" /></a>' : '';
$citate = '<a href="gb.php?id='.$id.'&do=citate&msg='.$r['id'].'"><img src="img/citate.gif" alt="." /></a>';
$msg = GB_codes(htmlspecialchars(stripslashes($r['msg'])));
$msg=str_replace(":@","<img src=\"smile/angry.gif\" alt=\":@\"/>",$msg);
$msg=str_replace("B)","<img src=\"smile/cool.gif\" alt=\"B)\"/>",$msg);
$msg=str_replace(":|","<img src=\"smile/frown.gif\" alt=\":|\"/>",$msg);
$msg=str_replace(":D","<img src=\"smile/grin.gif\" alt=\":D\"/>",$msg);
$msg=str_replace(":p","<img src=\"smile/pfft.gif\" alt=\":p\"/>",$msg);
$msg=str_replace(":(","<img src=\"smile/sad.gif\" alt=\":(\"/>",$msg);
$msg=str_replace(":o","<img src=\"smile/shock.gif\" alt=\":o\"/>",$msg);
$msg=str_replace(":)","<img src=\"smile/smile.gif\" alt=\":)\"/>",$msg);
$msg=str_replace(";)","<img src=\"smile/wink.gif\" alt=\";)\"/>",$msg);
echo '<div class="msg">'.
'<div class="nick"><img src="img/punkt.gif" alt="." />'.
$nickname.', '.date('d/m/Y H:i',$r['date']).
'</div>'.
'<div class="text">'.
$msg.
'</div>'.
'<div class="icons">'.
$url.
$mail.
$citate.
'</div>'.
'</div>';
}
echo '<div class="buttons">'.
'<div class="hr_up"></div>';
for($pr = '', $i =1; $i <= $num_pages; $i++)
{
echo $pr=(($i == 1 || $i == $num_pages || abs($i-$page) < 2) ? ($i == $page ? " [$i] " : ' <a href="gb.php?id='.$id.'&page='.$i.'">'.$i.'</a> ') : (($pr == ' ... ' || $pr == '')? '' : ' ... '));
}
echo '<div class="hr_down"></div></div>';
}
/* v FOOTER v */
echo '<a href="'.htmlspecialchars(stripslashes($changes['url'])).'">На главную</a>'.
the_end();
break;
case 'write':
if(isset($_POST['nickname']) && isset($_POST['msg']) && isset($_POST['captcha']))
{
if(empty($_POST['nickname']) or empty($_POST['msg']) or empty($_POST['captcha']))
{
error('Вы не заполнили какое-то из обязательных полей!');
}
if($_POST['captcha'] != $_SESSION['code'])
{
error('Введенный код с картинки не совпадает с реальным! Вы ошиблись..');
}
if(preg_match('#[^А-яЁёA-z0-9=-_\+\)\(\[\]@!\?\^~]{5,20}+#iSu',$_POST['nickname']))
{
error('Ник содержит "плохие" символы! Или не превышает лимит в 5 символов, или наоборот состоит больше чем из 20 букв.');
}
if(preg_match('#(http://|wap\.|www\.)[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|wml|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*\'%$]+)?#i',$_POST['msg']))
{
error('В Вашем сообщении находится что-то плохое. Не знаете что? ;)');
}
if(!empty($_POST['email']) && !preg_match('#[0-9a-z_]+@[0-9a-z_^\-.]+\.[a-z]{2,4}#i',$_POST['email']))
{
error('E-mail указан не верно! Он должен быть вида [email protected]');
}
if(!empty($_POST['url']) && $_POST['url'] != 'http://' && !preg_match('#http://[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|wml|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*\'%$]+)?#i',$_POST['url']))
{
error('Ссылка на Ваш сайт указана не верно..');
}
if($_POST['url'] == 'http://') $_POST['url'] = '';
mysql_query('INSERT INTO `msg` SET `nick` = "'.mysql_escape_string($_POST['nickname']).'", `msg` = "'.mysql_escape_string($_POST['msg']).'", `url` = "'.mysql_escape_string($_POST['url']).'", `mail` = "'.mysql_escape_string($_POST['email']).'", `date` = UNIX_TIMESTAMP(), `ip` = "'.$_SERVER['REMOTE_ADDR'].'", `ua` = "'.mysql_escape_string($_SERVER['HTTP_USER_AGENT']).'", `book` = '.$id.';') or die(error('При добавлении сообщения произошла ошибка!'));
unset($_SESSION['code']);
echo title('Сообщение добавлено.').
'<div class="header">Спасибо что пишите..</div>'.
'<div class="msg">'.
'<div class="nick">Ваше сообщение было добавлено.</div>'.
'<div class="text">'.
htmlspecialchars(stripslashes($changes['msgonadd'])).'<br />'.
'</div>'.
'<div class="icons">'.
'<a href="gb.php?id='.$id.'">Назад в гостевую</a><br />'.
'</div>'.
'</div>'.
the_end();
die();
}
echo title('Пишим сообщение').
'<div class="header">Для добавления сообщения нужно заполнить все поля помеченные звездочкой!</div>'.
'<form action="gb.php?do=write&'.SID.'&id='.$id.'" method="POST">'.
'<div class="msg">'.
'<div class="nick">Написанное Вами может быть удалено из эфира, поскольку это личное право администратора.</div>'.
'<div class="text">'.
'<u>Ваш Ник</u> : <b>*</b><br />'.
'<input type="text" name="nickname" /><br />'.
'<u>Ваш E-Mail</u> :<br />'.
'<input type="text" name="email" /><br />'.
'<u>Ваш сайт</u> :<br />'.
'<input type="text" name="url" value="http://" /><br />'.
'<u>Текст сообщения</u> : <b>*</b><br />'.
'<textarea name="msg" /><br />'.
'Код с картинки : <b>*</b><br />'.
'<img src="captcha.php?'.SID.'" alt="." /><br />'.
'<input type="text" name="captcha" /><br />'.
'Проверьте правильность заполненых данных, и нажмите на кнопку "Добавить".<br />'.
'</div>'.
'<div class="icons"><input type="submit" value="Добавить" /></div>'.
'</div>'.
'</form>'.
the_end();
break;
case 'citate':
$msg = isset($_GET['msg']) ? intval($_GET['msg']) : 0;
if(mysql_num_rows(mysql_query('SELECT `id` FROM `msg` WHERE `book` = '.$id.' and `id` = '.$msg.';')) == 0)
{
error('Сообщение не найдено!');
}
if(isset($_POST['nickname']) && isset($_POST['citate']) && isset($_POST['captcha']))
{
if(empty($_POST['nickname']) or empty($_POST['citate']) or empty($_POST['captcha']))
{
error('Вы не заполнили какое-то из обязательных полей!');
}
if($_POST['captcha'] != $_SESSION['code'])
{
error('Введенный код с картинки не совпадает с реальным! Вы ошиблись..');
}
if(preg_match('#[^А-яЁёA-z0-9=-_\+\)\(\[\]@!\?\^~]{5,20}+#iSu',$_POST['nickname']))
{
error('Ник содержит "плохие" символы! Или не превышает лимит в 5 символов, или наоборот состоит больше чем из 20 букв.');
}
if(preg_match('#(http://|wap\.|www\.)[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|wml|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*\'%$]+)?#i',$_POST['msg']))
{
error('В Вашем сообщении находится что-то плохое. Не знаете что? ;)');
}
if(!empty($_POST['email']) && !preg_match('#[0-9a-z_]+@[0-9a-z_^\-.]+\.[a-z]{2,4}#i',$_POST['email']))
{
error('E-mail указан не верно! Он должен быть вида [email protected]');
}
if(!empty($_POST['url']) && $_POST['url'] != 'http://' && !preg_match('#http://[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|wml|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*\'%$]+)?#i',$_POST['url']))
{
error('Ссылка на Ваш сайт указана не верно..');
}
if($_POST['url'] == 'http://') $_POST['url'] = '';
mysql_query('INSERT INTO `msg` SET `nick` = "'.mysql_escape_string($_POST['nickname']).'", `msg` = "[quote]'.mysql_result(mysql_query('SELECT `msg` FROM `msg` WHERE `id` = '.$msg.';'),0).'[/quote]'.mysql_escape_string($_POST['citate']).'", `url` = "'.mysql_escape_string($_POST['url']).'", `mail` = "'.mysql_escape_string($_POST['email']).'", `date` = UNIX_TIMESTAMP(), `ip` = "'.$_SERVER['REMOTE_ADDR'].'", `ua` = "'.mysql_escape_string($_SERVER['HTTP_USER_AGENT']).'", `book` = '.$id.';') or die(error('При добавлении сообщения произошла ошибка!'));
unset($_SESSION['code']);
echo title('Сообщение добавлено.').
'<div class="header">Спасибо что пишите..</div>'.
'<div class="msg">'.
'<div class="nick">Ваше сообщение было добавлено.</div>'.
'<div class="text">'.
htmlspecialchars(stripslashes($changes['msgonadd'])).'<br />'.
'</div>'.
'<div class="icons">'.
'<a href="gb.php?id='.$id.'">Назад в гостевую</a><br />'.
'</div>'.
'</div>'.
the_end();
die();
}
echo title('Цитируем сообщение').
'<div class="header">Для добавления сообщения нужно заполнить все поля помеченные звездочкой!</div>'.
'<form action="gb.php?do=citate&'.SID.'&id='.$id.'&msg='.$msg.'" method="POST">'.
'<div class="msg">'.
'<div class="nick">Написанное Вами может быть удалено из эфира, поскольку это личное право администратора.</div>'.
'<div class="text">'.
'<u>Ваш Ник</u> : <b>*</b><br />'.
'<input type="text" name="nickname" /><br />'.
'<u>Ваш E-Mail</u> :<br />'.
'<input type="text" name="email" /><br />'.
'<u>Ваш сайт</u> :<br />'.
'<input type="text" name="url" value="http://" /><br />'.
'<u>Текст сообщения</u> : <b>*</b><br />'.
'<textarea name="citate" /><br />'.
'Код с картинки : <b>*</b><br />'.
'<img src="captcha.php?'.SID.'" alt="." /><br />'.
'<input type="text" name="captcha" /><br />'.
'Проверьте правильность заполненых данных, и нажмите на кнопку "Добавить".<br />'.
'</div>'.
'<div class="icons"><input type="submit" value="Добавить" /></div>'.
'</div>'.
'</form>'.
the_end();
break;
case 'mail':
$msg = isset($_GET['msg']) ? (int) $_GET['msg'] : 0;
if(mysql_num_rows(mysql_query('SELECT `id` FROM `msg` WHERE `book` = '.$id.' and `id` = '.$msg.' and `mail` != "";')) == 0)
{
error('Автор этого сообщения не оставлял e-mail или этого сообщения не существует вообще.');
}
if(isset($_POST['message']))
{
if(empty($_POST['message']))
{
error('ВПИШИТЕ СООБЩЕНИЕ!!');
}
mail(mysql_result(mysql_query('SELECT `id` FROM `msg` WHERE `book` = '.$id.' and `id` = '.$msg.';'),0),'Письмо с гостевой книги сайта '.$changes['url'],$_POST['message']);
error('Сообщение было отправлено!');
die();
}
echo title('Отправляем сообщение на e-mail').
'<div class="header">Шлём письмо пользователю!</div>'.
'<div class="msg">'.
'<div class="nick">Заполните сообщение и нажмите на кнопку "отправить"!</div>'.
'<div class="text">'.
'<form action="gb.php?id='.$id.'&do=mail&msg='.$msg.'" method="POST">'.
'<b>Текст сообщения</b>:<br />'.
'<textarea name="message" /><br />'.
'<input type="submit" value="Отослать" />'.
'</form>'.
'</div>'.
'<div class="icons">'.
'<a href="gb.php?id='.$id.'">Назад в гостевую</a><br />'.
'</div>'.
'</div>'.
the_end();
break;
case 'url':
if(!isset($_GET['url']) or !preg_match('#http://[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|wml|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*\'%$]+)?#i',$_GET['url']))
{
$url = 'http://wap.j3m.ru/';
}else{
$url = urldecode($_GET['url']);
}
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");
echo '<?xml version="1.0" encoding="utf-8"?>'.
'<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"'.
' "http://www.wapforum.org/DTD/wml_1.1.xml">'.
'<wml>'.
'<head>'.
'<meta http-equiv="Cache-Control" content="no=cache" forua="true" />'.
'</head>'.
'<card id="go" title="Переходим.." ontimer="'.$url.'"><timer value="20" />'.
'<p align="center">'.
'Безопасный переход по ссылке :<br/>'.
'<a href="'.htmlspecialchars(stripslashes($url)).'">'.htmlspecialchars(stripslashes($url)).'</a>'.
'</p></card></wml>';
break;
case 'gb_codes':
echo title('GB коды').
'<div class="header">Выделяйся!</div>'.
'<div class="msg">'.
'<div class="nick">На этой странице Вы можете узнать как можно подчеркнуть сообщение, и выделить его из всех окружающих, с помощью GB кодов. ;)</div>'.
'<div class="text">'.
'Ниже Вы видите пример того, что можно делать с помощью этих кодов. Коды можно обьединять.<br />'.
'[b]текст[/b] - <b>текст</b><br />'.
'[u]текст[/u] - <u>текст</u><br />'.
'[i]текст[/i] - <i>текст</i><br />'.
'[url]http://wap.j3m.ru/[/url] - '.GB_codes('[url]http://wap.j3m.ru/[/url]').'<br />'.
'[quote]текст =)[/quote] - '.GB_codes('[quote]текст =)[/quote]').'(^ один результат от кода. ^)<br />'.
'</div>'.
'<div class="icons">'.
'<a href="gb.php?id='.$id.'">Назад в гостевую</a><br />'.
'</div>'.
'</div>'.
the_end();
break;
case 'smiles':
echo title('Смайлики').
'<div class="header">Выделяй эмоции!</div>'.
'<div class="msg">'.
'<div class="nick">На этой странице Вы можете узнать как можно подчеркнуть сообщение, и выделить его из всех окружающих, с помощью смайлов. :-)</div>'.
'<div class="text">'.
'Ниже Вы видите справа значение для смайла, а слева его картинку.<br />';
echo '<img src="smile/smile.gif" alt=":)"/> :)<br/>';
echo '<img src="smile/wink.gif" alt=";)"/> ;)<br/>';
echo '<img src="smile/frown.gif" alt=":|"/> :|<br/>';
echo '<img src="smile/sad.gif" alt=":("/> :(<br/>';
echo '<img src="smile/shock.gif" alt=":o"/> :o<br/>';
echo '<img src="smile/pfft.gif" alt=":p"/> :p<br/>';
echo '<img src="smile/cool.gif" alt="B)"/> B)<br/>';
echo '<img src="smile/grin.gif" alt=":D"/> :D<br/>';
echo '<img src="smile/angry.gif" alt=":@"/> :@<br/>'.
'</div>'.
'<div class="icons">'.
'<a href="gb.php?id='.$id.'">Назад в гостевую</a><br />'.
'</div>'.
'</div>'.
the_end();
break;
case 'xakep':
write_log();
echo title('by DikS..').
'<div class="header">"Чешащимся ручкам" посвящается..</div>'.
'<div class="msg">'.
'Ну что мой друг, засветился? Поздравляю тебя, теперь ты и твои данные в журнальчеке безопасности. А теперь я тебе подкину пищу для размышлений. Подумай, а стоит-ли заниматься этой байдой дальше? :-)<br />'.
'Наверное думаешь типа блефую?<br />'.
'Конечно блефую, только в браузере смени index.php?do='.htmlspecialchars($_GET['do']).' на security_log.txt и почитай, ты там наверное на последней строчке.))'.
'<div class="icons">'.
'<a href="index.php">Сервис гостевых книг</a><br />'.
'</div>'.
'</div>'.
the_end();
break;
}
?>