2010-12-06 7 views
0

私が実際に安全な(マルチスレッドセーフな)一意の番号を各ユーザーに作成したい場合はphpに新規に追加します ファイルを作成するときにファイル名は私は一意の文字列から構築すると思うユニークな名前から構築する必要があります。 これを行う最善の方法は何ですか?PHPの各ユーザー(セッション?)の本当のユニークな番号を作成する方法

+0

あなたは正確に何をしようとしていますか?私はsession_id()を使用して、これが助けにならないような何かと組み合わされていると仮定します:$ token = trim(substr(sha1(uniqid(rand()))、0、$ len)); – glutorange

+0

私は質問を本物の意味に変更します。 – user63898

答えて

0

ユーザーがページにアクセスしたときに一意のIDに割り当てられたときは、session_idと呼ばれます。 session_idを処理する場合は、session_start()の前に設定する必要があります。 マニュアル»を見てみましょう»»session_id()

を使っ»http://www.php.net/manual/en/ref.session.php

グッドラック

+0

そして、session_id()によって生成された値に冗長性がある理由は十分です。誰かがセッション識別子を予測でき、セキュリティがない場合です。 – symcbean

+1

さらに、トランザクションを管理するためにセッション識別子を使用しようとしている場合は、追加するだけです。キャッシングや複数のウィンドウで何が起こる可能性があるか考えてください(セッションはセッションデータにのみ使用してください) – symcbean

+0

誰かがどのようにセッション識別子を予測できるかの一例だけですか? – B4NZ41

0

それは異なります。

何をしたいことは、各ユーザの数であるならば、あなたがしたいですよあなたのデータベースauto_increment(またはそれがサポートされていない場合は手動で)に一意のIDを持たせる。

セッションの一意のIDが必要であり、ユーザー固有のものではない場合。ユーザーは、ログインした後にユーザーと結びつけることができます。PHPセッションを使用することができます。ユーザーを選択するために使用するハッシュは、現在使用されていない一意のIDを生成します。それで十分です。その後、ユーザーがログインすると、データベースから一意のIDをセッションに追加します。

これで、ユーザーとセッションが結びついています。