【问题标题】:How to submit URL parameter with the form as a hidden value如何使用表单提交 URL 参数作为隐藏值
【发布时间】:2018-03-06 09:54:06
【问题描述】:

我有一个网址http://www.example.com/page?params=2。 提交表单作为隐藏类型如何提交这个参数值?

【问题讨论】:

  • hidden 输入与name="params"value="2" 一起使用?
  • @FedericoklezCulloca 如果一个值每次都可以变化怎么办?
  • 你的表格在哪里?
  • 在具有此 URL 的当前页面上
  • 好的,但是该值如何变化?我的意思是,如果它改变你改变那个输入的value。我不明白你的问题。

标签: javascript php html forms parameters


【解决方案1】:

使用GET 方法读取参数的值,然后将该值作为值attr 分配给隐藏的输入

//http://www.example.com/page?params=2

$param = isset($_GET['params']) ? intval($_GET['params']) :null;

?>

<input type="hidden" name="params" value="<?php echo $param;?>">

【讨论】:

  • 通过inspect控制台使用后如何检查参数值是否正确传递?
  • 开发工具将值发布为 =$param?> @masivuye
  • 表单将此字符串 &lt;?php echo $param;?&gt; 作为值而不是实际值发送。 ------WebKitFormBoundaryS4qIfsTExsy5LFmh Content-Disposition: form-data; name="page" &lt;?php echo $param;?&gt;
【解决方案2】:

以如下形式写一个输入文本字段::

<input type="hidden" name="customName" value="customValue">

现在在提交表单时,参数名称将为customName,其值为customValue

【讨论】:

    【解决方案3】:

    您可以在表单中定义隐藏的输入控件。

    <input type='hidden' name='params' value='<?= htmlentities ( $_GET["params"], ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE | ENT_DISALLOWED, 'UTF-8', true ); ?>'>
    

    然后你可以在提交表单后得到隐藏的参数。

    【讨论】:

    • 并享受让您的用户帐户被黑客入侵的乐趣。此代码对 XSS javascript 注入开放。修复它,你会得到&lt;input type='hidden' name='params' value='&lt;?= htmlentities ( $_GET["params"], ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE | ENT_DISALLOWED, 'UTF-8', true ); ?&gt;'&gt;
    • 顺便说一句,利用它看起来像http://example.org/page.php?params=%3E%3Cscript%3Ealert%28%22vulnerable%21%22%29%3B%3C%2Fscript%3E
    • PHP 会在将其放入 $_GET 之前自动为您进行 url 解码
    猜你喜欢
    • 2021-01-04
    • 2014-10-30
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多