无需做您正在尝试的事情。当您使用session_start()在PHP中启动会话时,已经为您生成了一个唯一的SESSIONID。你应该 不
被把这个形式。默认情况下,它通过cookie处理。也无需检查SESSIONID,也可以再次为您处理。
您负责验证用户身份并存储其验证身份(例如,SESSION中的$ _SESSION [‘user_id’] = $
userId)。如果用户注销,则使用session_destroy销毁其会话。
您应该确保session_start()是站点中所有页面的 首要 任务之一。
这是一个基本示例:
<?phpsession_start(); // starts new or resumes existing sessionsession_regenerate_id(true); // regenerates SESSIonID to prevent hijackingfunction login($username, $password){ $user = new User(); if ($user->login($username, $password)) { $_SESSION['user_id'] = $user->getId(); return true; } return false;}function logout(){ session_destroy();}function isLoggedIn(){ return isset($_SESSION['user_id']);}function generateFormHash($salt){ $hash = md5(mt_rand(1,1000000) . $salt); $_SESSION['csrf_hash'] = $hash return $hash;}function isValidFormHash($hash){ return $_SESSION['csrf_hash'] === $hash;}
编辑:我误解了原来的问题。我在上面添加了用于生成和验证表单哈希的相关方法;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)