<?php # # codeMaker Alpha 0.1.1 ( haowei.me ) # This framework comply with the GPL license agreement # class session_handler { protected $maxlifetime = null; protected $dbHandle = null; public $config = null; public static function init($args) { return new self($args); } public function __construct($args) { $this->config = $args; $this->maxlifetime = get_cfg_var("session.gc_maxlifetime"); session_set_save_handler( array($this, "open"), array($this, "close"), array($this, "read"), array($this, "write"), array($this, "destroy"), array($this, "gc")); } public function open() { $this->link = mysqli_connect( $this->config['host'], $this->config['user'], $this->config['password'], $this->config['database']); mysqli_set_charset($this->link, "utf8"); $sql = 'CREATE TABLE IF NOT EXISTS `%s` ( `session_id` varchar(255) NOT NULL, `session_data` text, `session_expires` char(10) NOT NULL, PRIMARY KEY (`session_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;'; $sql = sprintf($sql, $this->config['table']); mysqli_query($this->link, $sql); return true; } public function close() { return true; } public function read($session_id) { if(empty($session_id)) return null; $sql = 'SELECT `session_data` AS `data` FROM `%s` WHERE `session_id` = "%s" AND `session_expires` > "%u"'; $sql = sprintf($sql, mysqli_real_escape_string($this->link, $this->config['table']), mysqli_real_escape_string($this->link, $session_id), time()); $result = mysqli_query($this->link, $sql); $row = mysqli_fetch_assoc($result); return $row['data']; } public function write($session_id, $session_data) { if(empty($session_id)) return null; $newExpires = time() + $this->maxlifetime; $sql = 'REPLACE INTO `%s` SET `session_id` = "%s", `session_data` = "%s", `session_expires` = "%u"'; $sql = sprintf($sql, mysqli_real_escape_string($this->link, $this->config['table']), mysqli_real_escape_string($this->link, $session_id), mysqli_real_escape_string($this->link, $session_data), $newExpires); $result = mysqli_query($this->link, $sql); return mysqli_affected_rows($this->link); } public function destroy($session_id) { $sql = 'DELETE FROM `%s` WHERE `session_id` = "%s"'; $sql = sprintf($sql, mysqli_real_escape_string($this->link, $this->config['table']), mysqli_real_escape_string($this->link, $session_id)); $result = mysqli_query($this->link, $sql); return mysqli_affected_rows($this->link); } public function gc() { $sql = 'DELETE FROM `%s` WHERE `session_expires` < "%u"'; $sql = sprintf($sql, mysqli_real_escape_string($this->link, $this->config['table']), time()); $result = mysqli_query($this->link, $sql); return mysqli_affected_rows($this->link); } } class session { public static $collection = null; public static function open($clean = false, $token = false) { if($clean) ob_end_clean(); if($token) session_id($token); session_start(); self::$collection = $_SESSION; } public static function id() { $num_args = func_num_args(); if($num_args) { $args = func_get_arg(0); return session_id($args); }else{ return session_id(); } } public static function get($name) { return isset($_SESSION[$name]) ? $_SESSION[$name] : null; } public static function set($name, $value) { $_SESSION[$name] = $value; return true; } public static function delete($name) { if(!isset($_SESSION[$name])) return null; unset($_SESSION[$name]); return true; } public static function destroy() { session_destroy(); } } $config = array( "host"=> "127.0.0.1", "user"=> "root", "password"=> "123456", "database"=> "test", "charset"=> "utf8", "table"=> "user_session"); session_handler::init($config); session::open(); session::set("profile", array("id"=> 1, "user"=> "haowei", "vip-level"=> 6));
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
3 몇 주 전ByDDD
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
2 몇 주 전ByDDD
Atomfall에서 크레인 제어 키 카드를 찾을 수 있습니다
3 몇 주 전ByDDD
R.E.P.O. 저축 설명 (및 파일 저장)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
