File size: 8.2Kb
<?
define('H', $_SERVER['DOCUMENT_ROOT'].'/');
include_once H.'sys/inc/start.php';
include_once H.'sys/inc/compress.php';
include_once H.'sys/inc/sess.php';
include_once H.'sys/inc/settings.php';
include_once H.'sys/inc/db_connect.php';
include_once H.'sys/inc/ipua.php';
include_once H.'sys/inc/fnc.php';
include_once H.'sys/inc/user.php';
$set['title']='Гостевая книга';
include_once H.'sys/inc/thead.php';
title();
aut();
#--------------------------#
if (isset($_GET['msg_del']))msg('сообщение удалено');
if (isset($_GET['msg_yes']))msg('Сообщение успешно добавлено');
if (isset($_GET['refresh']))exit(header("Location: ?"));
#--------------------------#
#--------------------------#
if (isset($_POST['msg']) && isset($user))
{
$msg=$_POST['msg'];
if (isset($_POST['translit']) and $_POST['translit']==1)$msg=translit($msg);
$mat=antimat($msg);if ($mat)$err[]='В тексте сообщения обнаружен мат: '.$mat;
if (strlen2($msg)>$set['guest_max_post'])$err[]='Сообщение слишком длинное';
elseif (strlen2($msg)<1)$err[]='Короткое сообщение';
elseif (mysql_result(query("SELECT COUNT(*) FROM `guest` WHERE `id_user` = '$user[id]' AND `msg` = '".my_esc($msg)."' LIMIT 1"),0)!=0){$err='Ваше сообщение повторяет предыдущее';}
else
if(!isset($err))
{
query("INSERT INTO `guest` (id_user, time, msg) values('$user[id]', '$time', '".my_esc($msg)."')");
query("UPDATE `user` SET `balls` = '".($user['balls']+$set['balls_guest'])."' WHERE `id` = '$user[id]' LIMIT 1");
exit(header("Location: ?msg_yes"));
}
}
#-------------------------------------------#
if (isset($_POST['msg']) and !isset($user) && isset($set['write_guest']) and $set['write_guest']==1 and isset($_SESSION['captcha']) && isset($_POST['chislo']))
{
$msg=$_POST['msg'];if (isset($_POST['translit']) && $_POST['translit']==1)$msg=translit($msg);
$mat=antimat($msg);if ($mat)$err[]='В тексте сообщения обнаружен мат: '.$mat;
if (strlen2($msg)>$set['guest_max_post'])$err='Сообщение слишком длинное';
elseif ($_SESSION['captcha']!=$_POST['chislo'])$err='Неверное проверочное число';
elseif (isset($_SESSION['antiflood']) && $_SESSION['antiflood']>$time-300)
$err='Для того чтобы чаще писать нужно авторизоваться';
elseif (strlen2($msg)<1)$err='Короткое сообщение';
elseif (mysql_result(query("SELECT COUNT(*) FROM `guest` WHERE `id_user` = '0' AND `msg` = '".my_esc($msg)."' LIMIT 1"),0)!=0)
$err='Ваше сообщение повторяет предыдущее';
elseif(!isset($err)){
$_SESSION['antiflood']=$time;
query("INSERT INTO `guest` (id_user, time, msg) values('0', '$time', '".my_esc($msg)."')");
msg('Сообщение успешно добавлено');
}
}
#-------------------------------------------#
err();
switch (empty($_GET['type'])? false : $_GET['type'])
{
default:
if (user_access('guest_clear'))
echo "<a href='?type=deletmessages'><div class='guestbook'> Полная отчистка гостевой</div></a>";
echo "<div class='guestbook'><a href='?type=who'>Кто в гостевой?</a> :: <a href='?refresh'>Обновить </a></div>";
if (isset($user) || (isset($set['write_guest']) and $set['write_guest'] == 1))
{
panel_form :: head();
echo "<div class='guestbook'>";
if (isset($user) || (isset($set['write_guest']) and $set['write_guest']==1 and (!isset($_SESSION['antiflood']) || $_SESSION['antiflood']<$time-300)))
{
echo "<form method=\"post\" name='message' action=\"?$passgen\">\n";
if ($set['web'] and is_file(H.'style/themes/'.$set['set_them'].'/altername_post_form.php'))
include_once H.'style/themes/'.$set['set_them'].'/altername_post_form.php';
else
echo "Сообщение:<br />\n<textarea name=\"msg\"></textarea><br />\n";
if (isset($user) && $user['set_translit']==1)echo "<label><input type=\"checkbox\" name=\"translit\" value=\"1\" /> Транслит</label><br />\n";
if (!isset($user))echo "<img src='/captcha.php?SESS=$sess' width='100' height='30' alt='Проверочное число' /><br />\n<input name='chislo' size='5' maxlength='5' value='' type='text' /><br/>\n";
echo "<input value=\"Отправить\" type=\"submit\" />\n";
echo "</form>\n";
}
elseif(isset($set['write_guest']) and $set['write_guest']==1 and isset($_SESSION['antiflood']) and $_SESSION['antiflood']>$time-300)
{
echo "<div class='foot'>\n";
echo "* Гостем вы можете писать только по 1 сообщению в 5 минут<br />\n";
echo "</div>\n";
}
echo '</div>';
panel_form :: foot();
}
$k_post=mysql_result(mysql_query("SELECT COUNT(*) FROM `guest`"),0);
$k_page=k_page($k_post,$set['p_str']);
$page=page($k_page);
$start=$set['p_str']*$page-$set['p_str'];
echo "<table class='post'>\n";
if ($k_post==0)msg('Тут не кто ,не чего еще не писал ):');
$q=mysql_query("SELECT * FROM `guest` ORDER BY id DESC LIMIT $start, $set[p_str]");
while ($post = mysql_fetch_assoc($q))
{
if ($post['id_user']==0)
{
$ank['id']=0;
$ank['pol']='guest';
$ank['level']=0;
}
else
$ank=get_user($post['id_user']);
if (user_access('guest_delete'))
echo "<a href='?type=delete&id=$post[id]' class='trash' ></a>";
echo " <div class='guestbook_i'>";
if ($ank['id']==0)
echo "Гость (".vremja($post['time']).")\n";
else
echo user($ank['id']);
echo '('.vremja($post['time']).')<br/>';
echo output_text($post['msg'])."<br />\n";
echo " </div>\n";
}
echo "</table>\n";
if ($k_page>1)str('?',$k_page,$page);
break;
case 'who':
#----------------------------------------------------------#
echo "<div class='foot'><a href='?'>Назад </a></div>";
$k_post=mysql_result(query("SELECT COUNT(*) FROM `user` WHERE `date_last` > '".(time()-300)."' AND `url` like '/pages/guestbook/%'"), 0);
$k_page=k_page($k_post,$set['p_str']);
$page=page($k_page);
$start=$set['p_str']*$page-$set['p_str'];
$q = query("SELECT * FROM `user` WHERE `date_last` > '".(time()-300)."' AND `url` like '/pages/guestbook/%' ORDER BY `date_last` DESC LIMIT $start, $set[p_str]");
if ($k_post==0) msg('Не кого нету');
while ($guest = mysql_fetch_array($q))
{
echo " <div class='p_m'>\n";
echo user($guest['id']);
echo "</div>\n";
}
if ($k_page>1)str("?",$k_page,$page);
#----------------------------------------------------------#
break;
case 'deletmessages':
if(user_access('guest_clear'))
{
if (isset($_GET['deletyes']))
{
$q_db = mysql_query("SELECT * FROM `guest` ",$db);
$del_count=0;
while ($post = mysql_fetch_assoc($q_db))
{
query("DELETE FROM `guest` WHERE `id` = '$post[id]'",$db);
$del_count++;
}
admin_log('Гостевая','Полная отчистка',"Удалено $del_count сообщений");
query("OPTIMIZE TABLE `guest`",$db);
msg ("Удалено постов ($del_count)");
echo "<div class='foot'><a href='?'>Вернуться в гостевую </a><br /></div>";
}
if (!isset($_GET['deletyes']))
{
echo "<form method=\"post\" class='foot' action=\"?type=deletmessages&deletyes\">\n";
echo "Удалить все сообщения?<br />
* <span style='color:red'>Будут удалены все сообщения </span><br />";
echo "<input value=\"Согласен на отчистку\" type=\"submit\" /><br />\n";
echo "<a href=\"?\">Отказываюсь</a><br />\n";
echo "</form>\n";
}
} else
msg('Доступ закрыт');
break;
break;
case 'delete':
if (user_access('guest_delete'))
{
$post=mysql_fetch_assoc(mysql_query("SELECT * FROM `guest` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"));
if ($post['id_user']==0)
{
$ank['id']=0;
$ank['pol']='guest';
$ank['level']=0;
$ank['nick']='Гость';
}
else
$ank=get_user($post['id_user']);
admin_log('Гостевая','Удаление сообщения',"Удаление сообщения от $ank[nick]");
mysql_query("DELETE FROM `guest` WHERE `id` = '$post[id]'");
exit ( header("Location: ?msg_del"));
}
break;
}
include_once H.'sys/inc/tfoot.php';