Skip to content
This repository was archived by the owner on Sep 1, 2025. It is now read-only.

Commit 71e6bf4

Browse files
authored
version 2.0
1 parent 60cb755 commit 71e6bf4

File tree

1 file changed

+68
-60
lines changed

1 file changed

+68
-60
lines changed

src/session.php

Lines changed: 68 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,83 @@
11
<?php
22
/**
3-
* SESSION CLASS
3+
* SESSION
44
*
55
* @author http://weibo.com/yakeing
6-
* @version 1.3
6+
* @version 2.0
77
* $expire Default server 180 minutes client end
8-
* $uid user ID, Default automatic generation
8+
* $id user ID, Default automatic generation
9+
* $name Default PHPSESSID
910
*
10-
* 'session_name' Can customize session's name
11-
*
12-
* SAE provides a solution for Memcache storage Session
13-
* PHP 5.3 Edition
14-
* session_set_save_handler(
15-
* array($handler, 'open'),
16-
* array($handler, 'close'),
17-
* array($handler, 'read'),
18-
* array($handler, 'write'),
19-
* array($handler, 'destroy'),
20-
* array($handler, 'gc')
21-
* );
2211
*/
2312
namespace php_session;
2413
class session{
25-
public $mcsession = false;
14+
public $id = '';
15+
//__construct
16+
public function __construct($expire = false, $id = '', $name = "PHPSESSID", $limiter = 'private', $handler = null){
17+
if($this->IsSessionStarted()){
18+
if(!is_null($handler)) session_set_save_handler($handler, true);
19+
session_cache_limiter($limiter);
20+
if(is_int($expire)){
21+
session_cache_expire($expire);
22+
session_set_cookie_params($expire*60);
23+
}
24+
if(!empty($id)) session_id($id);
25+
session_name($name);
26+
session_start();
27+
}
28+
$this->id = session_id();
29+
} //END __construct
30+
31+
// session IsSessionStarted
32+
/*
33+
0 ----> PHP_SESSION_DISABLED if sessions are disabled.
34+
1 ----> PHP_SESSION_NONE if sessions are enabled, but none exists.
35+
2 ----> PHP_SESSION_ACTIVE if sessions are enabled, and one exists.
36+
*/
37+
private function IsSessionStarted(){
38+
if(php_sapi_name() === 'cli') return false;
39+
if(version_compare(phpversion(), '5.4.0', '>=')){
40+
return (session_status() === PHP_SESSION_ACTIVE ? false : true);
41+
}else{
42+
return (session_id() === '' ? true : false);
43+
}
44+
}//END IsSessionStarted
2645

27-
//Initialization
28-
function __construct($expire = false, $uid = false, $name = "MYSESSION"){
29-
if($this->mcsession){//PHP 5.6 Edition
30-
$handler = new sinacloud\sae\MemcacheSessionHandler();
31-
@session_set_save_handler($handler, true);
32-
}
33-
@session_cache_limiter('private');
34-
if(is_int($expire)){
35-
@session_cache_expire($expire);
36-
@session_set_cookie_params($expire*60);
37-
}
38-
if(!empty($uid)) @session_id($uid);
39-
@session_name($name);
40-
@session_start();
41-
} //END __construct
46+
//Set up a session Value
47+
public function Set($name, $value){
48+
if(is_scalar($value) || is_array( $value)){
49+
$_SESSION[$name] = $value;
50+
return true;
51+
}
52+
return false;
53+
} //END set
4254

43-
//Set up a session Value
44-
function Set($name, $value){
45-
if(is_scalar($value) || is_array( $value)){
46-
$_SESSION[$name] = $value;
47-
return true;
48-
}
49-
return false;
50-
} //END set
55+
//Get a session Value
56+
public function Get($name){
57+
if(isset($_SESSION[$name])){
58+
return $_SESSION[$name];
59+
}else{
60+
return false;
61+
}
62+
} //END get
5163

52-
//Get a session Value
53-
function Get($name){
54-
if(isset($_SESSION[$name])){
55-
return $_SESSION[$name];
56-
}else{
57-
return false;
58-
}
59-
} //END get
64+
//Write off a session Value
65+
public function Deletes($name){
66+
if(isset($_SESSION[$name])){
67+
unset($_SESSION[$name]);
68+
return true;
69+
}
70+
return false;
71+
} //END deletes
6072

61-
//Write off a session Value
62-
function Deletes($name){
63-
if(isset($_SESSION[$name])){
64-
unset($_SESSION[$name]);
65-
return true;
66-
}
67-
return false;
68-
} //END deletes
73+
//function frees all session variables currently registered.
74+
public function Unset(){
75+
session_unset();
76+
} //END Unset
6977

70-
//End all session Value
71-
//Use setcookie() Delete the client's SESSION ID
72-
function Destroy(){
73-
session_destroy();
74-
} //END destroy
78+
//End all session Value
79+
//Use setcookie() Delete the client's SESSION ID
80+
public function Destroy(){
81+
session_destroy();
82+
} //END destroy
7583
}

0 commit comments

Comments
 (0)