【问题标题】:Using hidden value instead of $_GET or $_REQUEST使用隐藏值而不是 $_GET 或 $_REQUEST
【发布时间】:2011-11-08 16:07:29
【问题描述】:

我一直在为表单使用隐藏值。

例子:

 <form method="post" action="page.php">
 <input type="text" name="name""
 <input type="hidden" name="book_id" value="$bookid">
 <input type="button">
 </form>

$bookidbook.php?id=34324$_GET

所以我在隐藏字段中使用$bookid 而不是page.php?id=$bookid

我的问题:如果我在表单操作中使用隐藏值与使用 $GET$POST 是否有害?

【问题讨论】:

  • 隐藏值非常适合将数据从一种形式传播到另一种形式。您也可以考虑将数据存储在用户的会话中。
  • @Digital 将数据从一种形式传播到另一种形式是没有意义的。
  • @Col。弹片:当然有,我们不时使用它。

标签: php get request hidden


【解决方案1】:

回答您的问题:不,以这种方式使用隐藏输入无害。

要修复提供的代码,您需要为隐藏的输入命名并将方法更改为GET

 <?php
 if(array_key_exists('id', $_GET)) {
     $bookid = (int) $_GET['id'];
 }
 ?>

 <form method="get" action="page.php">
     <input type="text" name="name">
     <input type="hidden" name="id" value="<?php echo $bookid; ?>">
     <input type="button">
 </form>

【讨论】:

  • 清理任何用户输入很重要,正如本示例通过将 $_GET['id'] 转换为整数来实现的。更通用的替代方法是 htmlspecialchars():&lt;input type="hidden" name="id" value="&lt;?php echo htmlspecialchars($_GET['id']); ?&gt;"&gt;
【解决方案2】:

问题是:如果我在表单操作中使用隐藏值与使用 $GET 或 $POST 是否有害?

答案是:实际上,根据选择的方法,您将在 $_GET 或 $_POST 数组中拥有您的隐藏值。 不,使用隐藏输入没有害处。虽然也没有收获。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多