php session id ve ajax, javascript

2 Cevap php

Benim web sitesi Internet Explorer'ın pek çok sürümünde altında düzgün çalışmadığını benim dikkatimi geldi. Her yerde etrafa sonra, ben bir "cookie" testi (http://www.rgagnon.com/jsdetails/js-0092.html) yaptım ve kurabiye IE herhangi bir sürümünü kullandığınızda çalışan, ancak Chrome, Firefox, Safari ile çalışıyor olmadığını fark ...

Bu tanımlama çalışmıyorsa, o zaman benim oturum değişkenleri yok tutmak gibi görünüyor. Ben php oturumu kullanın. PHP otomatik olarak bu sorun ile başa çıkmak gerekiyor değil mi?

Ben bazı javascript window.location ve bazı ajax çağrıları (phplivex) kullanıyoruz. Çünkü bundan olabilir mi? Bu ne olursa olsun tüm URL'ler sonunda phpsessionid eklemek değil mi?

2 Cevap

Bu zaman dilimi sorunu olabilir? Bkz Session cookies rejected by Internet Explorer.

Final Solution

The timezone issue did give me a hint to check the time on my client and server. My client is a Windows laptop which had the correct time and timezone thanks to being synchronized with the NTP protocol. My server on the other hand was out of sync.

The timezone was correct, but the UTC time was set to my local time instead. As a result, the server was actually six hours in the past as far as the client was concerned. A timeout of one hour would have expired in the past for an IE instance running on my client. No wonder IE was rejecting my sessions.

I ran ntpdate to fix my time and then reset my timezone using tzselect.

# ntpdate pool.ntp.org
# tzselect

I then refreshed IE which immediately started accepting the sessions. All aspects of my application started working correctly. So much for so little.

Moral of the story, use NTP to ensure that your machines have their time set correctly.

Yani temelde UTC zaman sunucu üzerinde doğru ve iyi ölçmek için açıkça (zaten yok eğer E_STRICT altında bir uyarı alırsınız) PHP dilimini emin olun.

nute bu sizin IE yüklemek ile yapmak zorunda değildir eminiz. Eğer farklı bir makinede denediniz mi?

use_trans_sid, bu session id URL yerine çerez geçti yapacak kullanmak için olabildiğince bir bütün olarak çözüm. Ben size gerçekten herhangi bir çözüm kullanmak bulmak yoksa sorun nereden geldiğini araştırmak ve daha iyi olduğunu düşünüyorum bu yüzden WARNING use_trans_sid büyük güvenlik sorunları yaratabilir.