以下语句似乎不起作用。我也没有收到任何错误消息。
header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q="+$query);
我在搜索.php文件中使用 file_put_contents()。
有没有办法找出可能出现的问题?
更改以下内容:
+$query
对此:
.$query
因为:
+ 是 JavaScript 的串联运算符,其中 . 是 PHP 的串联参数
此外,您发送的路径似乎不正确。header 函数中的参数应该是一个完整的网址,例如以 http
开头:
header('Location: http://www.example.com/');
当您的答案是使用本地文件路径时:"Location: /home/shaliu/Projects/Nominatim..."
.
请尝试:
您可以使用:
header("Location: http://www.example.com/search.php?q=".$query);
exit();
或者,如果您的搜索.php文件位于根目录中:
header("Location: /search.php?q=".$query);
exit();
它可能会对你有所帮助。
放error_reporting(E_ALL);
使用相对路径。
更改此内容
header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q="+$query);
在 php 中用于连接使用 ".","+" 在 javascript 中使用,而不是在 php 中使用
header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q=".$query);
请使您的文件路径正确
在将+
固定为 .
之后,如 @Webeng 之前所说。
如果您通过在浏览器中键入/home/shaliu/Projects/Nominatim/website/index.php
来访问页面,则标题根本不起作用,因为您不在 Web 上下文中,而是在本地文件视图上下文中。
如果您通过 http://localhost/Nominatim/index.php
访问它,您将处于 Web 上下文中,但您的标头不起作用,因为从技术上讲,您正在发送重定向到 http://localhost/home/shaliu/Projects/Nominatim/website/search.php
路径,该路径可能不存在于此位置。取而代之的是,您应该将其更改为: /search.php
website/
文件夹是否链接到http://localhost/
或任何足够的内容,取决于您的环境配置。
你可以试试这个。我希望它会有所帮助
header('Location: http://www.example.com/search.php?q='.$query);
header( ) 用于发送 HTTP 标头 (http://php.net/manual/en/function.header.php)。看起来您正在尝试使用本地文件路径而不是http(网络)地址访问php文件。"/home/shaliu/Projects/Nominatim/website/search.php"需要是 Web 可访问的,并且该 Web 地址是需要在 header() 中使用的(参见 @Purushotham 的答案)。
如果您正在使用
/home/shaliu/Projects/Nominatim/website/search.php
在这种情况下,您的位置以/开头,这意味着主文件夹(目录)应该位于服务器的根文件夹中。例如,作为本地服务器,如果我们考虑XAMPP,那么主文件夹应该在C:''xampp''htdocs(一般来说)中,如果我们考虑WAMP,那么主文件夹应该在www文件夹中。
如果您的主文件夹位于当前页面所在的文件夹中,则应使用
home/shaliu/Projects/Nominatim/website/search.php
否/(需要正斜杠)。
第二件事是您需要将 + 替换为 . 以连接字符串。
因此,如果您的主文件夹位于服务器的根目录中,那么您应该使用
header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q=".$query);
否则,您应该选择
header("Location: home/shaliu/Projects/Nominatim/website/search.php?q=".$query);
尝试使用"如果文件存在"进行测试以下代码:
if(is_file("/home/shaliu/Projects/Nominatim/website/search.php")) {
header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q=".$query);
} else {
echo "Error!";
}
请记住:在 php 中用于连接使用
.
(@shivani parmar)请记住:如果在任何 HTML 元素之后调用
header
,php 将返回错误!
header("Location:https://www.example.com/search.php?q='<?php echo $get_id; ?>'");
请尝试此 php 代码。如果您在 PHP 中第一个标题和位置中使用标头,请为您的搜索 get ID 打上问号。
您需要将 plus(+) 替换为 dot(.) 来连接字符串。
试试这个。
header('Location: http://www.example.com/search.php?q='.$query);
除了已经指出的明显的串联问题之外,看起来这条路径/home/shaliu/Projects/Nominatim/website/search.php
是一条*NIX
路径; 考虑到它开始的/home/<user>
模式。
如果是这种情况,并且您尝试像这样打开Web服务器根目录之外的文件,那么您的文件很可能是权限问题。将search.php
移动到 Web 服务器进程可访问的位置,并在您尝试打开 Web 服务器进程的文件上运行 chmod
/chown
可能会解决您的问题。此外,您可能必须指定正在使用的操作系统,以防万一您还需要运行chcon
.
哦,我会对此发表评论,但似乎我没有必要的代表来添加评论。