refreshmessages.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?php
  2. // Load USER
  3. //require_once("../user.php");
  4. //$USER = new User("registration_callback");
  5. // Some PHP config stuff
  6. ini_set("display_errors", 1);
  7. ini_set("error_reporting", E_ALL | E_STRICT);
  8. $currentuser = $_POST["user"];
  9. // get last 25 messages, which covers 25 users messaging during one 500 millisecond message refresh
  10. include("connect.php");
  11. if( $result = $db->query("SELECT * FROM
  12. (SELECT id, timestamp, user, avatar, message
  13. FROM chatpack_log ORDER BY id DESC LIMIT 125)
  14. ORDER BY id ASC") )
  15. {
  16. $newmessages = array();
  17. while( $row = $result->fetchArray() )
  18. {
  19. $id = $row["id"];
  20. $timestamp = $row["timestamp"];
  21. $user = $row["user"];
  22. $avatar = $row["avatar"];
  23. $message = $row["message"];
  24. $timenow = time();
  25. $messagetime = date("h:iA", intval($timestamp));
  26. $messagedate = date("m-d", intval($timestamp));
  27. $message = utf8_encode($message);
  28. $msgstr = ""; // message components
  29. if( strlen($user) > 0 && strlen($message) > 0 )
  30. {
  31. // catch emoticon
  32. $emoticon = false;
  33. if( stristr($message, "specialcharemoticon") )
  34. {
  35. $emoticonid = substr($message, 11);
  36. $message = "<img class=\"emoticonimgchat\" id=\"$emoticonid\" src=\"img/$emoticonid.png\">";
  37. $emoticon = true;
  38. }
  39. // catch image
  40. $image = false;
  41. if( stristr($message, "specialcharimg") )
  42. {
  43. $imagename = substr($message, 14);
  44. $message = "<img class=\"thumbnailimgchat\" id=\"$imagename\" src=\"uploads/$imagename\">";
  45. $image = true;
  46. $endingpos = strpos($imagename, ".");
  47. $originalname = substr($imagename, 0, $endingpos-1);
  48. $ending = substr($imagename, $endingpos+1);
  49. $originalimg = $originalname . "." . $ending;
  50. }
  51. if( !$emoticon && !$image )
  52. {
  53. $message = decryptmessage($message);
  54. }
  55. // catch URLs
  56. /*$message = str_replace("https://", "http://", $message);
  57. if( !stristr($message, "http://www.") )
  58. {
  59. $message = str_replace("www.", "http://www.", $message);
  60. }
  61. $message = preg_replace("!((http|ftp)(s)?:\/\/)(www\.)?[a-zA-Z0-9.?&_/=\-\%\:,\#\+]+!",
  62. "<a href=\"$0\" target=\"_blank\">$0</a>", $message);
  63. $message = str_replace("target=\"_blank\">http://", "target=\"_blank\">", $message); */
  64. // catch highlightings
  65. $message = preg_replace("/\*{3}(.*?)\*{3}/", "<mark>$1</mark>", $message);
  66. $message = preg_replace("/\*{2}(.*?)\*{2}/",
  67. "<span style=\"font-size: 20px; color: #b77fdb;\"><em>$1</em></span>", $message);
  68. $message = preg_replace("/\*(.*?)\*/",
  69. "<span style=\"color: #d89334;\"><strong>$1</strong></span>", $message);
  70. // user online avatar
  71. //$avatar = "<img class=\"avatarimg\" id=\"$timestamp\" src=\"" . $avatar . "\">";
  72. // unique message key
  73. $keystring = $timestamp . $user . $messagetime . $message . $id;
  74. $messagekey = md5($keystring);
  75. // show user avatar and message
  76. if($user == $currentuser){
  77. $msgstr = $msgstr . "<p class=\"avatarandtext\" id=\"$messagekey\"><li><img src=\"$avatar\" id=\"$timestamp\" class=\"img-circle user-avatar $user\" alt=\"$user\"><div class=\"chat-panel blue-bg messagelike\" id=\"$id\"><div class=\"chat-heading clearfix\"><h4 class=\"pull-left zero-m\">$user</h4><p class=\"pull-right\"><i class=\"fa fa-clock-o\"></i>$messagedate $messagetime </p></div><div class=\"chat-body\">$message</div><span class=\"readed\"><i class=\"fa fa-heart red\" id=\"like$id\"></i></span></div></li></p>";//class="chat-inverted"
  78. }else{
  79. $msgstr = $msgstr . "<p class=\"avatarandtext\" id=\"$messagekey\"><li class=\"chat-inverted\"><img src=\"$avatar\" id=\"$timestamp\" class=\"img-circle user-avatar $user\" alt=\"$user\"><div class=\"chat-panel red-bg messagelike\" id=\"$id\"><div class=\"chat-heading clearfix\"><h4 class=\"pull-left zero-m\">$user</h4><p class=\"pull-right\"><i class=\"fa fa-clock-o\"></i>$messagedate $messagetime </p></div><div class=\"chat-body\">$message</div><span class=\"readed\"><i class=\"fa fa-heart red liked\" id=\"like$id\"></i></span></div></li></p>";//class="chat-inverted"
  80. }
  81. array_push($newmessages, $msgstr);
  82. }
  83. }
  84. }
  85. $db->close();
  86. function decryptmessage($msg)
  87. {
  88. $key = "OEFKSjczdG5JWkFITHZNUmFLT1I4aWRWaVVWY3l1SXdJZ285V2R3Ri90QjF4NUU1VG9mNnM
  89. wcDRYWTQ1dEtRRXRYNlFWZE01QW1WS0hTNXZzaEtRbEdkcXY4cWpEOVRBYjBzSGJlRXVPWW
  90. 9aWUtzNGZtK1BnRzRPeXk4ZWY0VUphUjc5VzRGQ2s0UXRrNENOWERJWmM3SWNFSEtpM0hpcT
  91. l2UVRET2UrMkxQR29ONVpOVDRnSHArTGVwQU15NXg4YzdNSWZQTlBOd2FlWmY2aWRQOUdSZVh
  92. 3VXQ4a1JlNDkwMWZIVE42cmpIMkRrUkg1VnF1NC9zMmhTZFROVnNleVlSTnVvcWtDYlB3TEJU
  93. eDlRT3ZPZVQ2N0psT0NFNW5nekFCdG9xLzZ6K0Qva1V5UzNoVlAxWGt1ZittZnE5ek10Q2x4Q1
  94. QrdHVRdEVoYUIxc2V1UjgrZDZyK1Zzem9LOEtpSG9halczNEpmem5nRWllSDBaRzNERHBTbUxB
  95. MGlodTZsclFEVzZLcjVBNEtYRUpxQXVNaEcycGN4U2VzT01NRlljM3pHL3Q1az0";
  96. $initvector = "aC92eG1PdGhuMXN6";
  97. $decryptedmessage = openssl_decrypt($msg, "AES-256-CBC", $key, 0, $initvector);
  98. $decryptedmessage = utf8_encode($decryptedmessage);
  99. return $decryptedmessage;
  100. }
  101. // pass new messages back to chat.js
  102. if( count($newmessages) == 1 )
  103. {
  104. echo $newmessages[0];
  105. }
  106. else
  107. {
  108. for( $i=0; $i<count($newmessages); $i++ )
  109. {
  110. if( $i == count($newmessages) - 1 )
  111. {
  112. echo $newmessages[$i];
  113. }
  114. else
  115. {
  116. echo $newmessages[$i] . "###endofmessage###";
  117. }
  118. }
  119. }
  120. ?>