以下声明似乎无效。我也没有收到任何错误消息。
header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q="+$query);
我在search.php文件中使用了file_put_contents()。
有没有办法找出可能出错的地方?
答案 0 :(得分:12)
改变这个:
+$query
到此:
.$query
<强>因为:强>
+ 是JavaScript的连接运算符,其中。是php的连接参数
此外,您发送的路径似乎不正确。 header函数内的参数应该是一个完整的Web地址,例如从http
开始:
header('Location: http://www.example.com/');
虽然您的答案是使用本地文件路径:"Location: /home/shaliu/Projects/Nominatim..."
。
答案 1 :(得分:2)
请尝试:
您可以使用:
header("Location: http://www.example.com/search.php?q=".$query);
exit();
或者,如果您的search.php文件位于根目录:
header("Location: /search.php?q=".$query);
exit();
它可能对你有帮助。
答案 2 :(得分:1)
输入error_reporting(E_ALL);
使用相对路径。
使用
更改此设置 header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q="+$query);
在php中连接使用&#34;。&#34;,&#34; +&#34;用于javascript而不是php
header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q=".$query);
请确保您的路径正确
答案 3 :(得分:1)
将+
修改为.
之后,正如@Webeng先前所述。
如果您通过在浏览器中键入/home/shaliu/Projects/Nominatim/website/index.php
来访问您的页面,则标题根本不起作用,因为您不在Web上下文中,而是在本地文件视图上下文中。
如果您通过http://localhost/Nominatim/index.php
访问它,您将处于网络环境中,但您的标题无法正常工作,因为您在技术上将重定向发送到http://localhost/home/shaliu/Projects/Nominatim/website/search.php
的路径,这可能在此处不存在地点。如果您的/search.php
文件夹已链接到website/
或任何足够的内容,则应将其更改为:http://localhost/
,而不是取决于您的环境配置。
答案 4 :(得分:0)
你可以尝试一下。我希望它会有所帮助
header('Location: http://www.example.com/search.php?q='.$query);
答案 5 :(得分:0)
header()用于发送http标头(http://php.net/manual/en/function.header.php)。看起来好像是在尝试使用本地文件路径而不是http(web)地址访问php文件。 &#34; /home/shaliu/Projects/Nominatim/website/search.php"需要是Web可访问的,并且该地址是header()中需要使用的内容(参见@ Purushotham的回答)。
答案 6 :(得分:0)
header("Location:https://www.example.com/search.php?q='<?php echo $get_id; ?>'");
请尝试这个PHP代码。 如果您在php第一个标题和位置使用标题,那么问题标记您的搜索获取ID。
答案 7 :(得分:0)
如果您正在使用
/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);
答案 8 :(得分:0)
尝试使用“如果文件存在”的测试代码:
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会返回错误!
答案 9 :(得分:0)
您需要用点(。)替换加号( + )来连接字符串。
试试这个。
header('Location: http://www.example.com/search.php?q='.$query);
答案 10 :(得分:0)
除了已经指出的明显的连接问题之外,看起来这条路径/home/shaliu/Projects/Nominatim/website/search.php
是*NIX
路径;给定/home/<user>
模式,它开始。
如果是这种情况,并且您尝试在Web服务器根目录之外打开文件,那么您的问题很可能是权限问题。将您的search.php
移动到Web服务器进程可访问的位置,并在您尝试打开Web服务器进程的文件上运行chmod
/ chown
可能会让您感到厌烦。此外,您可能必须指定您正在使用的操作系统,以防您还需要运行chcon
。
哦,我本来是一个评论,但似乎我没有必要的代表来添加评论。