PageRenderTime 51ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/session_mysql.php

https://github.com/beakid/md
PHP | 113 lines | 81 code | 28 blank | 4 comment | 6 complexity | 24d4f21dfde57d04acd96c4ca6df7232 MD5 | raw file
  1. <?
  2. //till för att låsa ute en viss ip
  3. #if($REMOTE_ADDR == '127.0.0.1') die;
  4. $path = "http://localhost/~beakid/magicdraft";
  5. $SESS_DBH = "";
  6. $SESS_LIFE = 3600;
  7. if (!$SESS_DBH = @mysql_connect('localhost', 'root', '')) {
  8. echo "<center><img src=\"/Photo-102.jpg\" /><br />- Prrrrrrrrrrr.";
  9. echo "<br /><br />PS. - <script type=\"text/javascript\" src=\"http://rotation.affiliator.com/ad_rotation.php?id=2983&w=755\" /></script>
  10. </center>";
  11. die;
  12. }
  13. if (! mysql_select_db('magicdraft', $SESS_DBH)) {
  14. echo "<li>Unable to select database magicdraft";
  15. die;
  16. }
  17. session_start();
  18. function sess_open($save_path, $session_name) {
  19. global $SESS_DBH;
  20. return true;
  21. }
  22. function sess_close() {
  23. return true;
  24. }
  25. function sess_read($key) {
  26. global $SESS_DBH, $SESS_LIFE;
  27. $qry = "SELECT value FROM md_sessions WHERE sesskey = '$key'";
  28. $qid = @mysql_query($qry, $SESS_DBH);
  29. list($value) = @mysql_fetch_row($qid);
  30. return (string)$value;
  31. }
  32. function sess_write($key, $val) {
  33. global $SESS_DBH, $SESS_LIFE;
  34. $value = addslashes($val);
  35. if(strstr($val, "uid|s:"))
  36. {
  37. $uids = strpos($val, "uid|s:");
  38. $ffnutt = strpos($val, "\"", $uids + 6);
  39. $lfnutt = strpos($val, "\"", $ffnutt + 1);
  40. $uidl = $lfnutt - $ffnutt - 1;
  41. $suid = substr($val, $ffnutt + 1, $uidl);
  42. $expiry = time() + $SESS_LIFE;
  43. }
  44. else
  45. {
  46. $suid = 0;
  47. $expiry = time() + 300;
  48. }
  49. $qry = "INSERT INTO md_sessions VALUES ('$key', '$expiry', '$value', '$suid')";
  50. $qid = @mysql_query($qry, $SESS_DBH);
  51. if (!$qid) {
  52. $qry = "UPDATE md_sessions SET suid = $suid, expiry = $expiry, value = '$value' WHERE sesskey = '$key'";
  53. $qid = @mysql_query($qry, $SESS_DBH);
  54. }
  55. return $qid;
  56. }
  57. //när man loggar ut tas ligan_villspela bort oxå OCH form_keys, alltså antidubbelpostskyddet
  58. function sess_destroy($key) {
  59. global $SESS_DBH;
  60. $qry = "DELETE * FROM md_sessions WHERE sesskey ='$key'";
  61. $qid = mysql_query($qry, $SESS_DBH);
  62. return $qid;
  63. }
  64. //städar numera även bort gc:ade ligan_villspela tillsammans med session_städningen - dock inte enbart för gamla ligan_villspela
  65. function sess_gc($maxlifetime) {
  66. global $SESS_DBH;
  67. $qry = "DELETE * FROM md_sessions WHERE expiry < UNIX_TIMESTAMP()";
  68. $qid = mysql_query($qry, $SESS_DBH);
  69. return mysql_affected_rows($SESS_DBH);
  70. }
  71. session_set_save_handler(
  72. "sess_open",
  73. "sess_close",
  74. "sess_read",
  75. "sess_write",
  76. "sess_destroy",
  77. "sess_gc");
  78. $robots = array("","Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)","Hatena Antenna/0.5 (http://a.hatena.ne.jp/help)","WebAlta Crawler/2.0 (http://www.webalta.net/ru/about_webmaster.html) (Windows; U; Windows NT 5.1; ru-RU)","Gigabot/3.0 (http://www.gigablast.com/spider.html)","Apache/2.2.4 (FreeBSD) mod_ssl/2.2.4 OpenSSL/0.9.7e-p1 DAV/2 PHP/4.4.7 with Suhosin-Patch (internal dummy connection)","psbot/0.1 (+http://www.picsearch.com/bot.html)","MJ12bot/v1.0.7 (http://majestic12.co.uk/bot.php?+)","Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)","msnbot/0.9 (+http://search.msn.com/msnbot.htm)","msnbot/1.0 (+http://search.msn.com/msnbot.htm)","Googlebot/2.1 (+http://www.google.com/bot.html)","Mediapartners-Google/2.1","msnbot/0.3 (+http://search.msn.com/msnbot.htm)", "Apache/2.2.0 (FreeBSD) mod_ssl/2.2.0 OpenSSL/0.9.7e-p1 DAV/2 PHP/4.4.2 (internal dummy connection)","Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)","Gigabot/2.0/gigablast.com/spider.html","Hatena Antenna/0.4 (http://a.hatena.ne.jp/help)","Mozilla/5.0 (Twiceler-0.9 http://www.cuill.com/twiceler/robot.html)","Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)","msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)","msnbot/1.1 (+http://search.msn.com/msnbot.htm)","Mozilla/5.0 (compatible; MJ12bot/v1.2.1; http://www.majestic12.co.uk/bot.php?+)","Mozilla/5.0 (X11; U; Linux x86_64; sv-SE; rv:1.9b5) Gecko/2008041515 Firefox/3.0b5");
  79. session_set_cookie_params(0);
  80. if(!in_array($_SERVER['HTTP_USER_AGENT'], $robots)) {
  81. $apa = $_SERVER['HTTP_USER_AGENT'];
  82. session_register("apa");
  83. session_register($REMOTE_ADDR);
  84. }
  85. if(!session_is_registered("uid")) unset($uid);