4
0

checkuser.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. $user = $_POST["user"];
  3. if( $db = new SQLite3("../chatpack.db") )
  4. {
  5. if( $db->busyTimeout(5000) )
  6. {
  7. if( $db->exec("PRAGMA journal_mode = wal;") )
  8. {
  9. if( $result = @$db->query("SELECT timestamp, user FROM chatpack_log
  10. WHERE LOWER(user)= LOWER('$user') ORDER BY id DESC") )
  11. {
  12. if( $row = $result->fetchArray() )
  13. {
  14. $timestamp = $row["timestamp"];
  15. $timenow = time();
  16. if( $timestamp < $timenow - 2700 ) // user's last message too old means user offline
  17. {
  18. echo "success";
  19. }
  20. else // user's last message young enough means user still online
  21. {
  22. echo "usernametaken";
  23. }
  24. }
  25. else // username available
  26. {
  27. echo "success";
  28. }
  29. }
  30. else
  31. {
  32. errormessage("querying database while checking user");
  33. }
  34. if( !@$db->close() )
  35. {
  36. errormessage("closing database connection after checking user");
  37. }
  38. }
  39. else
  40. {
  41. errormessage("setting journal mode");
  42. }
  43. }
  44. else
  45. {
  46. errormessage("setting busy timeout");
  47. }
  48. }
  49. else
  50. {
  51. errormessage("using SQLite");
  52. }
  53. function errormessage($msg)
  54. {
  55. echo "<div style=\"margin-top: 50px;\">";
  56. echo "<span style=\"color:#d89334;\">error </span>";
  57. echo $msg;
  58. echo "</div>";
  59. }
  60. ?>