PHP如何通过URL传递多个变量?单变量传递已实现
多变量通过URL跳转传递的实现方法
问题背景
因include功能无法正常使用,采用URL跳转方式在脚本间传递变量,单变量传递可正常运行:
- Skript 1 代码:
$QT = $_POST["QT"]; header("location: ../main/Skript2.php/?number=$QT");
- Skript 2 代码:
<?php $QT = $_GET['number']; echo $QT; ?>
但尝试传递多个变量时写法错误导致失效,错误写法:
header("location: ../main/ProcessOrder.php/?number=$QT/url=$var2");
解决方案
URL中多个GET变量的分隔符是&,不是/,同时为避免变量值包含特殊字符导致传递异常,建议对变量值做URL编码处理(使用urlencode()函数)。
正确的Skript 1 写法:
$QT = $_POST["QT"]; $var2 = "你的第二个变量值"; // 对变量值进行URL编码 $encoded_QT = urlencode($QT); $encoded_var2 = urlencode($var2); // 使用&分隔多个GET参数 header("location: ../main/ProcessOrder.php?number=$encoded_QT&url=$encoded_var2"); exit; // 跳转后终止脚本执行,避免后续代码运行
目标脚本(ProcessOrder.php)接收变量的写法:
<?php $QT = $_GET['number']; $var2 = $_GET['url']; // 按需处理变量值 echo $QT . "<br>" . $var2; ?>
注意事项
- 多个GET参数必须用
&分隔,标准格式为?参数1=值1&参数2=值2 - 变量值包含空格、
&、=等特殊字符时,必须用urlencode()编码,否则会引发参数传递错误 - 执行
header("location: ...")后,一定要添加exit;或die();,防止脚本继续执行后续代码
内容的提问来源于stack exchange,提问作者Theo Meyer
相关产品推荐
相关产品推荐

