2013-09-26 28 views
0

所以我遇到问题。我使用POST将数据发送到新页面。我使用get来发送数据到一个函数,但似乎POST数据被擦除。这里有一些代码可以帮助解释。当我使用GET时,旧数据会从POST中删除

POST CODE发送形成vieworder(完美的作品!)

<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> 

所以vieworder页面上我想用能够更新使用这种形式的数据。 这种形式的工作,除了我需要从原始职位的价值“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中删除数据。

反正我只是发送数据到一个函数来更新两个字段。

任何方式来得到正确的代码?

+0

on vieworder,在表单中添加一个隐藏的元素并用发布的数据填充它。 - 或者开始使用会话 – 2013-09-26 04:51:09

+0

每次提交表单时,都会用新数据填充'$ _GET []'和'$ _POST []' - 任何旧数据都会丢失。您需要将任何想要保存的数据存储在$ _SESSION []中,或者将其作为隐藏元素添加到第二个表单中。 – 2013-09-26 04:54:15

回答

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> 
+0

OO太简单了,太聪明了!谢谢! – HELPMEPLEASE

+1

由于您将用户提交的变量的内容直接打印到HTML中,因此此代码易受各种注入类型的影响。这是非常不安全的。 – JAL

+0

同意JAL。坚持$ _SESSION。您已经在使用它。无需将其嵌入到中,因为$ _SESSION将通过您的所有页面可见,直到您关闭浏览器或将其销毁。 – sskoko