提交没有输入字段的GET数据?

时间:2010-04-18 15:29:57

标签: php

我从来没有真正想过这个,但它有助于我目前正在努力的一些安全性。是否可以在没有实际输入字段的情况下提交GET数据,而只是从URL获取它?

如果是这样,我该怎么做呢?它应该是可能的,但同时它根本没有任何意义。

也许我已经醒了太久,需要休息一下。但是我想先完成这个项目,所以你能提供的任何帮助都会受到赞赏。感谢

4 个答案:

答案 0 :(得分:1)

这是你的意思吗?

<a href="/page.php?type=foobar">Link</a>

// page.php

echo $_GET['type']; // foobar

答案 1 :(得分:1)

这就是我对你的问题的理解:

  1. 您的网页上有<form method="get" action="foo.php">标记
  2. 您的网页上有一系列<input type="text" name="bar"/>
  3. 您希望传递不基于表单
  4. 的输入的其他GET参数

    如果是这样,那是可能的,但我几乎看不到它对安全性的帮助。来自客户端的输入不可信,因此即使您对GET值进行硬编码,也必须针对SQL注入,HTML注入/ XSS以及诸如此类的内容检查服务器端。

    您有两种方式:

    1. 使用隐藏的输入:<input type="hidden" name="myHiddenGetValue" value="foobar"/>
    2. GET参数添加到表单操作:<form method="get" action="foo.php?myHardcodedGetValue=foobar">
    3. 如果您的意思是希望在没有表单的情况下发出GET请求,则只需将所有GET参数传递给链接的href

      <a href="foo.php?bar=4&baz=5">Click here!</a>
      

答案 2 :(得分:1)

是。如果你将一些查询字符串添加到你的网址,你可以使用$ _GET在php中获取,而无需提交表单。

转到此网址地址http://yoururl/test.php?foo=bar会导致回显foo(如果没有foo查询字符串,则会收到警告)。

# test.php
echo $_GET['foo'] # => bar

答案 3 :(得分:0)

是的,这是可能的。只需将GET数据附加到链接即可。 例如:

<a href="main.htm?testGet=1&pageNo=54>Test</a>

您还可以使用Javascript构建网址。

如果你碰巧使用jQuery并想要动态构建GET数据,你可以这样做:

var getParams = { testGet:1, pageNo:54 };
$(".myLink").attr("href", url + "?" + $.param(getParams));