You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.1分页访问第1页报错求助:未定义变量$page

解决PHP分页Undefined Variable警告问题

修复代码方案

替换你现有的判断代码,改用以下方式处理$page变量:

简洁版(PHP 7+)

$page = $_GET['page'] ?? '1';

类型安全版

如果需要确保页码为有效整数:

$page = (int)($_GET['page'] ?? 1);
// 确保页码不小于1
if ($page < 1) {
    $page = 1;
}

兼容旧PHP版本写法

$page = isset($_GET['page']) && trim($_GET['page']) !== '' ? trim($_GET['page']) : '1';
// 转为整数并校验有效性
$page = (int)$page;
$page = $page < 1 ? 1 : $page;

问题根源

你原代码if ($page == "") { $page = "1"; } else { $page = $page; }的问题在于:当访问/gallery时,.htaccess规则没有传递page参数,$page变量从未被定义,直接进行比较操作就会触发"Undefined variable"警告。

你的.htaccess规则仅匹配gallery(.+)/格式的URL(比如gallery2/),会将其转发为/gallery/?page=2,但/gallery本身不会触发该规则,因此PHP无法获取到page参数,导致变量未定义。

可选:优化.htaccess规则

如果希望/gallery/(带斜杠)也能被识别为第1页,可以补充一条规则:

RewriteEngine On
RewriteBase /
# 匹配gallery/ 直接映射到第1页
RewriteRule ^gallery/$ /gallery/?page=1 [L]
# 匹配带数字后缀的gallery URL
RewriteRule ^gallery([0-9]+)/ /gallery/?page=$1 [L]

这样不管访问/gallery还是/gallery/,都能正确传递page=1的参数,配合PHP代码彻底避免警告。

内容的提问来源于stack exchange,提问作者Tilly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 11:30:56