2012-02-07 4 views
2

로그인 페이지가 있습니다. 사용자는 자신의 계정에 로그인하여 세부 정보를 얻을 수 있습니다. 하지만 나는 세션 변수에 사용자 정보를 저장해야하는지 혼란 스럽거나 세션 변수로 ID 만 전달해야하며 다음 페이지에서는 ID를 사용하여 클래스별로 모든 세부 정보를 검색해야합니다.PHP 세션 대 클래스

세션 변수로 ID 만 전달하면 모든 페이지에서 클래스를 호출해야합니다. 제게 올바른 생각을 주시고, 반복적으로 클래스를 호출하고 싶지는 않습니다. 페이지가 더 빨리로드되어야합니다.

미리 감사드립니다.

+1

언제든지 개체를 세션으로 저장할 수 있습니다. 객체는 모든 속성을 포함합니다. – JonH

답변

2

길고 오랜 시간 동안 성능면에서는 중요하지 않습니다. 원하는 방법을 선택할 수 있습니다.

내 경험에 따르면 세션에 ID를 저장하고 사용자 클래스에서 필요한 경우 사용자 데이터를 검색하는 것이 더 일반적인 방법입니다. 세션에서 직렬 형태로 사용자 데이터를 포함하는 객체 저장

수도 있지만 세션 데이터가 모든 요청에 ​​PHP 스크립트에로드되어 있기 때문에

  • 그것은 (많은 메모리를 요할 수있다)

  • 당신은 데이터가 사용자가 설정을 변경 또는 뭔가 다른 무슨 일이 일어 났는지 경우 (신선한 존재에 의존하지 수 있습니까?)

+0

시간 내 주셔서 감사합니다. 문제는 사용자가 방문 할 페이지가 5 개 있고 모든 페이지에서 클래스를 호출하여 DB에서 정보를 가져 오는 중이고 500 명의 사용자가 온라인에 있다고 가정합니다. MySql로드에 대해 생각해보십시오. 나는 단지 내 사이트가 더 빠르고 부드럽게 돌아가도록하고 싶다. 어떤 생각이라도 ..? – kwaxy

0

을 나는 Y를 생각한다 ou는 세션 변수에 세션 ID 만 저장해야합니다. 세션에서 사용자에 대한 정보를 저장하면 나중에 어떤 종류의 추가 정보를 필요로하지 않으며 직렬화 - 직렬화 복원에 약간의 시간이 걸리기 때문에 성능상의 이점을 얻을 수 없습니다 (특히 세션을 데이터베이스에 저장할 때!).

나는 여러 가지 이유로 사용자를 확인해야하기 때문에 항상 모든 요청에서 db의 사용자 데이터를로드합니다. 잠긴 상태인지, 잠겨 있었는지, 비활성화 된 상태인지, 그/그녀가 선호하는 언어가 무엇인지, 언제 그/그녀가 지난 번에 여기 있었는지 등등.