javascript - 在 Session 中存储随机字符串,当我通过另一个 PHP 文件调用它时,该字符串会被覆盖

标签 javascript php ajax oop session

我创建了一个表单,其中包含一个隐藏输入,其值由函数设置。

<?php
    class Token {
        public static function generate(){
            return $_SESSION['token'] = base64_encode(openssl_random_pseudo_bytes(32));
        }
    }
?>

这被称为这样:

<input type="hidden" id="token" value="<?php echo Token::generate(); ?>">

我通过 JavaScript/AJAX 将其发送到另一个文件(例如“form.php”),其中包含以下内容:

<?php
   session_start();
   @require_once 'Token.class.php';

   echo $_POST['token'] . " => " . $_SESSION['token']; // different tokens, why?
   // $_POST['token'] is the one, that I want
   // and so on...
?>

当我输入:<?php echo $_SESSION['token']; ?>时,为什么值会改变? ?

这是我的项目stored on Dropbox

最佳答案

因为每次进入网站时都会生成新的?

<?php
    class Token {
        public static function generate(){
            if(isset($_SESSION['token']) && $_SESSION['token']) return $_SESSION['token'];
            else return $_SESSION['token'] = base64_encode(openssl_random_pseudo_bytes(32));
        }
    }
?>
PS。您可能想改用 md5(uniqid())

关于javascript - 在 Session 中存储随机字符串,当我通过另一个 PHP 文件调用它时,该字符串会被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080213/

相关文章:

javascript - 带有 Bootstrap 的可扩展 div

javascript - 无法在 Angular 上删除

jquery - ajax文件上传

javascript - 从不带时区的字符串构造 JavaScript 日期(适用于 JqueryUI datepicker)

javascript - 是否有所有属性的 Object.watch/__noSuchMethod__ 可用的垫片?

PHP 尖峰 cpu 使用率

php - 处理数据库查询时如何混淆 JSON 响应?

PHP 无法读取 AJAX 发布的 BLOB FormData 文件

ajax - 如何伪造动态元素的点击?

javascript - 带有固定按钮的可滚动列表