【发布时间】:2011-11-04 17:59:47
【问题描述】:
我创建了脚本。来源 -
控制器 -
public function action_index() {
session_start();
$_SESSION['token'] = rand();
if (isset($_GET['do']) and $_GET['do'] == 'comment') {//Ja viss kārtībā, turpinam
var_dump($_POST['token']);
var_dump($_SESSION['token']);
if ($_SESSION['token'] == $_POST['token']) {
echo 'ok';
}
else{ echo 'error'; }
查看 -
<form action="?do=comment" class="form-komentaram" method="post" style="margin: 7.5px;">
<input type="text" name="name" required="required" placeholder="Tavs vārds..." /><br />
<input type="text" name="homepage" placeholder="Tava mājaslapa..." /><br />
<input type="hidden" name="artcl_id" value="<?php echo $article['id']; ?>" />
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>" />
<textarea name="text" required="required"></textarea><br />
<input type="submit" value="OK!" required="required" />
</form>
我看到,使用 var_dump,$_SESSION['token'] 会在页面加载时发生变化。 例如,我在输入字段中提交令牌并重新加载页面以检查令牌,但是页面重新加载之前的$_SESSION['token']是23456,而$_POST['token']是23456,但是页面重新加载之后是$_SESSION['token '] 是 12345。为什么?
【问题讨论】:
-
可能是因为
$_SESSION['token'] = rand();
标签: php frameworks kohana