Advertisement
Guest User

Untitled

a guest
Nov 14th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. <?php
  2. class SQLSrv_Session
  3. {
  4. const DB_HOST= "1DB_HOST";
  5. const DB_PASS= "DB_PASS";
  6. const DB_USER= "DB_USER";
  7. const DB_NAME= "DB_NAME";
  8. const DB_SESSION_TABLE="DB_SESSION_TABLE";
  9. /**
  10. * Database connection resource
  11. *
  12. * @var resource
  13. */
  14. private static $_sess_db;
  15. /**
  16. * Escape string for mssql query
  17. *
  18. * @param string $data
  19. * @return string
  20. */
  21. private static function sqlsrv_escape($data) {
  22. return str_replace("'","''",$data);
  23. }
  24. /**
  25. * Open the session
  26. *
  27. * @return bool
  28. */
  29. public static function open() {
  30. $connectionInfo= array (
  31. 'UID' => self::DB_USER,
  32. 'PWD' => self::DB_PASS,
  33. 'Database' => self::DB_NAME
  34. );
  35. self::$_sess_db = sqlsrv_connect(self::DB_HOST,$connectionInfo);
  36. return self::$_sess_db;
  37. }
  38. /**
  39. * Close the session
  40. *
  41. * @return boolean
  42. */
  43. public static function close() {
  44. return sqlsrv_close(self::$_sess_db);
  45. }
  46. /**
  47. * Read the session
  48. *
  49. * @param string $id
  50. * @return string
  51. */
  52. public static function read($id) {
  53. $sql = 'SELECT SCS_DATA FROM '. self::DB_SESSION_TABLE .' '.
  54. 'WHERE SCS_ID = ''.self::sqlsrv_escape($id).''';
  55. $stmt= sqlsrv_query(self::$_sess_db, $sql);
  56. if (!empty($stmt)) {
  57. $row= sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC);
  58. return $row['SCS_DATA'];
  59. }
  60. return '';
  61. }
  62. /**
  63. * Write the session
  64. *
  65. * @param string $id
  66. * @param string $value
  67. * @return boolean
  68. */
  69. public static function write($id, $value) {
  70.  
  71. echo 'aaaaaaa';
  72. $sql= 'UPDATE '.self::DB_SESSION_TABLE.' SET SCS_DATA=?,SCS_ACCESS=? WHERE SCS_ID=?';
  73. $params = array(111112, 3333322, 12222221);
  74. $stmt= sqlsrv_query(self::$_sess_db, $sql, $params);
  75. print_r($params);
  76. if (!empty($stmt)) {
  77. $result= sqlsrv_rows_affected($stmt);
  78. if ($result>0) {
  79. echo 'eeew';
  80. return true;
  81. }else{
  82. echo $result;
  83. }
  84. }
  85. $sql= 'INSERT INTO '.self::DB_SESSION_TABLE.' (SCS_DATA,SCS_ACCESS, SCS_ID) VALUES (?,?,?)';
  86. $stmt= sqlsrv_query(self::$_sess_db, $sql, $params);
  87. print_r($params);
  88.  
  89. if (!empty($stmt)) {
  90. $result= sqlsrv_rows_affected($stmt);
  91. if ($result>0) {
  92. return true;
  93. echo 'yyyyyy';
  94. }else{
  95. echo $result;
  96. }
  97. }
  98. return false;
  99. }
  100. /**
  101. * Destroy the session
  102. *
  103. * @param string $id
  104. * @return boolean
  105. */
  106. public static function destroy($id) {
  107. $sql = 'DELETE FROM '.self::DB_SESSION_TABLE.' WHERE SCS_ID = ?';
  108. $params= array(self::sqlsrv_escape($id));
  109. $stmt= sqlsrv_query(self::$_sess_db,$sql,$params);
  110. return ($stmt!==false);
  111. }
  112. /**
  113. * Garbage Collector
  114. *
  115. * @param integer $max
  116. * @return boolean
  117. */
  118. public static function gc($max) {
  119. $sql = 'DELETE FROM '.self::DB_SESSION_TABLE.' WHERE SCS_ACCESS < ?';
  120. $params= array(array(date("Y-m-d H:i:s",time() - $max)));
  121. $stmt= sqlsrv_query(self::$_sess_db, $sql, $params);
  122. return ($stmt!==false);
  123. }
  124. }
  125.  
  126. // to prevent problem of session write after close as PHP 5.0.5
  127. register_shutdown_function('session_write_close');
  128.  
  129. ini_set('session.save_handler', 'user');
  130. session_set_save_handler(array('SQLSrv_Session', 'open'),
  131. array('SQLSrv_Session', 'close'),
  132. array('SQLSrv_Session', 'read'),
  133. array('SQLSrv_Session', 'write'),
  134. array('SQLSrv_Session', 'destroy'),
  135. array('SQLSrv_Session', 'gc'));
  136.  
  137.  
  138. // display PHP error
  139. error_reporting(E_ALL);
  140. ini_set("display_errors", 1);
  141.  
  142. // set the probability of garbage collector to 1
  143. ini_set('session.gc_probability', 100);
  144. ini_set('session.gc_divisor', 100);
  145.  
  146. session_start();
  147.  
  148. $_SESSION ['lll']= 'pppp';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement