Размер файла: 15.89Kb
<?php
include('../inc/core.php');
if (!is_usr()) { $_SESSION['info'] = 'Необходима авторизация'; redirect(URL); die(); }
if (empty($_GET['act'])) $act = 'index';
else $act = htmlspecialchars($_GET['act']);
if (empty($_GET['id']) && empty($_GET['act'])) {
$id = $_SESSION['id']; $act = 'my'; }
elseif (empty($_GET['act']) && isset($_GET['id'])) { # чужая стена
if ($_GET['id']==$_SESSION['id']) $act = 'my';
else $act = 'view';
$id = htmlspecialchars($_GET['id']);
} elseif (isset($_GET['act'])) $act = htmlspecialchars($_GET['act']);
if (empty($_GET['p'])) $p = 1;
else $p = htmlspecialchars($_GET['p']);
if ($act=='re') {
if (empty($_GET['re'])) { redirect('wall.php'); die(); }
else $re = htmlspecialchars($_GET['re']);
if (empty($_GET['usr'])) { redirect('wall.php'); die(); }
else $usr = htmlspecialchars($_GET['usr']);
if (empty($_SESSION['text'])) $_SESSION['text'] = '';
$pagetitle = 'Ответить';
include('../design/'.$_SESSION['design'].'/header.php');
echo '<div id="title_a" align="center"><b>'.$pagetitle.'</b></div>
<div id="menu" align="center">
<form action="wall.php?act=getadd&re='.$re.'" method="post">
Ответ:<br>
<input type="hidden" name="author" value="'.$_SESSION['id'].'">
<input type="hidden" name="usr" value="'.$usr.'">
<textarea name="text" rows="2" cols="40">'.$_SESSION['text'].'</textarea><br>
<input type="submit" value="Ответить">
</div>
';
}
if ($act=='my') { #
if (empty($_SESSION['id'])) { $_SESSION['info'] = 'Необходима авторизация'; redirect('../auto.php'); die(); }
$pagetitle = 'Моя стена';
$count = mysql_fetch_string('SELECT COUNT(*) FROM `'.db_prefix.'wall` WHERE usr='.$_SESSION['id']);
include('../design/'.$_SESSION['design'].'/header.php');
if (empty($_SESSION['text'])) $_SESSION['text'] = '';
echo '<div id="title_a" align="center"><b>'.$pagetitle.' ('.$count.')</b></div>';
echo '<div id="menu" align="center"><ul>
<form action="wall.php?act=getadd" method="post">
Добавить сообщение:<br>
<input type="hidden" name="author" value="'.$_SESSION['id'].'">
<input type="hidden" name="usr" value="'.$_SESSION['id'].'">
<textarea name="text" rows="2" cols="40">'.$_SESSION['text'].'</textarea><br>
<input type="submit" value="Добавить">
</div>
<div id="menu">'; # показали поле добавления
if ($count!=0) {
if ($p<=0) $p = 1;
$start = $p*wall_posts-wall_posts;
$res = mysql_query('SELECT * FROM `'.db_prefix.'wall` WHERE usr='.$_SESSION['id'].' ORDER BY `id` DESC LIMIT '.$start.', '.wall_posts);
while ($post = mysql_fetch_object($res)) { ####
$author = mysql_fetch_string('SELECT `nick` FROM `'.db_prefix.'users` WHERE id='.$post->author.'');
if (get_status($post->author)=='Online') {
if (view_status==1) { ## если включен показ иконок х-статуса, то показываем его (если юзер онлайн)
$status_icon = mysql_fetch_string('SELECT `status_id` FROM `'.db_prefix.'users` WHERE id='.$post->author.'');
if ($status_icon!=0) $img = '<img src="../images/online.png"><img src="statusicon/'.$status_icon.'.gif">';
else $img = '<img src="../images/online.png">';
} else $img = '<img src="../images/online.png">';
} else $img = $img = '<img src="../images/offline.png">';
$post->time = $post->time+$_SESSION['time_pref'];
if ($post->re!=0) {
$to = mysql_fetch_string('SELECT `nick` FROM `'.db_prefix.'users` WHERE id='.$post->re.'');
echo '<div class="wall_title"><a href="index.php?id='.$post->author.'">'.$img.'<b>'.$author.'</b></a> <small>('.date('d.m.y в G:i',$post->time).')</small></div>
<div class="desc"><a href="index.php?id='.$post->re.'"><b>@</b>'.$to.'</a> '.check_post($post->msg).'
<div class="order"><div align="right">
<a href="wall.php?act=del&id='.$post->id.'">Удалить</a></div></div></div>';
} else {
echo '<div class="wall_title"><a href="index.php?id='.$post->author.'">'.$img.'<b>'.$author.'</b></a> <small>('.date('d.m.y в G:i',$post->time).')</small></div>
<div class="desc">'.check_post($post->msg).'<div class="order"><div align="right">
<a href="wall.php?act=del&id='.$post->id.'">Удалить</a></div></div></div>';
}
} ##### <div class="order" align="right"><a href="wall.php?act=del&id='.$post->id.'">Удалить</a></div>
echo '</div>';
echo '<div class="navigation">Страницы:';
$prev = $p-1;
if ($prev<1) $prev = null;
$prevprev = $p-2;
if ($prevprev<1) $prevprev = null;
$last = $count/wall_posts;
if (!is_int($last)) $last = ceil($last);
if ($p!=$last) {
$next = $p+1;
if ($p+1!=$last) $nextnext = $p+2;
}
echo '<b>';
if ($p!=1) echo ' <a href="wall.php?p=1">«</a> ';
else echo ' <span>«</span> ';
if ($p!=1 && $p!=2 && $p!=3) echo '<span> .. </span>';
if (isset($prevprev)) echo ' <a href="wall.php?p='.$prevprev.'">'.$prevprev.'</a> ';
if (isset($prev)) echo ' <a href="wall.php?p='.$prev.'">'.$prev.'</a> ';
echo ' <span>'.$p.'</span> ';
if (isset($next)) echo ' <a href="wall.php?p='.$next.'">'.$next.'</a> ';
if (isset($nextnext)) echo ' <a href="wall.php?p='.$nextnext.'">'.$nextnext.'</a> ';
if ($p!=$last && $p+1!=$last && $p+2!=$last) echo '<span> .. </span>';
if ($p!=$last) echo ' <a href="wall.php?p='.$last.'">»</a> ';
else echo ' <span>»</span> ';
echo '</b></div>';
} else {
echo '<div align="center">На стене еще нет записей</div></div>';
}
}
if ($act=='view') {
if (empty($id)) { redirect('wall.php'); die(); }
if (empty($_SESSION['id'])) { $_SESSION['info'] = 'Необходима авторизация'; redirect('../auto.php'); die(); }
$usr = mysql_fetch_object(mysql_query('SELECT * FROM `'.db_prefix.'users` WHERE id='.$id));
$pagetitle = 'Стена пользователя '.$usr->nick.'';
$count = mysql_fetch_string('SELECT COUNT(*) FROM `'.db_prefix.'wall` WHERE usr='.$id);
include('../design/'.$_SESSION['design'].'/header.php');
echo '<div id="title_a" align="center"><b>'.$pagetitle.' ('.$count.')</b></div>';
if ($_SESSION['id']!=$id && $usr->wall_access==1) {
if (empty($_SESSION['text'])) $_SESSION['text'] = '';
echo '<div id="menu" align="center"><ul>
<form action="wall.php?act=getadd" method="post">
Добавить сообщение:<br>
<input type="hidden" name="author" value="'.$_SESSION['id'].'">
<input type="hidden" name="usr" value="'.$id.'">
<textarea name="text" rows="2" cols="40">'.$_SESSION['text'].'</textarea><br>
<input type="submit" value="Добавить">
</div>';
} else {
echo '<div align="center"><b>Пользователь запретил всем писать на его стене</b></div>';
}
if ($_SESSION['id']==$id) {
if (empty($_SESSION['text'])) $_SESSION['text'] = '';
echo '<div id="menu" align="center"><ul>
<form action="wall.php?act=getadd" method="post">
Добавить сообщение:<br>
<input type="hidden" name="author" value="'.$_SESSION['id'].'">
<input type="hidden" name="usr" value="'.$id.'">
<textarea name="text" rows="2" cols="25">'.$_SESSION['text'].'</textarea><br>
<input type="submit" value="Добавить">
</div>';
}
if ($count!=0) {
$start = $p*wall_posts-wall_posts;
$res = mysql_query('SELECT * FROM `'.db_prefix.'wall` WHERE usr='.$id.' ORDER BY `id` DESC LIMIT '.$start.', '.wall_posts);
echo '<div id="menu">';
while ($post = mysql_fetch_object($res)) { ####
$author = mysql_fetch_string('SELECT `nick` FROM `'.db_prefix.'users` WHERE id='.$post->author.'');
$post->time = $post->time+$_SESSION['time_pref'];
if (get_status($post->author)=='Online') {
if (view_status==1) { ## если включен показ иконок х-статуса, то показываем его (если юзер онлайн)
$status_icon = mysql_fetch_string('SELECT `status_id` FROM `'.db_prefix.'users` WHERE id='.$post->author.'');
if ($status_icon!=0) $img = '<img src="../images/online.png"><img src="statusicon/'.$status_icon.'.gif">';
else $img = '<img src="../images/online.png">';
} else $img = '<img src="../images/online.png">';
} else $img = '<img src="../images/offline.png">';
if ($post->re!=0) {
$to = mysql_fetch_string('SELECT `nick` FROM `'.db_prefix.'users` WHERE id='.$post->re.'');
echo '<div class="wall_title"><a href="index.php?id='.$post->author.'">'.$img.'<b>'.$author.'</b></a> <small>('.date('d.m.y в G:i',$post->time).')</small></div>
<div class="desc"><a href="index.php?id='.$post->re.'"><b>@</b>'.$to.'</a> '.check_post($post->msg).'
<div class="order"><div align="right">';
if ($usr->wall_access!=0 && $post->author!=$_SESSION['id']) echo '<a href="wall.php?act=re&usr='.$id.'&re='.$post->author.'">Ответить</a>';
if ($post->author!=$_SESSION['id']) echo '
<a href="wall.php?act=re&usr='.$_SESSION['id'].'&re='.$post->author.'">Ответить на моей стене</a>';
if ($post->author==$_SESSION['id'] || $_SESSION['access']>=md_wall) echo ' <a href="wall.php?act=del&id='.$post->id.'">Удалить</a>';
echo '</div></div></div>';
} else {
echo '<div class="wall_title"><a href="index.php?id='.$post->author.'">'.$img.'<b>'.$author.'</b></a> <small>('.date('d.m.y в G:i',$post->time).')</small></div>
<div class="desc">'.check_post($post->msg).'
<div class="order"><div align="right">';
if ($usr->wall_access!=0 && $post->author!=$_SESSION['id']) echo '<a href="wall.php?act=re&usr='.$id.'&re='.$post->author.'">Ответить</a>';
if ($post->author!=$_SESSION['id']) echo '
<a href="wall.php?act=re&usr='.$_SESSION['id'].'&re='.$post->author.'">Ответить на моей стене</a>';
if ($post->author == $_SESSION['id'] || $_SESSION['access']>=md_wall) echo ' <a href="wall.php?act=del&id='.$post->id.'">Удалить</a>';
echo '</div></div></div>';
}
} echo '</div>';
echo '<div class="navigation">Страницы:';
$prev = $p-1;
if ($prev<1) $prev = null;
$prevprev = $p-2;
if ($prevprev<1) $prevprev = null;
$last = $count/wall_posts;
if (!is_int($last)) $last = ceil($last);
if ($p!=$last) {
$next = $p+1;
if ($p+1!=$last) $nextnext = $p+2;
}
echo '<b>';
if ($p!=1) echo ' <a href="wall.php?p=1&id='.$id.'">«</a> ';
else echo ' <span>«</span> ';
if ($p!=1 && $p!=2 && $p!=3) echo '<span> .. </span>';
if (isset($prevprev)) echo ' <a href="wall.php?p='.$prevprev.'&id='.$id.'">'.$prevprev.'</a> ';
if (isset($prev)) echo ' <a href="wall.php?p='.$prev.'&id='.$id.'">'.$prev.'</a> ';
echo ' <span>'.$p.'</span> ';
if (isset($next)) echo ' <a href="wall.php?p='.$next.'&id='.$id.'">'.$next.'</a> ';
if (isset($nextnext)) echo ' <a href="wall.php?p='.$nextnext.'&id='.$id.'">'.$nextnext.'</a> ';
if ($p!=$last && $p+1!=$last && $p+2!=$last) echo '<span> .. </span>';
if ($p!=$last) echo ' <a href="wall.php?p='.$last.'&id='.$id.'">»</a> ';
else echo ' <span>»</span> ';
echo '</b></div>';
} else echo '<div id="menu" align="center">Стена пуста</div>';
echo '<div id="menu"><ul>
<li><a href="index.php?id='.$id.'"><img src="../images/back.png"> К странице пользователя</a></li>
</ul></div>';
}
if ($act=='getadd') {
if (empty($_SESSION['id'])) { $_SESSION['info'] = 'Необходима авторизация'; redirect('../auto.php'); die(); }
if (empty($_POST['text'])) {
$_SESSION['error'] = 'Введите сообщение';
if (isset($_POST['usr'])) {
$usr = htmlspecialchars($_POST['usr']);
if ($_SESSION['id']==$usr) redirect('wall.php');
elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
else redirect('wall.php'.$usr);
} else redirect('wall.php');
die();
} else $text = mysql_real_escape_string(htmlspecialchars(trim($_POST['text'])));
if (empty($_POST['author'])) {
$_SESSION['error'] = 'Ошибка';
if (isset($_POST['usr'])) {
$usr = htmlspecialchars($_POST['usr']);
if ($_SESSION['id']==$usr) redirect('wall.php');
elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
else redirect('wall.php'.$usr);
} else redirect('wall.php');
die();
} else {
if (htmlspecialchars($_POST['author']!=$_SESSION['id'])) { redirect('wall.php'); die(); }
else $author = htmlspecialchars($_POST['author']);
}
if (empty($_POST['usr'])) { redirect('wall.php'); die(); }
else $usr = htmlspecialchars($_POST['usr']);
if (isset($_GET['re'])) $re = mysql_real_escape_string(htmlspecialchars(trim($_GET['re']))); ## @ник ) а-ля twitter
else $re = 0;
if (strlen($_POST['text'])>wall_maxlen) {
$_SESSION['error'] = 'Слишком длинное сообщение';
$_SESSION['text'] = htmlspecialchars($_POST['text']);
if (isset($_POST['usr'])) {
$usr = htmlspecialchars($_POST['usr']);
if ($_SESSION['id']==$usr) redirect('wall.php');
elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
else redirect('wall.php?id='.$usr);
} else redirect('wall.php');
die();
}
if ($usr!=$_SESSION['id']) {
$access = mysql_fetch_string('SELECT `wall_access` FROM `'.db_prefix.'users` WHERE id='.$usr);
if ($access==0) {
$_SESSION['error'] = 'Пользователь запретил писать сообщения на его стене';
redirect('wall.php?id='.$usr);
die();
}
}
if (mysql_query('INSERT INTO `'.db_prefix.'wall` (author,re,msg,usr,time) VALUES ('.$author.','.$re.',"'.$text.'",'.$usr.','.time().')')) {
if ($usr!=$_SESSION['id']) { # если пишем не на своей стене
$object_id = mysql_insert_id();
mysql_query('INSERT INTO `'.db_prefix.'reply` (`from`,`usr`,`object`,`time`,`status`) VALUES ('.$author.','.$usr.',"wall||'.$object_id.'",'.time().',0)');
} else {
if ($re!=0) {
$object_id = mysql_insert_id();
mysql_query('INSERT INTO `'.db_prefix.'reply` (`from`,`usr`,`object`,`time`,`status`) VALUES ('.$author.','.$re.',"wall_reply||'.$object_id.'",'.time().',0)');
}
}
$_SESSION['info'] = 'Ваше сообщение добавлено';
$_SESSION['text'] = '';
incr_aktiv($_SESSION['id']);
if (isset($_POST['usr'])) {
$usr = htmlspecialchars($_POST['usr']);
if ($_SESSION['id']==$usr) redirect('wall.php');
elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
else redirect('wall.php?id='.$usr);
} else redirect('wall.php');
die();
} else {
$_SESSION['error'] = 'Ошибка при добавлении сообщения';
$_SESSION['text'] = htmlspecialchars($_POST['text']);
if (isset($_POST['usr'])) {
$usr = htmlspecialchars($_POST['usr']);
if ($_SESSION['id']==$usr) redirect('wall.php');
elseif (isset($_POST['to'])) redirect('wall.php?id='.htmlspecialchars($_POST['to']));
else redirect('wall.php'.$usr);
} else redirect('wall.php');
die();
}
}
if ($act=='del') {
if (empty($_SESSION['id'])) { $_SESSION['info'] = 'Необходима авторизация'; redirect('../auto.php'); die(); }
if (empty($_GET['id'])) {
redirect('wall.php');
die();
} else $id = htmlspecialchars($_GET['id']);
$post = mysql_fetch_object(mysql_query('SELECT * FROM `'.db_prefix.'wall` WHERE id='.$id));
if ($post->author==$_SESSION['id'] || $_SESSION['access']>=md_wall || $post->usr==$_SESSION['id']) {
if (mysql_query('DELETE FROM `'.db_prefix.'wall` WHERE id='.$id)) {
$_SESSION['info'] = 'Запись удалена';
if ($_SESSION['id'] != $post->usr) redirect('wall.php?id='.$post->usr);
else redirect('wall.php');
die();
} else {
$_SESSION['error'] = 'Ошибка при удалении записи';
if ($post->author!=$post->usr) redirect('wall.php?id='.$post->usr);
else redirect('wall.php');
die();
}
} else {
$_SESSION['error'] = 'Отказано в доступе'.$_SESSION['id'].$post->usr;
if ($post->author!=$post->usr) redirect('wall.php?id='.$post->usr);
else redirect('wall.php');
die();
}
}
include('../design/'.$_SESSION['design'].'/footer.php');
?>