对于输入表单,我需要随机输入名称和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])获取输入值
您希望输入的名称为'token_hash',值为您的随机值。
<input name="token_hash" value="<?php echo $token_hash; %>" type="hidden" />
现在您可以在表单提交时访问令牌散列:
$token_hash = $_POST['token_hash'];
你需要像session这样的东西来在请求之间持久化值,例如
session_start();
$_SESSION['token_hash'] = $token_hash;
然后在下一页检索
session_start();
$token_hash = $_SESSION['token_hash'];
@All我假设提问者希望有一个随机的post字段名和值
请注意,$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;
}
}
你需要这样做,
$_POST["token_hash"]
如果token_hash
真的发布了,你会得到一个
由于生成的是一个随机值,所以不能指望$_POST[$token_hash]能起作用。
当你POST你的表单,你的PHP是随机生成$token_hash值再次。所以你应该把随机生成的值放在"value"属性中。
<input name="token_hash" value="<?php echo $token_hash; ?>" type="hidden" />
,你可以得到$_POST['token_hash']当你发布你的表单