Php openssl+;令牌的随机int,当涉及到表单操作时出现问题
我有这样一个标记函数:Php openssl+;令牌的随机int,当涉及到表单操作时出现问题,php,antiforgerytoken,Php,Antiforgerytoken,我有这样一个标记函数: public static function create() { $int = random_int(8, 64); $ssl = openssl_random_pseudo_bytes(32); $base64 = base64_encode($ssl); return Session::put(Config::get('session/token_name'), trim($base64, '='));
public static function create() {
$int = random_int(8, 64);
$ssl = openssl_random_pseudo_bytes(32);
$base64 = base64_encode($ssl);
return Session::put(Config::get('session/token_name'), trim($base64, '='));
}
我的标记功能正在工作,当我现在在多个表单上尝试它时,问题就出现了。注意:同一页
这是我的表格(例如,我只更改了名称,但这在我的代码上):
}
现在的问题是,当我尝试单击按钮时,sample1-sample3mytoken::check
为false,但只有sample4token::check
为true。似乎只有最后一个表单
才有正确的标记
。因此,我正在寻求帮助,了解如何在token::check
下实现另一个示例(1-3),顺便说一句,md5(uniqid())
标记函数正在工作
<form method="post">
<input type="hidden" name="t_sample1" value="<?php echo Token::make(); ?>">
<button name="btn1">sample1</button>
</form>
<form method="post">
<input type="hidden" name="t_sample2" value="<?php echo Token::make(); ?>">
<button name="btn2">sample2</button>
</form>
<form method="post">
<input type="hidden" name="t_sample3" value="<?php echo Token::make(); ?>">
<button name="btn3">sample3</button>
</form>
<form method="post">
<input type="hidden" name="t_sample4" value="<?php echo Token::make(); ?>">
<button name="btn4">sample4</button>
</form>
if(Input::exists()) {
if(Token::check(Input::get('t_sample1'))) {
$echo = 'sample1';
}
if(Token::check(Input::get('t_sample2'))) {
$echo = 'sample2';
}
if(Token::check(Input::get('t_sample3'))) {
$echo = 'sample3';
}
if(Token::check(Input::get('t_sample4'))) {
$echo = 'sample4';
}