먼저 관련된 데이터 테이블 구조, 네 개의 필드를 소개합니다.
코드는 다음과 같습니다.
uid
session_id
login_time
logout_time
1. 클라이언트는 정기적으로 서버에 요청을 보냅니다. 구현 방법은 사용자가 로그인한 후 uid, session_id, login_time을 레코드에 삽입한 다음 클라이언트 js에 타이머를 설정하는 것입니다. 예를 들어 10분마다 서버에 요청을 보내 로그아웃 시간을 업데이트하는 목적을 달성합니다. 물론, 간격을 짧게 설정할수록 데이터가 정확해질 수 있지만, 실제 상황에 따라 적절한 값으로 설정될 수 있습니다. 이 방법은 웹 게임의 거의 모든 요청이 ajax 요청이고 페이지를 새로 고칠 필요가 없기 때문에 웹 게임에서 널리 사용됩니다.
2. 서버에 예약된 폴링 스크립트를 설정합니다. 이 방법은 서버 측에서 예약된 실행 스크립트를 작성하는 것입니다. 예를 들어 5분마다 한 번씩 실행합니다. 데이터베이스의 기록을 기반으로 각 세션의 session_id가 서버에 여전히 존재하는지 판단합니다. , logout_time이 업데이트되지 않으면 건너뜁니다. 이 방법도 온라인 시간을 정확하게 계산할 수 있지만 서버를 제어해야 한다는 단점이 있습니다. 그렇지 않으면 타이밍 스크립트를 설정할 수 없습니다. Linux 시스템은 crontab을 통해 이를 수행할 수 있고 Windows 시스템은 예약된 작업을 통해 이를 수행할 수 있습니다. 방금 가상 호스트를 구입했다면 이 방법도 적합하지 않습니다.
3. 사용자가 활동을 수행할 때마다 로그아웃 시간을 업데이트합니다. 이런 방식으로 사용자가 비활성 상태이거나 로그아웃하면 로그아웃 시간이 자연스럽게 데이터베이스에 존재하게 됩니다. 이 기사에서 중점적으로 다루는 해결 방법이기도 합니다. 구현 방법은 아래와 같습니다.
먼저 사용자가 성공적으로 로그인한 후 uid와 session_id를 기록하고 현재 시간을 로그인 시간으로 사용하고 현재 시간인 600s를 로그아웃 시간으로 사용하여 데이터베이스에 삽입합니다.
코드는 다음과 같습니다.
코드를 복사합니다. 코드는 다음과 같습니다.
$uid = $_SESSION[uid] = $info[id]
$session_id = $_SESSION[session_id]; = session_id();
$login_time = time();
$logout_time = time() 600;
$sql = "member_login(uid,session_id,login_time,logout_time) 값($uid, $session_id,$login_time,$ logout_time)";
mysql_query($sql);
그러면 사용자가 행동할 때마다, 즉 페이지를 클릭할 때마다 세션이 존재하면 즉, 로그인하면 사용자의 로그아웃 시간을 업데이트합니다.
코드는 다음과 같습니다.
if($_SESSION[uid]){
$uid = $_SESSION[uid]
$ session_id = $_SESSION[session_id];
$logout_time = time() 600;
$sql = "upDATE member_login SET logout_time=$logout_time WHERE uid=$uid AND session_id=$session_id"; $sql);
}
이 방법의 장점은 비교적 구현이 간단하고 대부분의 웹사이트에 적용할 수 있으며 추가 서버 요구 사항이 없으며 사용자의 온라인 시간을 정확하게 계산할 수 있다는 것입니다.
단점도 뚜렷하지만, 데이터베이스 업데이트 작업이 늘어나 시스템 부하가 늘어나지만 중소 규모 웹사이트에서는 문제가 되지 않습니다.

phpidifiesauser의 sssessionusessessioncookiesandssessionids.1) whensession_start () iscalled, phpgeneratesauniquessessionStoredInacookienamedPhpsSessIdonSeuser 'sbrowser.2) thisidallowsphptoretrievessessionDataTromServer.

PHP 세션의 보안은 다음 측정을 통해 달성 할 수 있습니다. 1. Session_REGENEREAT_ID ()를 사용하여 사용자가 로그인하거나 중요한 작업 일 때 세션 ID를 재생합니다. 2. HTTPS 프로토콜을 통해 전송 세션 ID를 암호화합니다. 3. 세션 _save_path ()를 사용하여 세션 데이터를 저장하고 권한을 올바르게 설정할 보안 디렉토리를 지정하십시오.

phpsessionfilesarestoredInTheRectorySpecifiedBysession.save_path, 일반적으로/tmponunix-likesystemsorc : \ windows \ temponwindows.tocustomizethis : 1) austession_save_path () toSetacustomDirectory, verlyTeCustory-swritation;

toretrievedatafromAphPsession, startSessionstart_start () andaccessvariblesinthe $ _sessionArray.forexample : 1) startthessession : session_start (). 2) retrievedata : $ _ session [ 'username']; echo "Welcome,". $ username;

세션을 사용하여 효율적인 쇼핑 카트 시스템을 구축하는 단계에는 다음이 포함됩니다. 1) 세션의 정의와 기능을 이해합니다. 세션은 요청에 따라 사용자 상태를 유지하는 데 사용되는 서버 측 스토리지 메커니즘입니다. 2) 쇼핑 카트에 제품 추가와 같은 기본 세션 관리를 구현합니다. 3) 제품 수량 관리 및 삭제 지원 고급 사용으로 확장; 4) 세션 데이터를 지속하고 보안 세션 식별자를 사용하여 성능 및 보안을 최적화합니다.

이 기사는 PHP의 인터페이스를 생성, 구현 및 사용하는 방법을 설명하여 코드 구성 및 유지 관리에 대한 이점에 중점을 둡니다.

이 기사에서는 PHP의 암호 해싱에 대한 Crypt ()와 Password_hash ()의 차이점에 대해 논의하여 최신 웹 애플리케이션에 대한 구현, 보안 및 적합성에 중점을 둡니다.

기사는 입력 유효성 검사, 출력 인코딩 및 OWASP ESAPI 및 HTML 청정기와 같은 도구를 통해 PHP의 크로스 사이트 스크립팅 (XSS) 방지에 대해 논의합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

드림위버 CS6
시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

WebStorm Mac 버전
유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
