function generate_session_id(&$db)
{
$user_sess_id = md5(uniqid(mt_rand(), true);
try
{
$stmt = $db->prepare("SELECT COUNT(*) AS session_exists FROM sessions WHERE session_id = :session_id");
$stmt->bindParam(':session_id', $user_sess_id);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if($result['session_exists'] == 1)
{
// Recursion !
generate_session_id($db);
}
else
{
return $user_sess_id;
}
}
catch(PDOException $e)
{
die("generate_session_id(): " . $e->getMessage());
}
}
이 기능은 안전한가요? 아니면 결함이 있습니까? 유일한 목적은 각 세션마다 고유 한 ID를 생성하는 것입니다.이 재귀 함수가 열광 할 수 있습니까?
또한, MySQL 인 경우 자동 증가 필드를 사용할 수 있습니다. –
정확히 그가 무엇을했는지에 달려 있지만 그래, 나는 동의한다. 'md5'에 대한 좋은 지적입니다. – deceze