Просмотр файла grop/chat.php

Размер файла: 4.75Kb
  1. <?
  2. include('../core/core.php');
  3. include(BASEDIR.INC.'func.php');
  4. include(BASEDIR.INC.'session.php');
  5. include(BASEDIR.INC.'session_user.php');
  6. $mode = htmlspecialchars($_GET['mode']);
  7. include(BASEDIR.INC.'head.php');
  8. $id = abs(htmlspecialchars($_GET['id']));
  9. echo '<div class="razdel">Cообщества</div>';
  10. show_title('Сообщества');
  11. switch ($mode):
  12. /*
  13. ------------------------------------------------------
  14. Чат для групп
  15. ------------------------------------------------------
  16. */
  17. case 'index':
  18. $gr = mysql_query('SELECT * FROM grop_user WHERE id_grop = "'.$id.'" AND login = "'.$_COOKIE['login'].'"');
  19. $gr = mysql_fetch_assoc($gr);
  20. if(is_user()){
  21. if(!empty($gr['login'])){
  22. echo'<div class="menu">';
  23. echo'<a href="/grop/?mode=see&id='.$id.'">Назад в чат!';
  24. echo'</div>';
  25. echo'<div class="menu">';
  26. echo'<form action="?mode=new_msg&id='.$id.'" method="post">
  27. Сообщение (<a href="/pages/smiles.php">Смайлы</a>/<a href="/pages/bb.php">Теги</a>):<br />
  28. <textarea name="msg" cols="40" rows="5"></textarea><br />
  29. <input name="" type="submit" value="Добавить" />
  30. </form>';
  31. echo'</div>';
  32. define('TOPAGE',10);
  33. $page=(int)$_GET['page'];
  34. $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `grop_chat` WHERE `id_grop` = '".$id."'"),0);
  35. $total = intval(($q - 1) / TOPAGE) + 1;
  36. if(empty($page) or $page < 0) $page = 1;
  37. if($page > $total) $page = $total;
  38. $start = $page * TOPAGE -TOPAGE;
  39.  
  40. $g=mysql_query("SELECT * FROM `grop_chat` WHERE `id_grop` = '".$id."' ORDER BY `id` DESC LIMIT $start,".TOPAGE."");
  41. while($u=mysql_fetch_array($g)){
  42. $login = $u['login'];
  43. $li =mysql_query("SELECT * FROM users WHERE `login`='$login';");
  44. $li = mysql_fetch_assoc($li);
  45. $p = mysql_query('SELECT * FROM session_user WHERE user = "'.$login.'"');
  46. if(mysql_num_rows($p) != 0){ $on ='[<font color="green">On</font>]'; } else { $on ='[<font color="red">Off</font>]'; }
  47. if($li['avatar_mini'] == NULL){ $avatar ='/images/noavatar.gif'; } else {$avatar = ''.$li['avatar_mini'].'';}
  48. echo'<div class="menu">';
  49. echo'<div style="overflow: hidden"><div style="float: left"><img src="'.$avatar.'"></div> <a href="/users/profile.php?user='.$login.'">'.$login.'</a> <br />
  50. ('.$u['data'].') '.$on.'</div><hr>';
  51. echo $u['msg'];
  52. if(is_admin(array(101))){ echo'<hr><div align="right">[<a href="?mode=del&id='.$u['id'].'" onclick="return confirm(\'Вы подтверждаете удаление?\')">Удл</a>]</div>';}
  53. echo'</div>';}
  54. if ($page != $total) $nextpage = ' <a href="?mode=index&page='. ($page + 1) .'">Далее</a>';
  55. if($page - 1 > 0) $pageback = '<a href="?mode=index&page='. ($page - 1) .'">Назад</a> ';
  56. if($q == 0){ echo'<div class="menu">Сообщения еще не добавлены!</div>'; }
  57. echo''.$pageback.' '.$nextpage.'';
  58. } else {echo'Для просмотра чата вы должны состоять в данной группе'; }
  59. } else {echo'Авторизуйтесь!'; }
  60. break;
  61. case 'new_msg':
  62. echo'<div class="menu">';
  63. $gr = mysql_query('SELECT * FROM grop_user WHERE id_grop = "'.$id.'" AND login = "'.$_COOKIE['login'].'"');
  64. $gr = mysql_fetch_assoc($gr);
  65. if(is_user()){
  66. if(!empty($gr['login'])){
  67. if($id == !NULL){
  68. $msg = check($_POST['msg']);
  69. $s = $_SESSION['antiflood'] - time();
  70. if($_SESSION['antiflood'] >= time()){echo'Антифлуд! Разрешается отправлять сообщения раз в 30 секунд!<br />
  71. Осталось: >'.formattime($s).'</div>';
  72. }else{
  73. if (utf_strlen($msg) >= 5 && utf_strlen($msg) < 500) {
  74. $data = date("d.m.Y / H:i");
  75. $login = $_COOKIE['login'];
  76. $time = time() + (60 * 15);
  77. $msg = antimat($msg);
  78. $msg = smiles($msg);
  79. $msg = bb($msg);
  80. $msg = no_br($msg);
  81. mysql_query('INSERT INTO `grop_chat`(`id_grop`, `login`, `msg`, `time`, `data`) VALUES ("'.$id.'","'.$login.'","'.$msg.'","'.$time.'","'.$data.'")');
  82. header('Location: ?mode=index&id='.$id.'');
  83. $_SESSION['antiflood'] = time() + 30;
  84. echo activ($_COOKIE['login']);
  85. echo rating_plus($_COOKIE['login'],1);
  86. } else { echo'Ошибка! Слишком длинное или короткое сообщение!'; }
  87. }
  88. } else {echo'Ошибка!';}
  89. } else {echo'Для просмотра чата вы должны состоять в данной группе'; }
  90. } else {echo'Авторизуйтесь!'; }
  91. echo'</div>';
  92. break;
  93. case 'del':
  94. if(is_admin(array(101))){
  95. if($id == !NULL){
  96. mysql_query('DELETE FROM `grop_chat` WHERE `id` = "'.$id.'"');
  97. header ('location: ?mode=index');
  98. } else {echo'<div class="menu">Ошибочка!</div>'; }
  99. }
  100. break;
  101. default:
  102. header ('location: ?mode=index');
  103. endswitch;
  104. echo'<div class="menu"><a href="/">На главную</a></div>';
  105. include(BASEDIR.INC.'foot.php');
  106. ?>