Wordpress破坏了PHP会话和表单验证令牌不匹配
出于某种原因,当它生成一个令牌时,它会在会话中存储另一个令牌,它是一个完全随机的令牌 这是我的令牌类代码-Wordpress破坏了PHP会话和表单验证令牌不匹配,php,session,Php,Session,出于某种原因,当它生成一个令牌时,它会在会话中存储另一个令牌,它是一个完全随机的令牌 这是我的令牌类代码- class Token { protected static $token; public static function generate() { if(!self::$token){ self::$token = md5(uniqid()); } return Session::put(Config::get('session/token_name'
class Token {
protected static $token;
public static function generate() {
if(!self::$token){
self::$token = md5(uniqid());
}
return Session::put(Config::get('session/token_name'), self::$token);
}
public static function check($token) {
$tokenName = Config::get('session/token_name');
if(Session::exists($tokenName) && $token === Session::get($tokenName)) {
Session::delete($tokenName);
return true;
}
return false;
}
}
这是我的会话类代码-
class Session {
public static function exists($name) {
return (isset($_SESSION[$name])) ? true : false;
}
public static function get($name) {
return $_SESSION[$name];
}
public static function put($name, $value) {
return $_SESSION[$name] = $value;
}
public static function delete($name) {
if(self::exists($name)) {
unset($_SESSION[$name]);
}
}
public static function flash($name, $string = null) {
if(self::exists($name)) {
$session = self::get($name);
self::delete($name);
return $session;
} else if ($string) {
self::put($name, $string);
}
}
}
Config::get('session/token\u name')
只返回'token'
我在其他任何地方都不会生成一个新的令牌,因为它只会返回一个令牌,因为它是静态变量
WordPress为什么要这样做
请帮帮我,我已经连续10个多小时试图让它工作了 用于生成函数-
public static function generate() {
if(!Session::get(Config::get('session/token_name'))){
return Session::put(Config::get('session/token_name'), md5(mt_rand()));
}
else{
return Session::put(Config::get('session/token_name'), Session::get(Config::get('session/token_name')));
}
}
这可以确保您只为每个会话创建一个。检查您是否有
favicon.ico
,例如,如果该文件不可用,chrome总是尝试下载该文件,这会删除您的令牌…代码中的会话启动()
在哪里?@inf3rno在WordPress加载之前它在index.php中