【发布时间】:2020-06-09 17:45:33
【问题描述】:
我可以使用 header 传递多个参数还是只传递一个参数?
我正在尝试实现它,但它不起作用,它无法导航:
$selected_company = $_POST['company_name'];
$company_type = $_POST['company_type'];
$url_param = "comp_id=$selected_company&comp_type=$company_type";
header("location: ./create_user.php?$url_param");
我使用的代码有什么问题? 如果我只想传递想要的参数,我可以这样做并且它可以工作:
header("location: ./create_user.php?$selected_company");
附:很奇怪,我找不到一个可行的解决方案,我认为这是一个非常普遍的问题。
【问题讨论】:
-
看起来应该可以了。这会以什么方式失败?
-
Location 标头只是指定了一个 URL。 URL 可以是包含任意数量的查询字符串参数的任何有效 URL。如果它失败了,那不是因为对 Location 标头的任何限制
-
您是否调试并检查了最终 URL 的样子?例如,变量可能需要 url 编码。无论如何,您都应该这样做以避免潜在的问题
-
但不清楚为什么您需要在那里提交多个值...如果您提交的 ID 是选项中的值,那么这应该允许您识别其余的关联值(即类型和名称)通过查找 - 我假设在您的数据库中。您不需要提交所有值,这就是拥有唯一 ID 的全部目的,并且是下拉列表的一种非常标准的用法
-
@ttt 为什么?您的创建用户脚本应该能够根据公司 ID 在数据库中查找公司类型。无论如何,它不应该依赖用户输入来建议该值,它应该是固定的并且不可影响 - 否则恶意用户可能会使用此脚本在此执行期间设置不正确的值,因此它与中的内容不匹配数据库。我看不出您需要或想要在此脚本中传递公司类型的任何理由,据我所知,它违反了所有标准做法。如果您有真正的理由,那会很有趣。
标签: php http-headers