나는 내 사이트를위한 간단한 포럼에서 작업 해왔다. 마지막 방문 이후 읽지 않은 게시물 + 포럼을 표시하는 기능을 추가하고 있습니다.이것이 내가 원하는 것을하기위한 좋은 방법인가? (PHP에서)?
기본적으로 각 사용자 계정으로 포럼에 마지막으로 액세스 한 날짜가 저장됩니다. 사용자가 사이트로 돌아 오면 모든 post_id 및 post_parent_forum 값을 가져 오는 쿼리가 실행되고 배열에 추가됩니다.이 값은 SESSION 변수에 저장되며 키는 post_id (고유 한 값) 및 값 포럼 ID (게시물은 몇 개의 포럼에 표시되기 때문에 고유하지 않습니다). 포럼 지수
, 내가 forum_id이 배열이 있다면, 그것은 "읽지 않음"으로 표시한다 있는지 각 포럼()와 in_array 사용. 스레드 목록에 는, I는 해당 "읽지 않음"으로 표시되어 있으면, 각 스레드 ID의 키가 배열되어 있는지 array_key_exists()를 사용한다. 소식을 볼 때는 항목 스레드의 ID에 동일한 키를 가진 어레이에서 제거된다.
이 방법이 합리적입니까, 아니면 포럼이 인기를 얻으면 문제가 발생합니까? 각 포럼 목록에서 20 개의 array_key_exists() 검사를 실행하는 것에 대해 우려했습니다. 합리적으로 빠른가요?
사이드 노트에서 ... 나는 세션 저장 배열과 직접 작업 할 수 있습니까? 아니면 일반 변수에 값을 할당하고, 키를 제거하고, 이전 세션 var를 설정 해제하고 다시 설정해야합니까? 업데이트 된 배열로?
사용자가 로그온하고 로그 오프 한 다음 다시 로그온하면이 방법이 유용할까요? 그러면 모든 게시물이 "읽음"으로 표시되지 않습니까? – peirix
아니요. 마지막 액세스 시간표가 여전히 계정에 저장되기 때문에 불가능합니다. 따라서 마지막 액세스 이후에 추가 된 항목 만 (이 예에서는 1 분 또는 그 이하). –
"마지막 방문 이후"는 마지막 페이지 새로 고침이 아닌 마지막 성공 로그인 (현재 로그인 이전 로그인) 이후를 의미합니다. – stefs