103 lines
4.4 KiB
PHP
103 lines
4.4 KiB
PHP
<?php
|
||
/**
|
||
* 测试session跨请求持久化功能
|
||
* 用于排查微信登录中session丢失问题
|
||
*/
|
||
|
||
error_reporting(E_ALL);
|
||
ini_set('display_errors', 1);
|
||
|
||
echo "<!DOCTYPE html><html><head><meta charset='UTF-8'><title>Session持久化测试</title></head><body>";
|
||
echo "<h1>Session持久化测试</h1>";
|
||
|
||
// 启动session
|
||
if (session_status() == PHP_SESSION_NONE) {
|
||
session_start();
|
||
}
|
||
|
||
echo "<h2>当前Session信息</h2>";
|
||
echo "<p>Session ID: " . session_id() . "</p>";
|
||
echo "<p>Session 名称: " . session_name() . "</p>";
|
||
echo "<p>Session 状态: " . session_status() . "</p>";
|
||
|
||
// 检查是否有测试数据
|
||
if (isset($_GET['action'])) {
|
||
switch ($_GET['action']) {
|
||
case 'set':
|
||
// 设置测试数据
|
||
$_SESSION['test_time'] = time();
|
||
$_SESSION['test_data'] = 'Test session data - ' . date('Y-m-d H:i:s');
|
||
$_SESSION['test_counter'] = isset($_SESSION['test_counter']) ? $_SESSION['test_counter'] + 1 : 1;
|
||
echo "<p style='color: green;'>✅ Session数据已设置</p>";
|
||
break;
|
||
|
||
case 'check':
|
||
// 检查测试数据
|
||
if (isset($_SESSION['test_time'])) {
|
||
echo "<p style='color: green;'>✅ Session数据存在</p>";
|
||
echo "<p>设置时间: " . date('Y-m-d H:i:s', $_SESSION['test_time']) . "</p>";
|
||
echo "<p>测试数据: " . $_SESSION['test_data'] . "</p>";
|
||
echo "<p>访问计数: " . $_SESSION['test_counter'] . "</p>";
|
||
} else {
|
||
echo "<p style='color: red;'>❌ Session数据不存在</p>";
|
||
}
|
||
break;
|
||
|
||
case 'clear':
|
||
// 清除测试数据
|
||
unset($_SESSION['test_time']);
|
||
unset($_SESSION['test_data']);
|
||
unset($_SESSION['test_counter']);
|
||
echo "<p style='color: orange;'>🗑️ Session数据已清除</p>";
|
||
break;
|
||
}
|
||
}
|
||
|
||
echo "<h2>当前Session内容</h2>";
|
||
echo "<pre>" . print_r($_SESSION, true) . "</pre>";
|
||
|
||
echo "<h2>PHP Session配置</h2>";
|
||
echo "<table border='1' cellpadding='5'>";
|
||
echo "<tr><th>配置项</th><th>值</th></tr>";
|
||
echo "<tr><td>session.save_handler</td><td>" . ini_get('session.save_handler') . "</td></tr>";
|
||
echo "<tr><td>session.save_path</td><td>" . ini_get('session.save_path') . "</td></tr>";
|
||
echo "<tr><td>session.cookie_lifetime</td><td>" . ini_get('session.cookie_lifetime') . "</td></tr>";
|
||
echo "<tr><td>session.cookie_path</td><td>" . ini_get('session.cookie_path') . "</td></tr>";
|
||
echo "<tr><td>session.cookie_domain</td><td>" . ini_get('session.cookie_domain') . "</td></tr>";
|
||
echo "<tr><td>session.cookie_secure</td><td>" . (ini_get('session.cookie_secure') ? 'Yes' : 'No') . "</td></tr>";
|
||
echo "<tr><td>session.cookie_httponly</td><td>" . (ini_get('session.cookie_httponly') ? 'Yes' : 'No') . "</td></tr>";
|
||
echo "<tr><td>session.use_cookies</td><td>" . (ini_get('session.use_cookies') ? 'Yes' : 'No') . "</td></tr>";
|
||
echo "<tr><td>session.use_only_cookies</td><td>" . (ini_get('session.use_only_cookies') ? 'Yes' : 'No') . "</td></tr>";
|
||
echo "</table>";
|
||
|
||
echo "<h2>HTTP头信息</h2>";
|
||
echo "<pre>";
|
||
foreach ($_SERVER as $key => $value) {
|
||
if (strpos($key, 'HTTP_') === 0) {
|
||
echo "$key: $value\n";
|
||
}
|
||
}
|
||
echo "</pre>";
|
||
|
||
echo "<h2>Cookie信息</h2>";
|
||
echo "<pre>" . print_r($_COOKIE, true) . "</pre>";
|
||
|
||
echo "<h2>操作</h2>";
|
||
echo "<p>";
|
||
echo "<a href='?action=set' style='margin-right: 10px; padding: 5px 10px; background: #007cba; color: white; text-decoration: none;'>设置Session数据</a>";
|
||
echo "<a href='?action=check' style='margin-right: 10px; padding: 5px 10px; background: #28a745; color: white; text-decoration: none;'>检查Session数据</a>";
|
||
echo "<a href='?action=clear' style='margin-right: 10px; padding: 5px 10px; background: #dc3545; color: white; text-decoration: none;'>清除Session数据</a>";
|
||
echo "<a href='?' style='margin-right: 10px; padding: 5px 10px; background: #6c757d; color: white; text-decoration: none;'>刷新页面</a>";
|
||
echo "</p>";
|
||
|
||
echo "<h2>跨请求测试</h2>";
|
||
echo "<p>1. 点击「设置Session数据」</p>";
|
||
echo "<p>2. 在新标签页中打开此页面</p>";
|
||
echo "<p>3. 点击「检查Session数据」,看是否能读取到刚才设置的数据</p>";
|
||
|
||
echo "<h2>微信登录相关测试</h2>";
|
||
echo "<p><a href='debug_weixin.php' target='_blank'>查看微信登录调试信息</a></p>";
|
||
|
||
echo "</body></html>";
|
||
?>
|