gpt4 book ai didi

php - 在表单提交时传递当前 URL

转载 作者:可可西里 更新时间:2023-11-01 13:43:29 24 4
gpt4 key购买 nike

作为 Adding Values to a Query String in a URL 的延续,我有一个搜索框,它将向当前 URL 添加额外的参数。

http://example.com/?s=original+new+arguments&fq=category

表单代码如下所示:

<form id="FilterSearch" method="get" action="http://example.com/search_result.php">

其中 search_result.php 只是我创建的一个新页面,用于使用新 URL 解析提交和重定向。

如何将原始 URL 传递给 search_result.php,以便我随后可以操作该 URL?

编辑#1:我添加了一个隐藏的输入:

<?php $current_url = $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>
<input type="hidden" name="current_url" value="<?php $current_url; ?>" />
<input name="send" id="send" type="submit" value="Search" />

我的输出只是将参数添加到提交页面 (search_result.php) 而不是预期的查询页面。

<?php
if (isset($_GET['send'])){
$searchField = urlencode($_GET['SearchField']);
$location = $_GET['current_url'];
$location = preg_replace($location, '/([?&]s=)([^&]+)/', '$1$2+'.$searchField);
header('Location: '.$location);
}
?>

我要么传递错误,要么传递错误,要么两者兼而有之!

编辑 #2:输出 URL 如下:

http://example.com/wp-content/themes/child_theme/search_result.php?SearchField=newTerm&current_url=www.example.com%2F%3Fs%3DoldTerm%26searchsubmit%3D&send=Search

编辑#3我回显了输出 URL,它是正确的。我摆脱了 preg_match 只是为了看看我在处理表单时是否可以获得相同的 URL。有趣的是,我找不到一个页面。我决定在 header 中添加 http://,它起作用了:

header('Location: http://'.$location);

因此,我认为这里唯一的错误是 preg_replace。

最佳答案

我认为您正在寻找隐藏的输入。

像这样:

<input type="hidden" name="current_url" value="(Current URL here)" />

然后像访问任何其他 $_GET 或 $_POST 参数一样访问它。


编辑以响应编辑:

你能echo $location; die; 在这一行之后:

$location =  $_GET['current_url'];

让我知道输出是什么?这将告诉我们它是被错误地传递还是被错误地处理。

关于php - 在表单提交时传递当前 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com