複数Webサーバ、単一セッション管理時のsession_start()。
セッションIDがかぶるかもしれない問題用。

アドホック過ぎなのであってるかどうか心配です。

<?php
function session_start_uniq() {
    if (isset($_COOKIE[ini_get("session.name")])) {
        $sid = $_COOKIE[ini_get("session.name")];
    } elseif (ini_get("session.use_only_cookies") != 1 and isset($_GET[ini_get("session.name")])) {
        $sid = $_GET[ini_get("session.name")];
    } else {
        $server_addr = isset($_SERVER["SERVER_ADDR"]) ? $_SERVER["SERVER_ADDR"] : "";
        $sid = md5($server_addr.uniqid(rand(), true));
    }
    session_id($sid);
    session_start();
    return $sid;
}
?>

ref: PHPのセッションID4

Comments


Option