2012-06-13 11 views
1

저는 session_vars 및 모바일 3G 연결에 큰 문제가 있습니다.3G 동글을 사용하여 세션 변수를 분실했습니다.

우리는 사용자 이름과 암호로 액세스되는 가상 캠퍼스를 가지고 있습니다. 사용자가 파일 다운로드를 시도하고 3G 연결을 사용

<?PHP session_start(); 

//Avoid not logged users 
if ($_SESSION['auth']!=true) 
{ 
    session_unset(); 
    header('Location:index.php'); // login page 
    exit; 
} 

때로는 로그인 한 사람 식별의 세션 변수를 잃게하고를 보내 모든 페이지에서 사용자가 다음과 같은 코드로 기록되어 있는지 확인합니다 로그인 페이지로 이동합니다.

Google은 오류를 재현하기 위해 노력했지만 실패했습니다. 3G 연결 조건에 따라 달라질 수 있습니다.

동글 3g을 사용하는 모든 사용자는 노트북을 사용하지 못합니다. html로 다운로드 링크 코드 벨로

:

<a onclick="window.location.href='download_file.php?id=48558&amp;id_aula=A1188788&amp;p=5'" title="download 21115400_cat.pdf" class="Arial11BlueBold ManoSola">Download</a> 

그리고 download_file.php :

<?PHP session_start(); 

//Avoid not logged users 
if ($_SESSION['auth']!=true) 
{ 
    session_unset(); 
    header('Location:index.php'); 
    exit; 
} 

...

감사합니다!

답변

0

수호신 세션을 암호화하고 뭔가 쿠키와 세션을 변경하지 보인다. 우리는 php.ini에서 암호화를 비활성화했습니다. 우리는 또한 아약스 에이전트 라이브러리를 사용

[suhosin] suhosin.session.encrypt=Off 
[suhosin] suhosin.cookie.encrypt=Off 

,이 라이브러리는 페이지를 다시로드 일부 세션 변수가 손실됩니다. 우리는 Ajax 호출을 위해 Ajax 에이전트를 교체했습니다.

0

응용 프로그램이 간단한 세션 외에 IP 주소 나 다른 변수를 확인합니까? 나는 확실히 말할 수는 없지만 사용자의 IP 주소가 바뀌면서 모바일 인터넷 공급자가 프록시와 기타 기술을 많이 사용하게 될 가능성이 매우 높습니다.

+0

내 iPhone의 내 IP가 3G에 대한 모든 요청을 변경합니다. – Sherlock

+0

고마워요! 예, 아마 3g 네트워크에서 문제가 될 것입니다. –

0

내 생각에 귀하의 probmel은 다운로드 절차가 아닙니다 사용자가 세션으로 식별하는 방식은 쿠키입니다. 사용자가 세션 쿠키를 잃어 버리는 이유를 조사해야합니다. 그러면 자동 연결이 끊어집니다. 어쩌면 3g 공급자가 연결을 캐시하거나 사용자 앞에 프록시를 가지고있을 수 있습니까? 또 다른 가능성은 세션이 어떻게 든 클라이언트의 IP 주소에 바인딩되어 불안정한 3g 연결 중에 바뀔 수 있다는 것입니다. 이것

봐는 : iPhone cookie/caching issue on 3G, fine over wifi

+0

감사합니다! 몇 주 전에 우리는 [suhosin] (http://www.hardened-php.net/suhosin/)을 설치했습니다. 아마도 IP 바인딩 문제가있을 수 있습니다. suhosin을 사용하여 스크립트를 스크립팅하는 것에 대해 읽었습니다. –