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

PHP跳转后变量未定义及页面重复问题求解

问题解决方法

1. 修复Undefined variable $QT警告

用header("location: ...")跳转属于发起新的HTTP请求,原请求里的$QT变量不会自动带到新页面,得用下面两种方式传递值:

方式一:通过URL参数传递

修改Script1.php的跳转逻辑,把$QT作为GET参数拼到跳转地址后:

<?php
if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["QT"] > 10) {
  $QT = $_POST["QT"];
  // 用urlencode处理参数,避免特殊字符出错
  header("location: Skript2.php?QT=" . urlencode($QT));
  die();
}
?>

然后修改Skript2.php,直接读取GET参数,删掉include语句:

<?php
// 先检查参数是否存在,防止警告
if (isset($_GET["QT"])) {
  echo $_GET["QT"];
} else {
  echo "缺少参数";
}
?>

方式二:用Session存储变量

如果要传递敏感数据或者多个值,推荐用Session:
先在Script1.php开头启动Session:

<?php
session_start();
if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["QT"] > 10) {
  $_SESSION["QT"] = $_POST["QT"];
  header("location: Skript2.php");
  die();
}
?>

然后在Skript2.php中启动Session并读取值,同样删掉include语句:

<?php
session_start();
if (isset($_SESSION["QT"])) {
  echo $_SESSION["QT"];
  // 可选:用完后清除变量,避免后续请求误用
  unset($_SESSION["QT"]);
} else {
  echo "缺少参数";
}
?>

2. 解决页面内容重复问题

你在Skript2.php里include "Skript1.php"会执行Script1的所有代码(包括里面的HTML内容),相当于把Script1的页面内容又复制了一遍,直接删掉这个include语句就能解决。另外两个脚本都在main文件夹下,跳转地址不用加../main/,直接写Skript2.php就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:20:51