$ _POST [$ variable]不起作用

时间:2013-02-28 07:22:53

标签: php post

对于输入表单,我需要随机输入名称和ID

我创建了随机值     $ token_hash = random

然后输入字段

 <input type="hidden" name="' .$token_hash .'" id="' .$token_hash .'" value="some_value">

接下来输入表单是php代码,用于检查从表单

获取的值
 echo $_POST[$token_hash] .' $_POST[$token_hash]<br>';

问题是$_POST[$token_hash]回显空白值(没有值)....

我也试过了$_POST[' .$token_hash .']但是没有用。

其他$_POST有效,但它们就像$_POST['some_value']


似乎终于得到了解决方案。不明白为什么它以前不起作用。如果对别人有用。这是解决方案。

创建随机值     $ token_hash = sha1(uniqid($ time_when_form_submitted .'token'。$ _ SERVER [“REMOTE_ADDR”]));

然后创建会话     $ _SESSION ['token_hash'] = $ token_hash;

然后将会话传递给输入

echo '<input type="hidden" name="' .$_SESSION['token_hash'] .'" id="' .$_SESSION['token_hash'] .'" value="' .$_SESSION['token'] .'">'

然后从输入中获取会话值。 此代码必须高于所有优先级     $ token_hash_from_input = $ _SESSION ['token_hash'];

然后用     $ _ POST [$ token_hash_from_input]) 获取输入值

5 个答案:

答案 0 :(得分:2)

您希望输入的名称为“token_hash”,并将值作为随机值。

<input name="token_hash" value="<?php echo $token_hash; %>" type="hidden" />

现在您可以在表单提交上访问令牌哈希:

$token_hash = $_POST['token_hash'];

答案 1 :(得分:1)

您需要类似会话的内容来保持请求中的值,例如

session_start();
$_SESSION['token_hash'] = $token_hash;

然后在下一页中检索它

session_start();
$token_hash = $_SESSION['token_hash'];

答案 2 :(得分:1)

@All我认为提问者想要一个随机的帖子字段名称和值


请注意,$token_hash的值会在每个请求中更改。除非您在会话或数据库中保存该值,否则没有持久性。我不知道你到底想要做什么,所以很难给出建议。

但是此代码示例可能会显示如何访问随机$_POST索引:

<input type="hidden" name="token_<?php echo uniqid();?>" value="<?php uniqid()?>" />

然后使用foreach获取值:

foreach($_POST as $key => $value) {
    if(strpos($key, 'token_') !== FALSE) {
        echo 'the token is ' . $value;
    }
}

答案 3 :(得分:0)

你需要这样做,

$_POST["token_hash"]

如果确实发布了token_hash,那么您将获得一个

答案 4 :(得分:0)

由于您正在生成随机值,因此无法预期$ _POST [$ token_hash]可以正常工作。

当您发布表单时,您的PHP会随机生成$ token_hash值。因此,您应该将随机生成的值放在“值”属性中。

     <input name="token_hash" value="<?php echo $token_hash; ?>" type="hidden" />

当您发布表单时,可以使用$ _POST ['token_hash']获取它。