將session儲存到資料庫中

來源:互聯網
上載者:User
Sql語句代碼

CREATE TABLE sessions (    id CHAR(32) NOT NULL,    data TEXT,    last_accessed TIMESTAMP NOT NULL,    PRIMARY KEY (id)  );

自訂會話處理代碼

<?php  /**   * Created by PhpStorm.   * User: michaeldu   * Date: 15/7/14   * Time: 下午2:57   */  $sdbc = NULL;    function open_session() {      global $sdbc;      $sdbc = mysqli_connect('192.168.31.172', 'root', 'root', 'phpadvanced');      return true;  }    function close_session() {      global $sdbc;      return mysqli_close($sdbc);  }    function read_session($sid) {      global $sdbc;      $q = sprintf('SELECT data FROM sessions WHERE  id="%s"', mysqli_real_escape_string($sdbc, $sid));      $r = mysqli_query($sdbc, $q);        if (mysqli_num_rows($r) == 1) {          list($data) = mysqli_fetch_array($r, MYSQLI_NUM);          return $data;      } else {          return '';      }  }    function write_session($sid, $data) {      global $sdbc;        $q = sprintf('REPLACE INTO sessions (id, data) VALUES ("%s", "%s")', mysqli_real_escape_string($sdbc, $sid), mysqli_real_escape_string($sdbc, $data));      $r = mysqli_query($sdbc, $q);      return true;  }    function destroy_session($sid) {      global $sdbc;      $q = sprintf('DELETE FROM session WHERE id="%s"', mysqli_real_escape_string($sdbc, $sid));      $r = mysqli_query($sdbc, $q);        $_SESSION = array();        return true;  }    function clean_session($expire) {      global $sdbc;        $q = sprintf('DELETE FROM sessions WHERE DATE_ADD(last_accessed, INTERVAL %d SECOND) < NOW()', (int)$expire);      $r = mysqli_query($sdbc, $q);        return true;  }    session_set_save_handler('open_session', 'close_session', 'read_session', 'write_session', 'destroy_session', 'clean_session');    session_start();

在普通頁面調用代碼

              colour_blue                                <?php  if(empty($_SESSION)) {      $_SESSION['blah'] = 'umlaut';      $_SESSION['this'] = 3615684.45;      $_SESSION['that'] = 'blue';      echo 'Session已儲存';  } else {      echo 'SESSION已存在, '.print_r($_SESSION, 1).'';  }    if(isset($_GET['logout'])) {      session_destroy();      echo '會話結束';  } else {      echo '登出';  }    echo '會話資料: '.print_r($_SESSION, 1).'';  ?>
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.