summaryrefslogtreecommitdiff
path: root/ext/msession/msession-test.php
blob: e591fcca70a3ffda3b10d6a12c9adcdc9e26803c (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?
#	msession-test.php
#	This is a test page for msession functions.
#	most msession functions are used in this page with
#	the exception of msession_get_data, and msession_set_data
#	which are used implicitly with the PHP session
#	extension.
#
# 
#

# Start the session system, this will connect to msession
# as configured in PHP.INI.
#
# Start sessions, this will set a cookie.
session_start();

# Now, optional, use msession_uniq() to create a guarenteed
# uniq session name.
# 
if(!$HTTP_COOKIE_VARS["PHPSESSID"])
{
	# Use uniq to create the session. This is guarenteed to be
	# uniq in the server.
	$sid = msession_uniq(32);
	setcookie ("PHPSESSID", $sid);
	session_id($sid);
	$HTTP_COOKIE_VARS["PHPSESSID"] = $sid;
	# New session, set some variables
	if(0) // One at a time
	{
		echo "Set Variable: " . msession_set($sid, 'time',time()) ."<p>\n";
		echo "Set Variable: " . msession_set($sid, 'name1','test1') ."<p>\n";
		echo "Set Variable: " . msession_set($sid, 'name2','test2') ."<p>\n";
		echo "Set Variable: " . msession_set($sid, 'name3','test3') ."<p>\n";
		echo "Set Variable: " . msession_set($sid, 'name4','test4') ."<p>\n";
		echo "Set Variable: " . msession_set($sid, 'name5','test5') ."<p>\n";
		echo "Set Variable: " . msession_set($sid, 'name6','test6') ."<p>\n";
		echo "Set Variable: " . msession_set($sid, 'name7','test7') ."<p>\n";
	}
	else // All at once in an array
	{
		$setarray = array();
		$setarray['time']=time();
		$setarray['name1'] = 'test1';
		$setarray['name2'] = 'test2';
		$setarray['name3'] = 'test3';
		$setarray['name4'] = 'test4';
		$setarray['name5'] = 'test5';
		$setarray['name6'] = 'test6';
		$setarray['name7'] = 'test7';
		msession_set_array($sid, $setarray);
	}
}
else
{
	$sid = $HTTP_COOKIE_VARS["PHPSESSID"];
}

#This makes a link between the variable $count and the
# session variable "count"
session_register("count");

$count ++;

# Output some information.
echo "sid: " . $sid . "<br>\n";
echo "Session Count: " . $count . "<br>\n";

# Use msession_randstr() to produce a random string.
# A valid string of n characters of jibberish is returned.
echo "Random String: " . msession_randstr(32) . "<br>\n";

# This is a thread safe increment, unlike PHP's session, many web servers
# can be updating this variable and collisions are managed.
# (for this to work, older versions of msessiond must be started with "-g globals"
#  newer versions create it by default)
echo "Global Count: " . msession_inc(globals, "counter") . "<br>\n";

# This gets a count of active sessions.
echo "Total active sessions: " . msession_count() . "<br>\n";

# This gets all the variables for a user in an associative array.
$varray = msession_get_array($sid);

if(!$varray)
	echo "Get variable array: Failed<br>\n";

# Display all the user's variables
$arraykeys = array_keys($varray);
for($i=0; $arraykeys[$i]; $i++)
	echo "Key: " . $arraykeys[ $i ] ." = " .$varray[$arraykeys[$i]] ."<br>\n";

	
# Find a list of all sessions with same name/value pair
$array = msession_find('name1', 'test1');

#display the sessions
for($i=0; $array[$i]; $i++)
	echo "Similar Sessions: " . $i . " " . $array[$i] . "<br>\n";

# Find all the sessions which have the variable "time" set.
$vararray = msession_listvar('time');

$arraykeys = array_keys($vararray);

for($i=0; $arraykeys[$i]; $i++)
	echo "Key: " . $arraykeys[ $i ] ." = " .$vararray[$arraykeys[$i]] ."<br>\n";

# msession can support a personality plugin, this is an escape call directly
# into the plugin's REQ_ESCAPE function.
echo "Call the plugin: " . msession_plugin($sid, 3, "test"). "<br>\n";

# msession also supprts function-only plugins. this is a call into the demo
# plugin (funct.so) which returns the uptime of the msessiond process. 
echo "Call the function: " . msession_call('fntest', "1","2", "3", "4") ."<br>\n"; 

#List ALL sessions on the system
$sarray = msession_list();

for($i=0; $sarray[$i]; $i++)
	echo "Sessions: " . $i . " " . $sarray[$i] . "<br>\n";

?>