문제

어딘가에 기사를 읽었습니다. Session_ID를 사용하고 있습니다. 즉, 세션이 파괴되면 테이블이 삭제됩니다. 그래서 그들은 왜 테이블을 만들고 있습니까?

임시 테이블을 사용하는 것이 있습니까? 그리고 왜 Session_id를 사용해야합니까 ??

로그인 및 로그 아웃 임시 테이블에서 Session_ID의 다른 용도는 무엇입니까 ?? (임시 테이블에서 세션_ID, 로그인 및 로그 아웃 시간의 연결 및 사용을 알 수 없습니다.)

도움이 되었습니까?

해결책

두 번째 테이블을 사용하는 대신 사용자 테이블을 사용 하여이 정보를 저장하지 않는 이유는 무엇입니까?

사용자 테이블 :

CREATE TABLE `Users` (
    `Id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    `Username` VARCHAR(32) NOT NULL,
    `Password` CHAR(32) NOT NULL,
    `Login` TIMESTAMP DEFAULT 0,
    `Logout` TIMESTAMP DEFAULT 0,
    PRIMARY KEY (`Id`),
    UNIQUE KEY (`Username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1

이제 사용자가 $ _session 변수에 ID를 저장하고 로그인 TimeStamp를 업데이트 할 때 :

UPDATE `Users` SET `Login` = NOW() WHERE `Id` = id_stored_in_session;

그리고 그가 로그 아웃 할 때 위에서 켜져있는 동일한 명령을 사용합니다. Logout

다른 팁

"임시 테이블은 현재 연결에만 볼 수 있으며 연결이 닫히면 자동으로 삭제됩니다." (원래의)

따라서 임시 테이블은 확실히 중요하지 않습니다. Cris 'Solution에 투표하겠습니다.

임시 테이블을 사용하여 세션 정보를 저장합니다 (사용 session_set_save_handler) 그리고 이것은 양호합니다 : 세션 정보가 매우 빠르게 변경되고 종종 임시 테이블이 그러한 솔루션에 적합합니다.

그리고 당신은 임시 기억과 혼란 스러웠습니까? 메모리 테이블은 하드 드라이브에 저장되지 않으며 재부팅에서 데이터가 손실되며 세션 정보에 적합합니다.

세션 ID는 사용자가 로그인되었는지 여부를 인식하기 위해 매우 사용자가 있습니다.

사용자 이름, Session-ID, 최근 AccessTime으로 로그인 테이블을 만듭니다.

사용자가 새 페이지를 요청하면 세션 ID 및 사용자 이름이 일치하는지 여부를 확인하십시오.

그들이 일치하는 경우 최근 AccessTime을 업데이트하십시오.

최근 ACCESSTIME이> 60 분인 경우 사이트에서 로그인 한 사용자를 설정하고 로그인 테이블에서 엔티티를 삭제할 수 있습니다.

www.addressinformer.com

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top