我这样做了一个GET请求:
http://www.smurf.com/path/?var=val
这显示在用户的URL中。我当然在几乎所有主要的网站上看到这一点。
但我只是好奇,如果有办法解决它。对于非程序员来说,看起来似乎有些丑陋和不必要。
如果没有当前的东西,是否有计划在完成后删除GET请求语法?
所以只有
http://www.foo.com/path/
请求后。
答案 0 :(得分: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参数“username”,就像获取GET一样。
<?php
$username = $_POST["username"];
?>
然后根据自己的喜好使用它!
此外,如果不提及POST / GET请求的预期用法,我将无所适从。传统上,当数据被发送到服务器以便稍后存储/使用时,例如在数据库或在线论坛中,应该使用POST请求。或者,GET请求应该用于从服务器请求(“获取”)数据,而不是提供将被存储的数据。以这种方式使用请求是一种最佳实践,但经常被忽略,因为它不是由语言强制执行,而只是一种原则。
答案 1 :(得分:1)
没有。这就是POST requests的用途。 如果您想要更美观地制作网址,我建议(取决于您的服务器)寻找clean URLs的方式。
例如,在Apache中,您可以使用.htaccess e在mod_rewrite modul中执行此操作。您可以看到有关它的教程here。