安全地将变量从一个php文件传递到URL中的另一个php文件

时间:2011-07-19 20:58:33

标签: php

这可能是一个基本问题,我一直在寻找一种安全而干净的方法来做到这一点。我传递一个普通的字符串,其中包含特殊字符(如$ ^%等)。我怎么能在网址中这样做?例如,我有一个名为$ text的变量,它来自$ _GET的addto.php。我如何将其转移到more.php?

3 个答案:

答案 0 :(得分:5)

'more.php?varname='.urlencode($_GET['text']);

答案 1 :(得分:1)

urlencode听起来像你想要的。

(来自文档)

  

当编码要在URL的查询部分中使用的字符串时,此函数很方便,这是将变量传递到下一页的便捷方式。

答案 2 :(得分:0)

您可以通过URL传递数据,它应该是键/值对的形式,但是您不应该使用它传递太多数据,因为URL有限制。您也不应传递敏感信息。

键/值对是这样的:

key=value

如果您有多对,则需要使用& 字符分隔它们。这是一个例子:

myScript.php?color1=blue&color2=red

之后的字符串称为查询字符串。使用PHP,您可以使用超全局$ _GET轻松访问这些键/值对。所以,在myScript.php中你可以:

$a = $_GET['color1'];
$b = $_GET['color2'];

现在,如果要创建动态查询字符串,至少应使用urlencode(),因此将翻译任何特殊字符以保持正确的URL格式。

请阅读以下内容:

http://php.net/urlencode

http://php.net/manual/en/function.http-build-query.php