【问题标题】:Send $POST via URL通过 URL 发送 $POST
【发布时间】:2014-09-29 13:13:03
【问题描述】:

是否可以通过 URL 发送 $_POST 变量而不使用 form ?或URL 中的其他"invisible" 类型的变量。

我的情况:

有一个请求(来自服务器“ZETA”)通过URL 调用我的php 脚本,但这个脚本需要我的文件名(这是我要发送的变量)。 所以我知道我可以使用$_GET,但我不想在URL 中以明文形式发送文件名。

有可能吗,或者我只是在浪费时间:p

ps : 请只限 html 和 php。

谢谢

更新 1

这就是我调用脚本的方式:

http://10.13.48.60/XML_MYSQL/xml_to_mysql.php?name=1201072-14913200.xml

我只想在发送时使 var "name" 不可见。

【问题讨论】:

  • 您可以使用curl
  • 如果你问能不能同时发送 GET 和 POST,答案是肯定的
  • 您可以使用curl 发出带有帖子正文的请求
  • 为什么不能简单地使用 $_POST?
  • @Machavity — 你不能。 PHP 在查询字符串中使用$_GET,在请求正文中使用$_POST,这会鼓励人们错误地将请求方法与存储的位置数据混为一谈。

标签: php html forms url post


【解决方案1】:

没有。 PHP 将使用来自 URL 的数据填充 $_GET,并且仅使用请求正文填充 $_POST

您不能将未加密的数据放入 URL 中,否则任何可以看到请求的人都可以看到(就此而言,您不能将未加密的数据放入请求中的任何位置,而他们无法看到)。

如果您不想以明文形式发送数据,请使用 HTTPS 而不是 HTTP。这将保护请求不被拦截(尽管两端的任何人仍然可以看到数据......但由于一个人正在创建它而另一个人应该读取它,这应该不是问题)。

【讨论】:

  • 感谢解释,我会尝试使用cardeol的解决方案,否则我会坚持使用https ^^
  • 使用 POST 代替 GET 对安全性毫无用处。
  • 只是他们不喜欢在 URL 中清楚地看到文件名
  • 告诉他们不要对不会打印在纸上的 URL 进行审美考虑。这是浪费他们和你的时间。
  • 我希望我能做到这一点>
【解决方案2】:

为了使用 POST,您需要使用标签,并且根据您提取这些 URL 的方式,使用 javascript 来帮助可能会更容易。这是一个基本示例:

<form method="post" action="data.php">
    <input type="hidden" name="parameter" value="1234" />
    <input type="submit" value="Go" />
</form>

Go 按钮将 POST 表单数据,现在在 data.php 中,您将能够从 $_POST['parameter'] 检索值。请注意,使用 POST 时,您可能希望将 (HTTP 302) 重定向回页面,以便当用户点击后退按钮时,浏览器不会提示重新提交表单。

使用 javascript,您可以在发布表单之前将参数输入设置为不同的值。

【讨论】:

    猜你喜欢
    • 2011-06-10
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 2020-12-27
    相关资源
    最近更新 更多