Просмотр файла katrinka.ru/forum.php

Размер файла: 10.93Kb
  1. <?php
  2. include 'guestbook/mylib.php';
  3. include 'config.php';
  4. if (!checkagent($_SERVER['HTTP_USER_AGENT'])) { noemul(); exit; }
  5. list ($opname, $chatok) = check_op($_SERVER['REMOTE_ADDR']);
  6. if (!$chatok) { unk_op(); exit; }
  7. $fppp=3;
  8. $ftpp=10;
  9. $fnewtop='t';
  10. # $pflag=0;
  11. $lang=$_GET['lang'];
  12. $f=htmlspecialchars(trim($_GET['f']),ENT_QUOTES);
  13. $t=htmlspecialchars(trim($_GET['t']),ENT_QUOTES);
  14. $p=htmlspecialchars(trim($_GET['p']),ENT_QUOTES);
  15. if ($p=='') $p=0;
  16. session_start();
  17. ?>
  18. <?php
  19. if (!($conn=pg_connect("host=$dbhost port=$dbport dbname=$dbname user=$dbuser password=$dbpass")))
  20. {
  21. header("Cache-Control: no-cache");
  22. header("Content-type: text/vnd.wap.wml");
  23. ?>
  24. <?xml version="1.0" encoding="utf-8"?>
  25. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  26. <wml>
  27. <head><meta http-equiv="Cache-Control" content="no-cache" forua="true"/></head>
  28. <card id="ChatErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  29. <p align="center">
  30. &#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430; &#x043F;&#x043E;&#x0434;&#x043A;&#x043B;&#x044E;&#x0447;&#x0435;&#x043D;&#x0438;&#x044F; &#x043A; &#x0411;&#x0414<br/>
  31. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  32. </p>
  33. </card>
  34. </wml>
  35. <?php
  36. exit;
  37. }
  38.  
  39. $uid=0;
  40. $access=0;
  41. if (isset($_SESSION['id'])) {
  42. $uid=$_SESSION['id'];
  43. if ((!isset($_SESSION['access']))||(!isset($_SESSION['ftpp']))||(!isset($_SESSION['fppp']))||(!isset($_SESSION['fnewtop']))) {
  44. $res=pg_query($conn,"select access,fppp,ftpp,fnewtop from users where id='$uid';");
  45. $_SESSION['access']=pg_result($res,0,0);
  46. $_SESSION['fppp']=pg_result($res,0,1);
  47. $_SESSION['ftpp']=pg_result($res,0,2);
  48. $_SESSION['fnewtop']=pg_result($res,0,3);
  49. }
  50. $access=$_SESSION['access'];
  51. $fppp=$_SESSION['fppp'];
  52. $ftpp=$_SESSION['ftpp'];
  53. $fnewtop=$_SESSION['fnewtop'];
  54.  
  55. } else {
  56. if ((trim($_COOKIE['Login'])!='')&&(trim($_COOKIE['Password'])!='')) {
  57. $login=htmlspecialchars(trim($_COOKIE['Login']),ENT_QUOTES);
  58. $pass=htmlspecialchars(trim($_COOKIE['Password']),ENT_QUOTES);
  59. $res=pg_query($conn,"select id,access,fppp,ftpp,fnewtop from users where login='$login' and passwd='$pass' and moder=0;");
  60. if (pg_numrows($res)==1) {
  61. $uid=pg_result($res,0,0);
  62. $access=pg_result($res,0,1);
  63. $fppp=pg_result($res,0,2);
  64. $ftpp=pg_result($res,0,3);
  65. $fnewtop=pg_result($res,0,4);
  66. $_SESSION['id']=$uid;
  67. $_SESSION['fppp']=$fppp;
  68. $_SESSION['access']=$access;
  69. $_SESSION['ftpp']=$ftpp;
  70. $_SESSION['fnewtop']=$fnewtop;
  71. }
  72. }
  73. }
  74.  
  75. if (($f==0)&&($t==0)) {
  76. header("Cache-Control: no-cache");
  77. header("Content-type: text/vnd.wap.wml");
  78. ?>
  79. <?xml version="1.0" encoding="utf-8"?>
  80. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  81. <wml>
  82. <head><meta http-equiv="Cache-Control" content="no-cache" forua="true"/></head>
  83. <?php
  84. print "<card id=\"Forum\" title=\"&#x0424;&#x043E;&#x0440;&#x0443;&#x043C;\">\n";
  85.  
  86. print "<do name=\"a1\" type=\"options\" label=\"&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;\">\n";
  87. print '<go href="index.php?lang='.$lang.'" />';
  88. print "</do>\n";
  89.  
  90. print "<p align=\"center\">\n";
  91. print "<a href=\"frules/\">&#x041F;&#x0440;&#x0430;&#x0432;&#x0438;&#x043B;&#x0430; &#x0444;&#x043E;&#x0440;&#x0443;&#x043C;&#x0430;</a><br/><br/>\n";
  92. $res=pg_query($conn,"select id,name,flag,nthemes,nrepl,note from forums order by id;");
  93. $rows=pg_numrows($res);
  94. $timex=time()-300;
  95. for ($i=0; $i<$rows; $i++) {
  96. $rid=pg_result($res,$i,0);
  97. $nthemes=pg_result($res,$i,3);
  98. $nrepl=pg_result($res,$i,4);
  99. $note=pg_result($res,$i,5);
  100. $forum='';
  101. $flag=pg_result($res,$i,2);
  102. if (($flag!=1)||(($flag==1)&&($access))) {
  103. $isnew='';
  104. if ($uid) {
  105. $fres=pg_query($conn,"select id from fseen_by where uid='$uid' and forum='$rid';");
  106. if (!pg_numrows($fres)) $isnew='*';
  107. }
  108. $forum=uconv(pg_result($res,$i,1));
  109. print "<a href=\"forum.php?f=".$rid."&amp;lang=".$lang."\">".$isnew." ".$forum." (".$nthemes.") [".$nrepl."]</a><br/>".$note."<br/><br/>\n";
  110. }
  111. }
  112. print "<br/><a href=\"user_settings.php\">&#x041D;&#x0430;&#x0441;&#x0442;&#x0440;&#x043E;&#x0439;&#x043A;&#x0438;</a><br/>\n";
  113. }
  114.  
  115. if (($f>0)&&(!$t)) {
  116. header("Cache-Control: no-cache");
  117. header("Content-type: text/vnd.wap.wml");
  118. ?>
  119. <?xml version="1.0" encoding="utf-8"?>
  120. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  121. <wml>
  122. <head><meta http-equiv="Cache-Control" content="no-cache" forua="true"/></head>
  123. <?php
  124. $res=pg_query($conn,"select name,flag,nthemes from forums where id='$f';");
  125. $name=pg_result($res,0,0);
  126. $flag=pg_result($res,0,1);
  127. $nthemes=pg_result($res,0,2);
  128. if (!pg_numrows($res)) { pg_close($conn); exit; }
  129. if ($uid) {
  130. $res=pg_query($conn,"select id from fseen_by where uid='$uid' and forum='$f';");
  131. if (!pg_numrows($res))
  132. pg_query($conn,"insert into fseen_by (uid,forum) values ('$uid','$f');");
  133. }
  134. print "<card id=\"Forum\" title=\"".$name."\">\n";
  135. if ($p) {
  136. print "<do name=\"a1\" type=\"options\" label=\"Prev ".$ftpp."\">\n";
  137. print '<go href="forum.php?lang='.$lang.'&amp;f='.$f.'&amp;p='.($p-1).'" />';
  138. print "</do>\n";
  139. }
  140. if ($np > $p) {
  141. print "<do name=\"a2\" type=\"options\" label=\"Next ".$ftpp."\">\n";
  142. print '<go href="forum.php?lang='.$lang.'&amp;f='.$f.'&amp;p='.($p+1).'" />';
  143. print "</do>\n";
  144. }
  145. print "<do name=\"a3\" type=\"options\" label=\"&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;\">\n";
  146. print '<go href="index.php?lang='.$lang.'" />';
  147. print "</do>\n";
  148. print "<do name=\"a4\" type=\"options\" label=\"&#x0424;&#x043E;&#x0440;&#x0443;&#x043C;&#x044B;\">\n";
  149. print '<go href="forum.php?lang='.$lang.'" />';
  150. print "</do>\n";
  151. print "<do name=\"a5\" type=\"options\" label=\"&#x041D;&#x043E;&#x0432;&#x0430;&#x044F; &#x0442;&#x0435;&#x043C;&#x0430;\">\n";
  152. print '<go href="forum_post.php?lang='.$lang.'&amp;f='.$f.'" />';
  153. print "</do>\n";
  154. print "<p>\n";
  155. $offset=$p*$ftpp;
  156. $res=pg_query($conn,"select themes.id,themes.name,themes.rdnum,themes.rplnum,themes.time,themes.uid,users.login,themes.closed,themes.sticker from themes,users where users.id=themes.uid and users.moder=0 and themes.forum='$f' order by sticker desc,themes.lastrepl desc limit '$ftpp' offset '$offset';");
  157. $rows=pg_numrows($res);
  158. for ($i=0; $i<$rows; $i++) {
  159. $id=pg_result($res,$i,0);
  160. $name=uconv(pg_result($res,$i,1));
  161. $rdnum=pg_result($res,$i,2);
  162. $rplnum=pg_result($res,$i,3);
  163. $time=strftime("%d/%m %H:%M", pg_result($res,$i,4));
  164. $fr_u=pg_result($res,$i,5);
  165. $login=uconv(pg_result($res,$i,6));
  166. $closed=pg_result($res,$i,7);
  167. $sticker=pg_result($res,$i,8);
  168. $isnew='';
  169. $isclosed='';
  170. if ($closed) $isclosed='(closed)'; else $isclosed='';
  171. if ($sticker=='t') $issticker='(*)'; else $issticker='';
  172. if ($uid) {
  173. $fres=pg_query($conn,"select id from seen_by where uid='$uid' and theme='$id';");
  174. if (!pg_numrows($fres)) $isnew='(new)';
  175. }
  176. print "<a href=\"user_info.php?id=".$fr_u."\">".$login." [".$rplnum."] &lt;".$rdnum."&gt;</a><br/>".$time."<br/>".$name."<br/><a href=\"forum.php?t=".$id."&amp;lang=".$lang."\">".$issticker.$isnew.$isclosed."&gt;&gt;&gt;&gt;</a><br/>\n";
  177. }
  178. $np=floor($nthemes/$ftpp);
  179. print "<br/>Page: ".$p."/".$np."<br/>Go to page:\n";
  180. print "<input name=\"p\" type=\"text\" value=\"".$p."\" maxlength=\"3\" format=\"3N\"/><br/>\n";
  181. print "<anchor title=\"Go\">Go<go href=\"forum.php\" method=\"get\">\n";
  182. print "<postfield name=\"f\" value=\"".$f."\"/>\n";
  183. print "<postfield name=\"p\" value=\"$(p)\"/>\n";
  184. print "</go></anchor>\n";
  185. }
  186.  
  187. if ($t>0) {
  188. header("Cache-Control: no-cache");
  189. header("Content-type: text/vnd.wap.wml");
  190. ?>
  191. <?xml version="1.0" encoding="utf-8"?>
  192. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  193. <wml>
  194. <head><meta http-equiv="Cache-Control" content="no-cache" forua="true"/></head>
  195. <?php
  196. if (!$p) pg_query($conn,"update themes set rdnum=rdnum+1 where id='$t';");
  197. if ($uid) {
  198. $res=pg_query($conn,"select id from seen_by where uid='$uid' and theme='$t';");
  199. if (!pg_numrows($res))
  200. pg_query($conn,"insert into seen_by (uid,theme) values ('$uid','$t');");
  201. }
  202. $res=pg_query($conn,"select themes.forum,forums.flag,themes.closed,themes.rplnum from themes,forums where themes.id='$t' and forums.id=themes.forum;");
  203. $f=pg_result($res,0,0);
  204. $flag=pg_result($res,0,1);
  205. $closed=pg_result($res,0,2);
  206. $rplnum=pg_result($res,0,3);
  207. $np=floor($rplnum/$fppp);
  208. if ($uid) {
  209. $res=pg_query($conn,"select id from forum_moder where uid='$uid' and forum='$f';");
  210. if (pg_numrows($res)) $access=3;
  211. }
  212. print "<card id=\"Theme\" title=\"Page ".$p."/".$np."\">\n";
  213. if (!$closed) {
  214. print "<do name=\"a1\" type=\"options\" label=\"&#x041E;&#x0442;&#x0432;&#x0435;&#x0442;\">\n";
  215. print '<go href="forum_post.php?lang='.$lang.'&amp;t='.$t.'" />';
  216. print "</do>\n";
  217. }
  218. if ($p) {
  219. print "<do name=\"a2\" type=\"options\" label=\"Prev ".$fppp."\">\n";
  220. print '<go href="forum.php?lang='.$lang.'&amp;t='.$t.'&amp;p='.($p-1).'" />';
  221. print "</do>\n";
  222. }
  223. if ($np > $p) {
  224. print "<do name=\"a3\" type=\"options\" label=\"Next ".$fppp."\">\n";
  225. print '<go href="forum.php?lang='.$lang.'&amp;t='.$t.'&amp;p='.($p+1).'" />';
  226. print "</do>\n";
  227. }
  228. print "<do name=\"a4\" type=\"options\" label=\"&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;\">\n";
  229. print '<go href="index.php?lang='.$lang.'" />';
  230. print "</do>\n";
  231. print "<do name=\"a5\" type=\"options\" label=\"&#x0424;&#x043E;&#x0440;&#x0443;&#x043C;&#x044B;\">\n";
  232. print '<go href="forum.php?lang='.$lang.'" />';
  233. print "</do>\n";
  234. print "<do name=\"a6\" type=\"options\" label=\"&#x0421;&#x043F;&#x0438;&#x0441;&#x043E;&#x043A; &#x0442;&#x0435;&#x043C;\">\n";
  235. print '<go href="forum.php?lang='.$lang.'&amp;f='.$f.'" />';
  236. print "</do>\n";
  237. if ($access > 2) {
  238. print "<do name=\"a7\" type=\"options\" label=\"Del\">\n";
  239. print '<go href="forum_del.php?lang='.$lang.'&amp;t='.$t.'" />';
  240. print "</do>\n";
  241. }
  242. print "<p>\n";
  243. $offset=$p*$fppp;
  244. if ($fnewtop=='t') $rev='desc'; else $rev='';
  245. $res=pg_query($conn,"select threads.id,threads.message,threads.uid,threads.time,users.login where users.id=threads.uid and users.moder=0 and threads.theme='$t' order by threads.id $rev limit '$fppp' offset '$offset';");
  246. $rows=pg_numrows($res);
  247. for ($i=0; $i<$rows; $i++) {
  248. $id=pg_result($res,$i,0);
  249. $message=uconv(pg_result($res,$i,1));
  250. $fr_u=pg_result($res,$i,2);
  251. $time=strftime("%d/%m %H:%M",pg_result($res,$i,3));
  252. $login=uconv(pg_result($res,$i,4));
  253. print "<a href=\"user_info.php?id=".$fr_u."\">".$login."</a><br/>".$time."<br/>".$message."<br/>\n";
  254. }
  255. if ($rplnum > $fppp) {
  256. print "<br/>Page: \n";
  257. print "<select name=\"p\" value=\"".$p."\">\n";
  258. for ($i=0; $i<($np+1); $i++)
  259. print "<option value=\"".$i."\">".$i."</option>\n";
  260. print "</select><br/>\n";
  261. print "<anchor title=\"Go\">Go<go href=\"forum.php\" method=\"get\">\n";
  262. print "<postfield name=\"t\" value=\"".$t."\"/>\n";
  263. print "<postfield name=\"p\" value=\"$(p)\"/>\n";
  264. print "</go></anchor>\n";
  265. }
  266.  
  267. }
  268.  
  269. ?>
  270. </p>
  271. <?php counters(); ?>
  272. </card>
  273. </wml>