it-swarm-ko.tech

전역 변수 $ user는 어떻게 작동합니까?

내 시나리오는 다음과 같습니다.

새 사용자를 만들고 소유자 인 일부 콘텐츠를 동적으로 만듭니다.

각 사용자는 로그인하여 컨텐츠를보고 프로파일을 편집 할 수 있습니다. 각 콘텐츠와 해당 프로필에 대한 메뉴 링크가있는 블록을 사용합니다.

블록 함수의 테마 출력은 global $user; 현재 로그 된 사용자를 가져옵니다.

그러나 이상한 점은 $user->uid 현재 기록 된 사용자가 아니라 시스템에서 마지막으로 생성 된 사용자를 반환합니다. 또한 $user->language는 시스템에서 마지막으로 생성 된 사용자입니다. 왜?

사용자가 user/logout; 이것이 바로 로그 아웃 명령입니다. GLOBAL 변수 재설정과 같은 사용자 로그 아웃 후에 더 많은 작업을 수행해야합니까?

4
Ek Kosmos

블록이 캐시되지 않거나 Boost (정적 캐싱)와 같은 것을 사용하고 있지 않은지 확인합니다.

블록 내용이 나에게 캐시되는 것 같습니다.

5
Kevin

global $user는 항상 현재 로그인 한 사용자를 참조해야합니다.

사용자 정의 코드에서 전역 $user 변수를 재설정 할 가능성이 큽니다. 사용자 계정을 다룰 때 좋은 방법은 $account 변수를 사용하여 둘을 구별하는 것입니다. 예를 보려면 ser_save () 를 참조하십시오.

3
tim.plunkett