session.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. if(!isSession()){
  3. logout("nosession");
  4. }
  5. else{
  6. $session_id = getSession();
  7. $ip = $_SERVER['REMOTE_ADDR'];
  8. $result_session = 0;
  9. if($stmt1 = $mysqli -> prepare("SELECT `uid`, `username`, `current_login`, `last_login`, `remember`, `force_change` FROM `login` WHERE `session_id`=?")){
  10. $stmt1 -> bind_param('s', $session_id);
  11. $stmt1 -> execute();
  12. $stmt1 -> bind_result($userid, $username, $session_time, $last_login, $remember, $force_change);
  13. while($result1 = $stmt1 -> fetch()){
  14. $result_session += 1;
  15. }
  16. $stmt1 -> close();
  17. }
  18. if($result_session<1){
  19. logout("nosession");
  20. }
  21. elseif($result_session==1){
  22. $session_time = date_create($session_time);
  23. $curr_time = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') .' +7 hour'));
  24. $curr_time = date_create($curr_time);
  25. $interval = date_diff($session_time, $curr_time, false);
  26. $interval = $interval->format('%H:%I:%S');
  27. if(strtotime($interval) < strtotime(SESSION_TIME) || $remember == 1){
  28. if($stmt1 = $mysqli -> prepare("UPDATE `login` SET `current_login`=(NOW() + INTERVAL 7 HOUR) WHERE `uid`=?")) {
  29. $stmt1 -> bind_param('i', $userid);
  30. $stmt1 -> execute();
  31. $stmt1 -> close();
  32. }
  33. //Load everything from the user
  34. if($stmt1 = $mysqli -> prepare("SELECT first_name, last_name, username, email, radiotoken FROM login LEFT JOIN users ON users.uid = login.uid WHERE login.uid = ?")){
  35. $stmt1 -> bind_param('i', $userid);
  36. $stmt1 -> execute();
  37. $stmt1 -> bind_result($first_name, $last_name, $username, $useremail, $radiotoken);
  38. $stmt1 -> fetch();
  39. $stmt1 -> close();
  40. }
  41. }else{
  42. logout("session");
  43. }
  44. }
  45. else{
  46. logout("error");
  47. }
  48. }
  49. ?>