PHP Session: Use Multiple Session Same Request | Duplicate Session | Use Value Of Another Session | Value From Another Session.
And output is below:
<?php
$path = ini_get('session.save_path');
session_start();
$id = session_id();
$_SESSION["name"] = isset($_GET["name"]) ? $_GET["name"] : "No Name";
$_SESSION["tokens"] = array();
echo "<pre>";
echo "Session Save Path: " . $path . ",Session_id=$id\r\n\r\n";
willThisWork();
echo "\r\nORIGINAL_SESSION\r\n";
print_r($_SESSION);
function willThisWork() {
$existing = session_id();
session_write_close();
ob_start();
session_id("MyCommonSessionInstance");
session_start();
if (!isset($_SESSION["tokens"])) {
$_SESSION["tokens"] = array();
}
for ($i = 0; $i < 10000; $i++) {
array_push($_SESSION["tokens"], md5(time().rand(9999,999999)));
}
$start = microtime(true);
if (count($_SESSION["tokens"]) > 100000) {
$_SESSION["tokens"] = array_slice($_SESSION["tokens"], 75000);
}
$in_array = count($_SESSION["tokens"]).",EXISTS=" . (in_array($_SESSION["tokens"][count($_SESSION["tokens"]) - 1], $_SESSION["tokens"]));
session_write_close();
ob_get_clean();
echo("TIME_TAKE=" . ((microtime(true) - $start) / 1000))." ms\r\n";
session_id($existing);
session_start();
echo "COUNT=$in_array\r\n";
}
echo "</pre>";
And output is below:
Session Save Path: C:\xampp\tmp,Session_id=crolfji99hva2o0dflkg4ddj93
TIME_TAKE=1.2001037597656E-5 ms
COUNT=65000,EXISTS=1
ORIGINAL_SESSION
Array
(
[name] => No Name
[tokens] => Array
(
)
)