使用时出错";http「;关于查询字符串PHP

使用时出错";http「;关于查询字符串PHP,php,query-string,Php,Query String,当我在页面上使用*http://*foo字符串时,会出现错误 例如: http://www.myadress.com/process.php?url=http://foo 当我剪切http:///时,它可以工作。要在查询字符串上使用http://我必须做什么 我使用的url如下所示: $address = @$_GET['url']; $source = file_get_contents($url); //bla bla some.php?url=[s]something.com 它显示

当我在页面上使用*http://*foo字符串时,会出现错误

例如:

http://www.myadress.com/process.php?url=http://foo
当我剪切http:///时,它可以工作。要在查询字符串上使用http://我必须做什么

我使用的url如下所示:

$address = @$_GET['url'];
$source = file_get_contents($url);
//bla bla
some.php?url=[s]something.com
它显示404错误

编码没有变化

始终重定向到404错误页面。但当我删除http:///时,它就工作了。我想知道是不是因为.htaccess文件

以下是.htaccess代码(wordpress经典版):

RewriteEngine Off
#test
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# Use PHP 5.3
Action application/x-hg-php53 /cgi-sys/php53
AddHandler application/x-hg-php53 .php 
发动机关闭
#试验
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
#使用PHP5.3
动作应用程序/x-hg-php53/cgi sys/php53
AddHandler应用程序/x-hg-php53.php

与URL中的所有特殊字符一样,您必须使用它们。

与URL中的所有特殊字符一样,您必须使用它们。

根据其内容,您可能需要使用


根据其内容,您可能需要使用


您需要将斜杠替换为
%2F
,如下所示:
http://www.myadress.com/process.php?url=http:%2F%2Ffoo

然后PHP将其转换回
http://


echo$_GET[“url”];//echos

您需要将斜杠替换为
%2F
,如下所示:
http://www.myadress.com/process.php?url=http:%2F%2Ffoo

然后PHP将其转换回
http://


echo$_GET[“url”];//echos

如果http出现问题,请尝试以下方法:

$address = @$_GET['url'];
$source = file_get_contents($url);
//bla bla
some.php?url=[s]something.com
然后使用php

$url = str_replace("[s]", "http://", $url);
$source = file_get_contents($url);

如果http出现问题,请尝试以下操作:

$address = @$_GET['url'];
$source = file_get_contents($url);
//bla bla
some.php?url=[s]something.com
然后使用php

$url = str_replace("[s]", "http://", $url);
$source = file_get_contents($url);


出于安全原因,您的web托管提供商HostGator拒绝查询字符串包含
http://
的请求。有关更多信息,请参阅线程。要解决此问题,请使用部分URL,将URL放入哈希,应用某种编码,或将请求设置为POST请求并将URL放入正文。

出于安全原因,您的web托管提供商HostGator拒绝查询字符串包含http:///code>的请求。有关更多信息,请参阅线程。要解决此问题,请使用部分URL,将URL放入哈希中,应用某种编码,或将请求设置为POST请求并将URL放入正文中。

您会遇到什么错误?您在哪里使用该URL?如何对
URL
内容进行编码?就像你滥用
文件内容一样。切勿在此类函数中直接使用用户提供的输入。这与滥用文件内容无关。错误在那之前。你会得到什么错误?您在哪里使用该URL?如何对
URL
内容进行编码?就像你滥用
文件内容一样。切勿在此类函数中直接使用用户提供的输入。这与滥用文件内容无关。错误在此之前。编码没有更改。始终重定向到404错误页面。但是我删除了http://,它可以工作。我想知道是不是因为.htaccess文件?斜杠很好。引起问题的是冒号--它是URL中的一个特殊字符,而斜杠实际上不是,除非它们在第一个冒号之后折叠起来;没有任何东西会引起问题(假设你发布了整个事情)。不过,如果转义URL不起作用,它可能与您的mod_安全配置有关。编码没有变化。始终重定向到404错误页面。但是我删除了http://,它可以工作。我想知道是不是因为.htaccess文件?斜杠很好。引起问题的是冒号--它是URL中的一个特殊字符,而斜杠实际上不是,除非它们在第一个冒号之后折叠起来;没有任何东西会引起问题(假设你发布了整个事情)。不过,如果转义URL不起作用,它可能与您的mod_安全配置有关。没有更改。这在另一台服务器上工作,但在hostgator托管的服务器上不工作。太奇怪了。IIRC HostGator服务器带有mod_安全或类似的设置。它的设置可能是为了保护您自己,防止完整URL传递到脚本。(有些人只是
直接包含
URL。这是一种非常常见的漏洞,允许攻击者在您的服务器上运行任意代码。)无更改。这在另一台服务器上工作,但在hostgator托管的服务器上不工作。太奇怪了。IIRC HostGator服务器带有mod_安全或类似的设置。它的设置可能是为了保护您自己,防止完整URL传递到脚本。(有些人直接
包含
URL。这是一种非常常见的漏洞,允许攻击者在您的服务器上运行任意代码。)有一种已经设计好的解决方案(URL转义序列),可以让您传递真实的URL。按照您的建议将字符串弄乱,使其仅在
str\u替换后才有用。这是一个丑陋且容易出错的问题解决方案。@cHao,还没有为“这个”问题设计的解决方案。@Benjamin如果这可行,也许你可以使用这个解决方案。事实上,它不是很方便,但至少它是有效的!如果这确实适用于您,那么您可以将URL作为“something.com”传递,并在检索时在“http://”前面加上前缀。有一个已经设计好的解决方案(URL转义序列)可以让您传递真实的URL。按照您的建议将字符串弄乱,使其仅在
str\u替换后才有用。这是一个丑陋且容易出错的问题解决方案。@cHao,还没有为“这个”问题设计的解决方案。@Benjamin如果这可行,也许你可以使用