Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
URL地址中带撇号的PHP问题_Php_.htaccess_Rewrite_Urlencode_Apostrophe - Fatal编程技术网

URL地址中带撇号的PHP问题

URL地址中带撇号的PHP问题,php,.htaccess,rewrite,urlencode,apostrophe,Php,.htaccess,Rewrite,Urlencode,Apostrophe,我有一个搜索表单网站。。。当您键入撇号时,第一个结果页面将正确显示,其中仅显示名称中带有撇号的结果,但导航栏的链接无法正常工作:例如,当您单击链接并加载页面时,该链接将变为,并混淆结果(是的,我可以使用raw_url_decode()但是第一个结果页与其他结果页不一致,因为第一个结果页不应被解码) 我应该使用一些规则还是什么 另外,如果我只做标题(“Location:http://example.com/search.php=q=%27”),即使我在“%27”字符串上使用了raw\u url\u

我有一个搜索表单网站。。。当您键入撇号时,第一个结果页面将正确显示,其中仅显示名称中带有撇号的结果,但导航栏的链接无法正常工作:例如,当您单击链接并加载页面时,该链接将变为,并混淆结果(是的,我可以使用raw_url_decode()但是第一个结果页与其他结果页不一致,因为第一个结果页不应被解码)

我应该使用一些规则还是什么

另外,如果我只做标题(“Location:http://example.com/search.php=q=%27”),即使我在“%27”字符串上使用了raw\u url\u decode(),或者甚至在url\u encode()和url\u decode()上使用了raw\u url\u decode(),也会出现同样的问题

即使结果的解决方案是在解码中,我也希望显示我想要显示的URL,并且我实际上无法发送到URL中包含%27的页面,因为它总是变成%2527。。。所以请告诉我如何更改URL,而不是结果


不管怎样,你可以自己去echidnavideos.it,在搜索栏中搜索它。。。然后尝试转到第2页或第3页,您可以编写一些PHP代码,将出现的%2527和%27重写为撇号。这应该在代码的开头完成

$newstring = str_replace("%2527", "\'", $_GET["q"]);
$newstring = str_replace("%27", "\'", $newstring);
因此,请这样做:

// if navbar is needed
$q = str_replace("%2527", "\'", $q);
$q = str_replace("%27", "\'", $q);
if($pages > 1){

    $links = 1;
    $a = array();

你能发布更多的代码吗?我只发送了$u GET['q']来在db$command=“INSERT-INTO-searched(query)VALUES('””)”$query=mysql\u query($command)@user3390335完全没有意义,已被弃用,是sql注入中心库,它为您的siteOP提供了一个漏洞,如果您发送查询“(从搜索中删除)”,它将删除表中的所有行。这样就容易受到SQL注入攻击。每个人所说的没有意义的是,为什么要插入一行而不是select语句。此外,将urldecode()和encodeURIComponent分别与PHP和Javascript一起使用应该可以解决您的问题。问题不在于处理查询字符串,而在于处理地址栏中的url。当我在表单中搜索它时,它显示$q=%27,但当我点击结果第二页的链接时,它显示$q=%2527。。。我无法用urldecode()或raw_url_decode()避免它,因为如果我按页眉(“位置:…”)链接页面,我会遇到同样的问题;只要代码将URL解释为撇号,URL就不重要。这不会改变URL,而是会改变PHP代码解释的查询字符串。这将解决此问题。问题是URL中的更改导致查询字符串从撇号更改为%27。这就解决了这个问题。但我希望URL是正确的,只是为了美观的需要。看在上帝的份上,为什么wordpress博客很容易做到这一点?我不想处理这个问题,我想解决它。