我尝试使用$ _GET获取两个参数,如下所示:
index.php:
<?php
include("../includes/simple_html_dom.php");
echo ("<!-- Written By: Alaa Elrifaie -->\n");
// Fetch user input
$data = htmlspecialchars($_GET["data"]);
$key = htmlspecialchars($_GET["key"]);
// Test if values have been fetched
echo($data . '<br>' . $key);
?>
传递这样的单词时效果很好:
http://www.mywebsite.com/index.php?data=OneWord&key=AlsoOneWord
但它会给出一个&#34; 404错误&#34;在尝试传递完整字符串时:
http://www.mywebsite.com/index.php?data=This is a set of data&key=This is the key!
// This doesn't work
如何解决?因为我有必要实现它!
答案 0 :(得分:0)
&#34;错误请求&#34; (通常是400状态代码)告诉您,您(客户端)向服务器发送了无法理解的输入。所以你的剧本没有什么问题,而是你传给它的东西。
正如您的问题下面的评论指出的那样,可能是这种情况,因为您向服务器发送了格式错误的请求字符串。查询参数(&#34;?&#34;在URL中的所有内容)必须进行编码,因此不是
http://www.mywebsite.com/index.php?data=This is a set of data&key=This is the key!
// This doesn't work
你应该试试
http://www.mywebsite.com/index.php?data=This%20is%20a%20set%20of%20data&key=This%20is%20the%20key!
// This should work
有关在线urlencoder / decoder,请参阅this tool。 PHP有一个内置函数:urlencode将空格编码为&#39; +&#39;或rawurlencode将空格编码为&#39;%20&#39; (服从RFC3986)