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

PHP使用header()跳转时URL中lidnummer参数传值错误问题咨询

问题1解决方法

你当前跳转URL异常的核心原因是header函数内的字符串拼接语法错误:你用双引号包裹跳转地址时,错误把单引号、拼接符.直接写在了字符串内部,导致这些符号被当作普通参数值编码输出,才会出现%27(单引号URL编码)、%2E(点号URL编码)这类异常字符。
修复按以下两步操作:

  1. 先在create.php中正确接收表单传递的lidnummer参数,跳转前要确保你已经拿到了正确的ID值:
<?php
// 处理添加电话号码的请求
if (isset($_POST['add_telnr'])) {
    // 接收POST传递的lidnummer,转整数过滤更安全
    $lidnummer = intval($_POST['lidnummer']);

    // ===== 这里写你保存电话号码到数据库的业务逻辑 =====

    // 正确的跳转写法,二选一即可
    // 写法1:双引号支持直接解析变量,不用额外拼接
    header("Location: ../lid.php?lidnummer=$lidnummer");
    // 写法2:用单引号加拼接符的正确写法
    // header('Location: ../lid.php?lidnummer=' . $lidnummer);
    exit(); // 跳转后必须加exit终止后续代码执行
}
?>
  1. 补充:你当前添加邮箱的表单没有加lidnummer隐藏字段,后续提交加邮箱请求也会出现同样问题,给这个表单也补上隐藏字段即可:
<form action="includes/create.php" method="POST">        
    <label for="email">
        Email:
        <input type="text" name="email">
    </label>
    <!-- 补上隐藏字段 -->
    <input type='hidden' name='lidnummer' value='<?php echo $lidnummer ?>'>
    <button type="submit" name='add_email'>Voeg email toe</button>
</form>

问题2排查方案

如果修复跳转后仍然异常,按以下顺序排查即可:

  • 先校验传值是否正常:在create.php接收参数后临时加一行var_dump($lidnummer);exit;,提交表单后看输出的ID值是否正确,排除表单传值失败的问题。
  • 检查跳转路径是否正确:如果相对路径混乱,可以改成站点绝对路径,比如你的lid.php在站点根目录就写成header("Location: /lid.php?lidnummer=$lidnummer");,避免相对路径层级错误。
  • 检查header函数前是否有输出:header执行前不能有任何输出(包括空格、HTML标签、echo打印内容、PHP报错信息),如果有前置输出会导致跳转失效,可以在header前加一行ob_clean();清空缓冲区兜底。
  • 兜底传参方案:如果GET传参确实不稳定,可以用SESSION暂存参数:提交表单后把lidnummer存入$_SESSION['lidnummer'],跳转到lid.php后优先取GET参数,取不到再读SESSION里的值,读取后可以清空SESSION里的临时参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:24:07