2010-12-06 4 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() 전에 설정해야합니다.

당신이 원하는 것은 각 사용자의 번호가있는 경우, 당신이 원하는 것 :

+0

그리고 session_id()에 의해 생성 된 값에 너무 많은 중복성이있는 이유가 있습니다. 누군가 세션 식별자를 예측할 수 있고 보안이 없다면 말입니다. – symcbean

+1

그리고 트랜잭션을 관리하기 위해 세션 식별자를 사용하려는 경우 .... 캐싱 및 여러 창 (세션은 세션 데이터에만 사용되어야 함)과 관련하여 발생할 수있는 일을 생각하십시오. – symcbean

+0

누군가가 세션 식별자를 어떻게 예측할 수 있는지에 대한 한 가지 예가 있습니까? – B4NZ41

0

는이 의존하는 수동»봐»http://www.php.net/manual/en/ref.session.php

행운을 가져»»

session_id()를 사용 데이터베이스 auto_increment (또는 지원되지 않는 경우 수동으로 수행)에 고유 ID를 지정하십시오.

사용자가 아닌 세션의 고유 ID를 원할 경우. 그런 다음 로그인 한 후 사용자에게 연결할 수 있습니다. PHP 세션을 사용할 수 있습니다. 사용자를 선택하기 위해 사용하는 해시는 현재 사용되지 않는 고유 한 ID를 생성합니다. 어느 것이 충분합니다. 그런 다음 사용자가 로그인하면 데이터베이스에서 고유 한 ID를 세션에 추가합니다.

이제 사용자와 세션이 서로 연결되어 있습니다.

관련 문제