PHP 세션이 불안정할 경우 대처 방법

藏色散人
풀어 주다: 2023-03-05 06:56:01
원래의
2441명이 탐색했습니다.

불안정한 PHP 세션에 대한 해결 방법: 먼저 구성 파일에서 sessionState 노드를 설정한 다음 클래스를 직렬화 가능한 클래스로 설정하고 마지막으로 "asp.net 상태 서비스"를 시작합니다.

PHP 세션이 불안정할 경우 대처 방법

추천: "PHP 동영상 튜토리얼"

세션 불안정 문제 해결

회사 시스템에서 항상 세션이 갑자기 끊기는 현상이 있었는데 어제 방법을 생각해봤는데 안 되더라구요. . 오늘 아침에 정보 검색해서 해결했습니다.

어제는 사용자 로그인 정보를 저장하기 위해 새로운 데이터 테이블을 만들고 싶었는데, 사용자를 표시하고 싶을 때 외부의 IP 주소를 사용하여 표시하는 것이 실용적이지 않다고 생각합니다. 그래서 문제를 해결하기 위해 MAC 주소를 사용하고 싶었습니다. sendarp 방법은 지정된 IP의 MAC을 얻을 수 있지만 이는 LAN에만 적용 가능하고 LAN이 아닌 경우에는 구현할 수 없습니다. 파산을 선언했습니다. 클라이언트에서 js를 통해 얻어서 서버로 보내지 않는 이상, 클라이언트 쿠키 없이 매번 확인하는 것이 번거롭다는 점을 고려하여 포기했습니다.

오늘 인터넷에서 구성 파일에 sessionState 노드를 설정할 수 있다는 것을 알았습니다.

   <sessionState mode="Off|InProc|StateServer|SQLServer"
              cookieless="true|false"
              timeout="number of minutes"
              stateConnectionString="tcpip=server:port"
              sqlConnectionString="sql connection string"
              stateNetworkTimeout="number of seconds"/>
로그인 후 복사

필수 속성은

属性      选项             描述 
mode                       设置将Session信息存储到哪里 
            Off              设置为不使用Session功能 
            InProc          设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。 
            StateServer  设置为将Session存储在独立的状态服务中。 
            SQLServer    设置将Session存储在SQL Server中。
로그인 후 복사

선택적 속성은 다음과 같습니다.

属性             选项                             描述 
cookieless                                        设置客户端的Session信息存储到哪里 
                   ture                             使用Cookieless模式 
                   false                             使用Cookie模式,这是默认值。 
                   timeout                        设置经过多少分钟后服务器自动放弃Session信息。默认为20分钟 
                   stateConnectionString    设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:"tcpip=127.0.0.1:42424”。当mode的值是StateServer是,这个属性是必需的。 
        sqlConnectionString        设置与SQL Server连接时的连接字符串。例如"data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。当mode的值是SQLServer时,这个属性是必需的。 
        stateNetworkTimeout    设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。默认值是10秒钟。
로그인 후 복사

그런 다음 asp.net 상태 서비스를 시작합니다.

클래스를 직렬화 가능한 클래스로 설정하도록 주의하세요! 세션에 추가할 수 있습니다.

      System.Web.SessionState.HttpSessionState session = HttpContext.Current.Session;
      session.Add("user", obj);
      HttpContext.Current.Session.Add("user", obj);
      if (obj.USER_DIST_ID == "0000")
      {
             HttpContext.Current.Session.Add("sDistID", obj.USER_DIST_ID);
       }
      System.Web.Security.FormsAuthentication.SetAuthCookie(obj.USER_ID , false);
     。。。
로그인 후 복사

위 내용은 PHP 세션이 불안정할 경우 대처 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿