Ya está!
Finalmente sí, era necesario acceder a los archivos de sesiones creados, pero no de forma manual sino utilizando un gestor de sesiones (una clase que implemente las funciones open, close, read, write, destroy y gc) y una llamada a la función session_set_save_handler.
Para quienes se encuentren en la misma situación que yo, les adjunto el código. El de page1.php es el mismo que el anteriormente descrito, mientras que el page2.php debe contener lo siguiente (es un mero ejemplo):
Código PHP:
<?php
class FileSessionHandler
{
private $savePath;
function open($savePath, $sessionName)
{
$this->savePath = $savePath;
if (!is_dir($this->savePath)) {
mkdir($this->savePath, 0777);
}
return true;
}
function close()
{
return true;
}
function read($id)
{
return (string)@file_get_contents("$this->savePath/sess_$id");
}
function write($id, $data)
{
return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
}
function destroy($id)
{
$file = "$this->savePath/sess_$id";
if (file_exists($file)) {
unlink($file);
}
return true;
}
function gc($maxlifetime)
{
foreach (glob("$this->savePath/sess_*") as $file) {
if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
unlink($file);
}
}
return true;
}
}
$handler = new FileSessionHandler();
session_set_save_handler(
array($handler, 'open'),
array($handler, 'close'),
array($handler, 'read'),
array($handler, 'write'),
array($handler, 'destroy'),
array($handler, 'gc')
);
// lo siguiente previene de efectos inesperados al usar objetos como gestores de almacenamiento
register_shutdown_function('session_write_close');
session_id($_GET['prueba']);
session_name("prueba");
session_start();
echo "<br>color: ".$_SESSION['favcolor']."<br>";