mirror of
https://github.com/php/php-src.git
synced 2024-11-25 19:05:31 +08:00
126 lines
3.9 KiB
PHP
126 lines
3.9 KiB
PHP
<?
|
|
# 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";
|
|
|
|
?>
|
|
|