2014-04-02 2 views
0

내 웹 사이트에서 사용자가 로그인 할 때마다 ~ 20 초마다 AJAX 요청이 진행되며 요청한 PHP가 sesssion (session_start로 시작)과 함께 작동합니다.Ajax 요청이 세션을 갱신하지 않습니까?

웹 사이트를 열어서 "무한"아약스 요청을하면 로그인 한 사용자가 계속 로그인해야한다고 생각했습니다.

그러나 내 사용자 중 한 명에게서 반향이 발생하여 오랜 시간 후에 로그 아웃됩니다. 어떻게 가능합니까? 아약스 요청 각각 요청한 PHP 세션을 갱신 아닌가요?

로그 아웃이 발생할 수있는 요인은 무엇입니까?

미리 감사드립니다.

+0

왜 세션 시간 초과를 늘리지 않습니까 ??? – Steve

+0

이것은 단일 사용자 문제와 같은 것으로 보입니다. 문제를 재현하고 공유하십시오. – blue

+0

아약스 요청을 중단 한 자바 스크립트 오류 일 수 있으니 세션이 갱신되지 않아 만료됩니다. 귀하의 웹 사이트 환경에 따라 다릅니다. 나는 당신이 더 많은 정보를 제공해야한다고 생각한다. 약. 더 이상 요청이나 조치가 있습니까? – Thomas

답변

1

헤더에 이런 식으로 뭔가를 넣어보십시오

<?php 
ini_set('session.gc_maxlifetime', 60 * 60); //ini_set('session.gc_maxlifetime', Mulpitplyer*Seconds); 
session_start(); 
?> 

사용자가 "불안정"인터넷 conection에있는 경우 세션도 버릴 수

+0

가비지 컬렉터가 원인이라고 생각하십니까? 그렇다면, 24 * 60 * 60 (적어도 1 일간은 원할 것입니다)이 제 설정일까요? PHP.ini에 액세스 할 수 없을 때 어디에서 이것을 설정합니까? BTW : 더 많은 사용자가있을 때 이것이 성능에 어떤 영향을 줍니까? –

+0

당신이 php.ini에 접근 할 수 없다면 PHP 코드로 설정해주세요. 위의 코드는 ini_set ('session.gc_maxlifetime', 24 * 60 * 60)으로 변경 한 것입니다; 내 경험에 의하면 불안정한 인터넷 연결 – Pwner

+0

불안정한 in.conn에 대해 "싸우는"수정이 있습니까? –

1

브라우저가 캐싱이기 때문에 this post에 따르면, 수 AJAX 요청은 요청 전에 $.ajaxSetup({ cache: false }) 전화를 포함하여 해결 될 수 있습니다.

+0

멋진 팁, 그러나 나는 내 문제를 일으키는 것 같지 않습니다. 어쨌든 고마워. –

관련 문제