2

我这样做了一个GET请求:

http://www.smurf.com/path/?var=val

这显示在用户的 URL 中。我当然在几乎每个主要网站上都看到了这一点。

但我只是好奇是否有办法解决它。对于非程序员来说,这似乎有点丑陋且不必要。

如果没有最新的东西,是否有计划在完成后摆脱 GET 请求语法?

所以只有

http://www.foo.com/path/

请求后。

4

2 回答 2

3

似乎您正在寻找一个POST请求。POST 请求在 PHP 中的工作方式与 GET 请求相同,只是使用$_POST超全局而不是$_GET超全局来获取 POST 请求参数。

在 POST 请求中,数据就像 GET 一样发送(有一些不可忽视的差异),但是它在 URL 中不可见,因此它完全符合您想要的描述。像 GET 一样发送数据,但用户不会在 URL 中看到它。

示例 HTML 表单:

<form method="post" action="handler.php">
    <input type="text" name="username"></input>
</form>

然后,如果用户提交了此表单,您可以在 PHP 中获取 post 参数“用户名”,就像获取 GET 一样。

<?php
   $username = $_POST["username"];
?>

然后根据自己的喜好使用它!

此外,如果不提及 POST/GET 请求的预期用途,那也是我的疏忽。传统上,当数据被发送到服务器以供稍后存储/使用时,例如在数据库或在线论坛中,应该使用 POST 请求。或者,应该使用 GET 请求从服务器请求(“获取”)数据,而不是提供将要存储的数据。以这种方式使用请求是一种最佳实践,但经常被忽略,因为它不是由语言强制执行的,而只是一个原则。

于 2013-07-30T21:50:52.963 回答
1

不,这就是POST 请求的用途。如果您想让您的 URL 在美学上更好,我建议(取决于您的服务器)寻找一种拥有干净 URL的方法。

例如,在Apache中,您可以使用mod_rewrite 模块在.htaccess中执行此操作。您可以在此处查看有关它的教程。

于 2013-07-30T22:01:55.040 回答