标题位置不适用于Php

时间:2016-04-26 22:58:42

标签: php header location

以下声明似乎无效。我也没有收到任何错误消息。

header("Location: /home/shaliu/Projects/Nominatim/website/search.php?q="+$query);

我在search.php文件中使用了file_put_contents()。

有没有办法找出可能出错的地方?

11 个答案:

答案 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服务器进程可访问的位置,并在您尝试打开W​​eb服务器进程的文件上运行chmod / chown可能会让您感到厌烦。此外,您可能必须指定您正在使用的操作系统,以防您还需要运行chcon

哦,我本来是一个评论,但似乎我没有必要的代表来添加评论。