2011-10-16 11 views
6

カスタムセッションIDジェネレータを作成しようとしています。私がサイト全体で読んだことから、PHPの設定ファイルを手動で編集することでこれを行うことができますが、共有サーバーから完全にカスタマイズ可能なものに切り替えるまでは使用できません。php.iniを編集せずにカスタムセッションIDを生成する方法

私が尋ねようとしているのは、ページにPHPコードを入力してセッションIDを生成する方法を指定できるかどうかです。私の意図は、デフォルトのIDジェネレータと同じ仕組みを使用することですが、sha512と塩のようなカスタムメイドを使用します。

+3

なぜこれをしたいですか? PHPセッションはデフォルトで十分安全です。 – TimWolla

+0

php.iniファイルの編集に問題はありますか?または、あなたが探しているハッシュをインストールしていないということですか? – hakre

+0

私の問題は、共有ホスティングサイトでphp.iniを編集することができないことです。でも、@MVSは私に答えを提供してくれました、ありがとうございます。 –

答えて

8

session_start()を呼び出す前に文字列をsession_id()関数に渡す場合は、セッションIDを自分で設定できます。例:

function generate_id() { 
    ... 
    return $your_id; 
} 

session_id(generate_id()); 
session_start(); 
+0

これは['session_regenerate_id()'](http://php.net/manual/en/function.session-regenerate-id.php)と互換性がありません。 – hakre

+0

ディレクティブではありませんが、私が考えている方法が使えるかどうかを調べるために、いくつかのテストを実行する必要があるかもしれませんが、可能です。しかし、あなたの懸念をありがとうございます。 –

+1

session_idにIDを渡した場合、そのIDは以前のセッションのIDです。cookies/get/postにPHPSESSIDデータがなかった場合、session_startは前のセッションを継続しますか?私は、あなたが手動でセッションIDを渡すことができるかどうかを確認するよう求めています。代わりにクッキー/取得/ポストに頼っています。 – CMCDragonkai

関連する問題