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

Размер файла: 10.62Kb
  1. <?php
  2. include 'config.php';
  3. include 'guestbook/mylib.php';
  4. $msglimit=20;
  5. $postlimit=100;
  6. if (!checkagent($_SERVER['HTTP_USER_AGENT'])) { noemul(); exit; }
  7. list ($opname, $chatok) = check_op($_SERVER['REMOTE_ADDR']);
  8. if (!$chatok) { unk_op(); exit; }
  9. session_start();
  10. $message=$_POST['message'];
  11. $agent=$_SERVER['HTTP_USER_AGENT'];
  12. $addr=$_SERVER['REMOTE_ADDR'];
  13. # $r=htmlspecialchars(trim($_POST['r']),ENT_QUOTES);
  14. $to=htmlspecialchars(trim($_POST['to_id']),ENT_QUOTES);
  15. $tr=htmlspecialchars(trim($_POST['tr']),ENT_QUOTES);
  16. $sie=0;
  17. if ($tr) $message=tr_conv($message);
  18. $message=htmlspecialchars(trim($message),ENT_QUOTES);
  19. $tto=htmlspecialchars(trim($_POST['login']),ENT_QUOTES);
  20. if (ereg("^SIE-.*",$_SERVER['HTTP_USER_AGENT'])) $sie=1;
  21. if (ereg("^Alcatel-.*",$_SERVER['HTTP_USER_AGENT'])) $sie=1;
  22. if (ereg("^MOT-.*",$_SERVER['HTTP_USER_AGENT'])) $sie=1;
  23. if (ereg("^SEC-.*",$_SERVER['HTTP_USER_AGENT'])) $sie=1;
  24. if (ereg("^Panasonic-.*",$_SERVER['HTTP_USER_AGENT'])) $sie=1;
  25.  
  26. $uid=0;
  27. $access=0;
  28. $lang=$_POST['lang'];
  29. if ((trim($_COOKIE['Login'])!='')&&(trim($_COOKIE['Password'])!='')) {
  30. $login=htmlspecialchars(trim($_COOKIE['Login']),ENT_QUOTES);
  31. $pass=htmlspecialchars(trim($_COOKIE['Password']),ENT_QUOTES);
  32. } else {
  33. $login=htmlspecialchars(trim($_POST['login']),ENT_QUOTES);
  34. $pass=htmlspecialchars(trim($_POST['pass']),ENT_QUOTES);
  35. # $sie=1;
  36. }
  37. if (!($conn=pg_connect("host=$dbhost port=$dbport dbname=$dbname user=$dbuser password=$dbpass"))) exit;
  38. if (isset($_SESSION['id'])) {
  39. $uid=$_SESSION['id'];
  40. $res=pg_query($conn,"select moder,access,lastagent,temp_ban,posts from users where id='$uid';");
  41. if (pg_result($res,0,0)) $uid=0;
  42. $access=pg_result($res,0,1);
  43. $lastagent=pg_result($res,0,2);
  44. $temp_ban=pg_result($res,0,3);
  45. $posts=pg_result($res,0,4);
  46. $_SESSION['access']=$access;
  47. } else {
  48. $res=pg_query($conn,"select id,access,lastagent,temp_ban from users where login='$login' and passwd='$pass' and moder=0;");
  49. if (pg_numrows($res)==1) {
  50. $uid=pg_result($res,0,0);
  51. $access=pg_result($res,0,1);
  52. $lastagent=pg_result($res,0,2);
  53. $temp_ban=pg_result($res,0,3);
  54. $_SESSION['id']=$uid;
  55. $_SESSION['access']=$access;
  56. }
  57. }
  58. # if ($uid) {
  59. # setcookie("Login", $login, time()+864000, "/");
  60. # setcookie("Password", $pass, time()+864000, "/");
  61. # }
  62.  
  63. if ($agent!=$lastagent) {
  64. session_unset();
  65. setcookie("Login", "", time()-3600, "/");
  66. setcookie("Password", "", time()-3600, "/");
  67. pg_close($conn);
  68. if ($_GET['lang']=='eng') header("Location: index.php?lang=eng");
  69. else header("Location: index.php");
  70. exit;
  71. }
  72.  
  73. if (($tto!='')&&(!$to)) {
  74. $res=pg_query($conn,"select id from users where login='$tto';");
  75. if (pg_numrows($res)==1) $to=pg_result($res,0,0);
  76. }
  77. if ($to) {
  78. $res=pg_query($conn,"select moder,posts,access from users where id='$to';");
  79. $rows=pg_numrows($res);
  80. if ($rows==1) {
  81. $to_mod=pg_result($res,0,0);
  82. $to_p=pg_result($res,0,1);
  83. $to_acc=pg_result($res,0,2);
  84. }
  85. else $to=0;
  86. }
  87.  
  88. if ((!$to)||($to_mod))
  89. {
  90. header("Content-type: text/vnd.wap.wml");
  91. ?>
  92. <?xml version="1.0" encoding="utf-8"?>
  93. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  94. <wml>
  95. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  96. <p align="center">
  97. Recipient is unknown.<br/>
  98. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  99. </p>
  100. </card>
  101. </wml>
  102. <?php
  103. pg_close($conn);
  104. exit;
  105. }
  106.  
  107. $res=pg_query($conn,"select count(*) from messages where to_u='$to';");
  108. $tomsg=pg_result($res,0,0);
  109. $res=pg_query($conn,"select count(*) from messages where to_u='$uid';");
  110. $mymsg=pg_result($res,0,0);
  111. if (($tomsg > $msglimit)&&($to_acc!=4))
  112. {
  113. header("Content-type: text/vnd.wap.wml");
  114. ?>
  115. <?xml version="1.0" encoding="utf-8"?>
  116. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  117. <wml>
  118. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  119. <p align="center">
  120. Recipient's mailbox is full...<br/>
  121. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  122. </p>
  123. </card>
  124. </wml>
  125. <?php
  126. pg_close($conn);
  127. exit;
  128. }
  129.  
  130. if (($mymsg > $msglimit)&&($access!=4))
  131. {
  132. header("Content-type: text/vnd.wap.wml");
  133. ?>
  134. <?xml version="1.0" encoding="utf-8"?>
  135. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  136. <wml>
  137. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  138. <p align="center">
  139. Your mailbox is full... Please, delete some messages.<br/>
  140. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  141. </p>
  142. </card>
  143. </wml>
  144. <?php
  145. pg_close($conn);
  146. exit;
  147. }
  148.  
  149. if ($posts < $postlimit)
  150. {
  151. header("Content-type: text/vnd.wap.wml");
  152. ?>
  153. <?xml version="1.0" encoding="utf-8"?>
  154. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  155. <wml>
  156. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  157. <p align="center">
  158. You need at least 100 posts to send private messages...<br/>
  159. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  160. </p>
  161. </card>
  162. </wml>
  163. <?php
  164. pg_close($conn);
  165. exit;
  166. }
  167.  
  168. if ($to_p < $postlimit)
  169. {
  170. header("Content-type: text/vnd.wap.wml");
  171. ?>
  172. <?xml version="1.0" encoding="utf-8"?>
  173. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  174. <wml>
  175. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  176. <p align="center">
  177. Recipient needs at least 100 posts to recieve private messages...<br/>
  178. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  179. </p>
  180. </card>
  181. </wml>
  182. <?php
  183. pg_close($conn);
  184. exit;
  185. }
  186.  
  187. if ($message=="")
  188. {
  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. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  195. <p align="center">
  196. &#x041D;&#x0435; &#x0432;&#x0441;&#x0435; &#x043F;&#x043E;&#x043B;&#x044F; &#x0437;&#x0430;&#x043F;&#x043E;&#x043B;&#x043D;&#x0435;&#x043D;&#x044B;<br/>
  197. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  198. </p>
  199. </card>
  200. </wml>
  201. <?php
  202. pg_close($conn);
  203. exit;
  204. }
  205. if (($message==".")||($message=="..")||($message=="...")||($message=="....")||($message==",")||($message==",,")||($message==",,,")||($message==":")||($message==";"))
  206. {
  207. header("Content-type: text/vnd.wap.wml");
  208. ?>
  209. <?xml version="1.0" encoding="utf-8"?>
  210. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  211. <wml>
  212. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  213. <p align="center">
  214. &#x041D;&#x0435; &#x0432;&#x0441;&#x0435; &#x043F;&#x043E;&#x043B;&#x044F; &#x0437;&#x0430;&#x043F;&#x043E;&#x043B;&#x043D;&#x0435;&#x043D;&#x044B;<br/>
  215. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  216. </p>
  217. </card>
  218. </wml>
  219. <?php
  220. pg_close($conn);
  221. exit;
  222. }
  223. if (!$uid)
  224. {
  225. header("Content-type: text/vnd.wap.wml");
  226. ?>
  227. <?xml version="1.0" encoding="utf-8"?>
  228. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  229. <wml>
  230. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  231. <p align="center">
  232. Bad login or password.
  233. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  234. </p>
  235. </card>
  236. </wml>
  237. <?php
  238. pg_close($conn);
  239. exit;
  240. }
  241. if ($temp_ban > time())
  242. {
  243. header("Content-type: text/vnd.wap.wml");
  244. ?>
  245. <?xml version="1.0" encoding="utf-8"?>
  246. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  247. <wml>
  248. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  249. <p align="center">
  250. <?php print "Banned till ".strftime("%d %b %G %T", $temp_ban)."<br/>\n"; ?>
  251. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  252. </p>
  253. </card>
  254. </wml>
  255. <?php
  256. pg_close($conn);
  257. exit;
  258. }
  259.  
  260. if ($uid==$to)
  261. {
  262. header("Content-type: text/vnd.wap.wml");
  263. ?>
  264. <?xml version="1.0" encoding="utf-8"?>
  265. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  266. <wml>
  267. <card id="SignErr" title="&#x041E;&#x0448;&#x0438;&#x0431;&#x043A;&#x0430;">
  268. <p align="center">
  269. Access DENIED.<br/>
  270. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  271. </p>
  272. </card>
  273. </wml>
  274. <?php
  275. pg_close($conn);
  276. exit;
  277. }
  278.  
  279. $message=substr($message, 0, 1600);
  280.  
  281. $dtime=time()-300;
  282. $res=pg_query($conn,"select message from messages where fr_u='$uid' and time > '$dtime' order by id desc limit 1;");
  283.  
  284. if (pg_numrows($res)) {
  285. if ($message==pg_result($res,0,0)) {
  286. header("Content-type: text/vnd.wap.wml");
  287. ?>
  288. <?xml version="1.0" encoding="utf-8"?>
  289. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  290. <wml>
  291. <?php
  292. print "<card id=\"SignDup\" title=\"Wait\" ontimer=\"http://wap.katrinka.ru/messages.php?lang=".$lang."&amp;".SID."\">\n";
  293. ?>
  294. <timer value="20"/>
  295. <p align="center">
  296. Please wait... We are taking you back to the messages...<br/>
  297. <a href="/">&#x041D;&#x0430; &#x0433;&#x043B;&#x0430;&#x0432;&#x043D;&#x0443;&#x044E;</a>
  298. </p>
  299. </card>
  300. </wml>
  301. <?php
  302. pg_close($conn);
  303. exit;
  304. }
  305. }
  306. $mtime=time();
  307. $res=pg_query($conn,"select id from users_ignore where who='$uid' and uid='$to';");
  308. if (pg_numrows($res)==0) {
  309. pg_query($conn,"begin;");
  310. $res=pg_query($conn,"insert into messages (fr_u,to_u,message,time,host,agent) values ('$uid','$to','$message','$mtime','$addr','$agent');");
  311. pg_query($conn,"end;");
  312. }
  313. if (!$res) { pg_close($conn); exit; }
  314. pg_close($conn);
  315. $link=sprintf("Location: messages.php?lang=%s&PHPSESSID=%s", $lang, session_id());
  316. if (!$sie) {
  317. header($link);
  318. } else {
  319. setcookie("Login", $login, time()+864000, "/");
  320. setcookie("Password", $pass, time()+864000, "/");
  321. header("Content-type: text/vnd.wap.wml");
  322. ?>
  323. <?xml version="1.0" encoding="utf-8"?>
  324. <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.2.dtd">
  325. <wml>
  326. <?php
  327. print "<card id=\"SignOk\" title=\"&#x0421;&#x043F;&#x0430;&#x0441;&#x0438;&#x0431;&#x043E;!\" ontimer=\"http://wap.katrinka.ru/messages.php?lang=".$lang."&amp;".SID."\" onenterbackward=\"http://wap.katrinka.ru/\">\n";
  328. ?>
  329. <timer value="10"/>
  330. <p align="center">
  331. &#x0412;&#x0430;&#x0448;&#x0430; &#x0437;&#x0430;&#x043F;&#x0438;&#x0441;&#x044C; &#x0434;&#x043E;&#x0431;&#x0430;&#x0432;&#x043B;&#x0435;&#x043D;&#x0430;<br/>
  332. <?php
  333. print "<a href=\"messages.php?lang=".$lang."\">&#x041F;&#x0440;&#x043E;&#x0441;&#x043C;&#x043E;&#x0442;&#x0440;</a>\n";
  334. ?>
  335. </p>
  336. </card>
  337. </wml>
  338. <?php
  339. }
  340. ?>