想要使用GET和POST方法

gam*_*ver 11 php http

我知道使用GET方法的结果页面可以被标记,而使用POST的结果页面不能.我也知道GET方法的限制.

现在假设我想构建一个搜索引擎,默认情况下使用GET允许用户书签,但当搜索短语的长度超过限制时,切换到POST.在服务器端,我使用$ _GET或$ _POST,具体取决于设置的内容.

这可行吗?
如果不是,为什么?
如果是,请提供简要说明.

谢谢

Pek*_*ica 13

这是可行的,没问题.

还有就是$_REQUEST那个合并GET,POST数组,cookie值,但更好的办法是处理你的脚本中手动GET和POST.

只需让你的引擎检查两者$_GET["variable"],$_POST["variable"]并使用任何设置.如果在两种方法中都设置了变量,则需要确定要优先选择哪一个.

这两种方法之间的唯一显着的区别是,一个GET参数有大小限制取决于浏览器和接收Web服务器(POST有局限性太多,但他们通常在几兆字节的范围).我认为一般规则是GET字符串不应超过1024个字符.

  • $ _REQUEST安全问题:http://thephpcode.blogspot.com/2008/09/request-security-problem.html (3认同)

nic*_*ckf 10

以下是如何在一个中使用GET和POST:

<form action="myfile.php?var1=get1&amp;var2=get2&amp;var3=get3" method="post">

    <input type="hidden" name="var1" value="post1" />
    <input type="hidden" name="var2" value="post2" />

    <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

PHP:

print_r($_REQUEST);
// var1 = "post1"
// var2 = "post2"
// var3 = "get3"

print_r($_GET)
// var1 = "get1"
// var2 = "get2"
// var3 = "get3"

print_r($_POST);
// var1 = "post1"
// var2 = "post2"
Run Code Online (Sandbox Code Playgroud)

  • 需要`method ="post"` (3认同)