>백엔드 개발 >PHP 문제 >PHP 로그인 세션 시간이 초과된 경우 수행할 작업

PHP 로그인 세션 시간이 초과된 경우 수행할 작업

coldplay.xixi
coldplay.xixi원래의
2020-08-24 10:30:422844검색

PHP 로그인 시간 초과 세션에 대한 해결 방법: 먼저 로그인할 때 세션을 사용하여 로그인 시간을 기록한 다음 페이지가 열리면 세션이 존재하지 않는지 판단한 다음 로그인 페이지로 돌아갑니다. , 세션이 존재하는 경우 페이지 로딩 시간을 로그인 시간과 비교하십시오. 마지막으로 시간 초과보다 크면 삭제하십시오.

PHP 로그인 세션 시간이 초과된 경우 수행할 작업

【관련 학습 권장 사항: php 프로그래밍(동영상)】

php 로그인 시간 초과 세션 해결 방법:

php 로그인 시간 초과 세션 문제, 원칙은 다음과 같습니다.

1. 세션에 로그인 시간이 기록됩니다.

$_SESSION['time']=time();

2. 페이지가 열리면 세션이 없는 것으로 판단하고 세션이 있으면 페이지 로딩 시간과 로그인 시간을 비교합니다. 시간 초과보다 크면 세션을 삭제하십시오. 시간 초과 후 로그인 시간 세션 값을 업데이트하십시오!

로그인 코드:

public function login(){
        if($_POST){
            $where['username']=$_POST['username'];
            $where['password']=md5("php100".$_POST['password']);
            $users=M('users')->where($where)->find();
            if($users){
                $_SESSION['id']=$users['id'];
                $_SESSION['user_shell']=md5($users['username'].$users['password']);
                $_SESSION['time']=time();
                $this->redirect('Index/index');
            }else{
                echo "";
            }
        }else{
            $this->display();
        }
    }

공용 컨트롤러 생성자 코드:

public function _initialize()
    {
        if(isset($_SESSION['user_shell'])){
            if(time()-$_SESSION['time']>60){
                unset($_SESSION['user_shell']);
                $url=U('Login/login');
                Header("Location:$url");
            }else{
                $_SESSION['time']=time();
            }
        }else{
            $url=U('Login/login');
            Header("Location:$url");
        }
    }

[관련 학습 권장 사항: php 그래픽 튜토리얼]

위 내용은 PHP 로그인 세션 시간이 초과된 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.