summaryrefslogtreecommitdiff
path: root/tests/executor/user_session_handler.phpt
blob: aa9d67c61f83a011ef22766d12b05cfadd26f88f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
--TEST--
Testing user session handler functions
--SKIPIF--
<?php include "../skipifnotcli.inc"; ?>
--INI--
suhosin.log.syslog=0
suhosin.log.script=0
suhosin.log.sapi=2
suhosin.session.encrypt=On
session.save_path=SUHOSIN_TEST_CASE
--FILE--
<?php
   
$GLOBALS['test_array_session'] = array();
$GLOBALS['msg'] = array();

function sess_open($savePath, $sessionName)
{
	$GLOBALS['msg'][] = "open $savePath -> $sessionName";
}
function sess_close()
{
	$GLOBALS['msg'][] = "close";
}
function sess_read($id)
{
	$GLOBALS['msg'][] = "read $id";
	return @$GLOBALS['test_array_session'][$id];
}
function sess_write($id, $data)
{
	$GLOBALS['msg'][] = "write $id - $data";
	$GLOBALS['test_array_session'][$id] = $data;
	return true;
}
function sess_destroy($id)
{
	$GLOBALS['msg'][] = "destroy $id";
}
function sess_gc($lifetime)
{
}
    
session_set_save_handler ( "sess_open" , "sess_close" , "sess_read" , "sess_write" , "sess_destroy" , "sess_gc" );
session_id(md5("testsession1"));
session_start();

$_SESSION['test1'] = "test";
$_SESSION['test2'] = 12345;
$_SESSION['test3'] = array();
$_SESSION['test4'] = new StdClass();

session_write_close();

session_start();

var_dump($_SESSION);
var_dump($msg);

?>
--EXPECTF--
array(4) {
  ["test1"]=>
  string(4) "test"
  ["test2"]=>
  int(12345)
  ["test3"]=>
  array(0) {
  }
  ["test4"]=>
  object(stdClass)#1 (0) {
  }
}
array(6) {
  [0]=>
  string(35) "open SUHOSIN_TEST_CASE -> PHPSESSID"
  [1]=>
  string(37) "read 4cdacd154c45b08c35d83f3b514eddab"
  [2]=>
  string(%d) "write 4cdacd154c45b08c35d83f3b514eddab - %s"
  [3]=>
  string(5) "close"
  [4]=>
  string(35) "open SUHOSIN_TEST_CASE -> PHPSESSID"
  [5]=>
  string(37) "read 4cdacd154c45b08c35d83f3b514eddab"
}