【问题标题】:send fixed data with a form用表格发送固定数据
【发布时间】:2017-02-16 06:22:01
【问题描述】:

我需要将一些数据从我网站的一个页面发送到另一个页面。 我想我应该使用 html 表单,然后将 action 属性设置为目的地。

<form method="POST" action="/destination">
     <input type="text" name="item-wear">FACTORY-NEW</input>
     <button type="submit">Sell</button>
</form>

我尝试将输入标签交换为 div,但它并没有像我想象的那样工作。 我也不想使用隐藏输入作为 Stackoverflow 中回答的其他问题。因为我猜用户可以从浏览器更改数据,我不希望这样。

ps。抱歉英语不好,任何编辑都非常感谢。

【问题讨论】:

  • 无论您使用隐藏输入还是其他方式,人们都可以更改数据。不要依赖用户不会篡改数据。
  • @doorstuck 是的,我知道。知道防止这种情况的最佳方法是什么吗?
  • 不要相信来自用户的任何东西。我不知道你想解决什么。但是不要盲目地使用用户的输入,因为他可能是邪恶的。我无法回答,因为我不知道您要解决什么问题。

标签: php html forms


【解决方案1】:

您可以使用“令牌”保护您的表单并使用$_SESSION 将您的数据传递到表单之外:

<?php

session_start();
$token = md5(uniqid(rand(), TRUE));
$_SESSION['token'] = $token;
$_SESSION['secret_data'] = "Top secret data";

?>

<form method="POST" action="/destination">
    <input type="hidden" name="token" value="<?php echo $token; ?>" />
    <input type="text" name="item-wear">FACTORY-NEW</input>
    <button> type="submit">فروش</button>
</form>

然后,只需检查令牌是否与会话匹配。如果是,请从$_SESSION 数组中获取您保存的数据。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    添加“只读”属性可防止用户更改您的输入

    <input type="text" name="item-wear" readonly>FACTORY-NEW</input>
    

    或者你可以使用选择

    <select>
    <option value="1">1</option>
    <option value="2">2</option>
    </select>
    

    但正如doorstuck 所说,您仍然需要在后端验证这些数据。

    【讨论】:

      【解决方案3】:

      你可以像这样给出固定值..

      <form method="POST" action="/destination">
           <input type="text" name="item-wear" value="Enter your fixed value here">
           <input type="submit" value="فروش">
      </form>
      

      希望对你有帮助!!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-20
        相关资源
        最近更新 更多