【问题标题】:Help passing _POST Form Data PHP帮助传递 _POST 表单数据 PHP
【发布时间】:2010-03-25 03:39:52
【问题描述】:

提前道歉,我是PHP菜鸟!

我有一些隐藏字段的表单。我需要将值发布到“submit_rma.php”,这样它们就不会从数据库中丢失——我需要 $qty、$estmate_id 和 $rma_type。

其余字段只是为用户显示数据并且是只读的。目前我只从 qty 文本字段中获取价值。

有没有更简单的方法来传递这些值?由于安全问题,无法使用 URL。

<form method="post" action="submit_rma.php";> 
<table>
   <tr>
      <td>
         Quantity
      </td>
      <td>
         <input type="text" name="qty" value="<?php echo $qty ?>" size="1"/><br/>
      </td>
   </tr>
   <tr>
      <td>
          Part #
      </td>
      <td>
         <input type="text" name="" value="<?php echo $model ?>" size="8" READONLY/><br/>
      </td>
   </tr>
   <tr>
      <td>
         Description
      </td>
      <td>
         <input type="text" name="" value="<?php echo $name_EN ?>" size="50" READONLY/><br/>
      </td>
   </tr>
   <tr>
      <td>
         Paid Date
      </td>
      <td>
         <input type="text" name="" value="<?php echo $sold_date ?>" size="6" READONLY/><br/>
      </td>
   </tr>
   <tr>
      <td>
         Amount Each
      </td>
      <td>
         <input type="text" name="" value="<?php echo $dealer_price ?>" size="8" READONLY/>
      </td>
   </tr>
</table>
         <input type="hidden" name="estmate_id" value="<?php echo $estmate_id ?>">
         <input type="hidden" name="rma_type" value="Short Shipped">
         <input type="submit" name="submit";">
</form>

【问题讨论】:

  • 如果 $qty、$estimate_id 等与安全相关,通过 POST 发送它们对您没有多大帮助 - 它们仍然在页面的 HTML 源代码中可见,并且未加密发送。但是,这是将表单数据从一个地方发送到另一个地方的正常方式。如果不知道接收脚本是什么样子,就无法判断它是否有意义。你的问题到底是什么?
  • 如果我的最终用户在这里弄乱了 URL,那么安全性就太容易破坏数据库了。例如, estmate_id 在我的数据库中有一个一对多的关系——我不能让它破坏我的表关系。安全不是问题,因为这是一个 Intranet 站点。
  • 处理表单就像处理 url 一样简单。
  • 不是当你的值是只读/隐藏时

标签: php html forms post


【解决方案1】:

也许使用隐藏的&lt;INPUT&gt;:

<input type="hidden" name="qty" value="<?= $qty ?>">

这不会向用户显示任何内容。如果您不熟悉,&lt;?= x ?&gt; 实际上等同于:&lt;?php echo x; ?&gt;。

但是,这是一个安全问题,因为攻击者可以制作虚假请求并将不同的值放入字段中(避开您的页面并直接执行请求)。您应该尝试通过其他方式获取值,例如通过在页面生成时运行 INSERT,然后在 POST 上使用 UPDATE,或类似的方式。

【讨论】:

  • 这就是我的想法和尝试...这是一个内部站点,所以它的安全性还可以——这里没有人聪明到可以毒害 POST。 qty POST 的值正确,我需要用户输入,但 rma_type 和 estmate_id 但不需要。当我在下一页回显它们时,它们是空白的。
  • @Mikey1980 你有什么回应?同样的 $qty 东西?听说过 $_POST 数组吗?
  • LMAO,看来我拼错了估计——现在两个值都是 POST——指向卢卡斯的 PHP 提示!
【解决方案2】:

我是否指出你忘记了“数量”之后所有文本框的名称属性?如果名称不存在,这些值将不会持续到此页面之外:-)

【讨论】:

  • 好的。我还没有模拟测试,但我想知道 POST 是否被一系列空白命名的输入绊倒了。线索是数量很好。哦,好吧...
猜你喜欢
  • 1970-01-01
  • 2011-09-10
  • 2011-02-17
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多