【问题标题】:Old data gets wiped from POST when I use GET当我使用 GET 时,旧数据会从 POST 中删除
【发布时间】:2013-09-26 13:00:24
【问题描述】:

所以我有一个问题。我使用 POST 将数据发送到新页面。我使用 get 向函数发送数据,但似乎 POST 数据被擦除了。这里有一些代码来帮助解释。

POST CODE 发送到表单查看顺序(完美!)

<form method="post" action="vieworder.php">
     <input type="hidden" name ="user_id" value="<?php echo $_SESSION['user_id']; ?>">
     <input type="hidden" name ="id" value="<?php echo $data1[$x]['id']; ?>">
     <input type="submit" name="submit" value="View"> </td>
</form>

因此,在查看顺序页面上,我希望能够使用此表单更新数据。 除了我需要原始帖子中的值“id”之外,此表单也可以正常工作。在我使用此表单之前,它可以工作并且“id”具有数据。

<form name="approveform" method="get" action="">
            Index Number*: <input type="text" name="IndexNum">&nbsp;
            <input type="submit" value="Approve" action="">
</form>

我也更喜欢使用 POST 方法,但使用 GET 是我第一个不从 POST 中删除数据的解决方案。

不管怎样,我只是将数据发送到一个函数来更新两个字段。

有什么方法可以得到正确的代码?

【问题讨论】:

  • 在查看顺序上,在表单中添加一个隐藏元素并使用发布的数据填充它。 - 或开始使用会话
  • 每次提交表单时,$_GET[]$_POST[] 都会填充新数据 - 任何旧数据都会丢失。您需要将任何想要保留的数据存储在$_SESSION[] 中,或者将其作为隐藏元素添加到您的第二个表单中。

标签: php html


【解决方案1】:
<?php
  $id=$_POST['user_id'];
?>

<form name="approveform" method="get" action="">
  Index Number*: <input type="text" name="IndexNum">&nbsp;
  <input type='hidden' value='<?php echo $id;?>'>
  <input type="submit" value="Approve" action="">
</form>

【讨论】:

  • OO 如此简单又如此聪明!谢谢!
  • 此代码易受各种类型的注入攻击,因为您将用户提交的变量的内容直接打印到 HTML 中。这是非常不安全的。
  • 同意日航。坚持使用 $_SESSION。你已经在使用它了。无需将其嵌入到 中,因为在您关闭浏览器或销毁它之前,您的所有页面都可以看到 $_SESSION。
  • 代码无效。我无法在表单的值部分输入 php。生病阅读 $_SESSION...
  • 你为什么不能?确保在您的批准文件上使用 .php 扩展名。你能发布你的代码吗?
猜你喜欢
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多