Возможно, что-то вроде;
$_SESSION[$_SERVER['PHP_SELF']]['name'] = $value;
//Page X termination
unset($_SESSION[$_SERVER['PHP_SELF']]);
Просто кратко излагаю идеи здесь.
Расширение приватизации данных сессий; Обертка может помочь:
class Session implements ArrayAccess{
private $_data = array();
public function __construct(){
$this->_data = $_SESSION;
}
public function offsetSet($offset, $value){
$this->_data[$_SERVER['PHP_SELF']][$offset] = $value;
}
public function offsetExists($offset){
return isset($this->_data[$_SERVER['PHP_SELF']][$offset]);
}
public function offsetUnset($offset){
unset($this->_data[$_SERVER['PHP_SELF']][$offset]);
}
public function offsetGet($offset){
return isset($this->_data[$_SERVER['PHP_SELF']][$offset])
? $this->_data[$_SERVER['PHP_SELF']][$offset]
: null;
}
public function __destruct(){
$_SESSION = $this->_data;
}
}
$session = new Session;
//etc
Учитывая, что строка запроса или более релевантна, вы можете хешировать соответствующие значения для ключа.
Например: $key = md5($_SERVER['PHP_SELF'] . $_SERVER['QUERY_STRING']);
, хотя использование ключа $_SERVER['REQUEST_URI']
может быть достаточным.