Intermitan Oturumlar

2 Cevap php

Ben dağıtma olduğum bir site var ve ben bir sorun isabet ettik. Ben hosting paketi benim müşteri bir alt dizinde kodumu test edildi ve her şey güzel görünüyordu. Ancak site köküne dosya / klasörleri hareket ettik ve şimdi zaman zaman tüm oturum verileri kaybediyorum.

Ben Firefox ve bu tanımlama set edilmektedir yılında LiveHeaders ile bir göz attık:

    Cookie: __utma=196298984.443251570.1275554915.1275554915.1275557276.2;
 __utmz=196298984.1275554915.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
 __utmb=196298984.188.10.1275557276; PHPSESSID=3f5a363de3b7ec6084c7fdf90bec78a8; 
__utmc=196298984 

ve

    Cookie: __utma=196298984.443251570.1275554915.1275554915.1275557276.2; _utmz=196298984.1275554915.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); 
__utmb=196298984.189.10.1275557276; PHPSESSID=3f5a363de3b7ec6084c7fdf90bec78a8; 
__utmc=196298984

Diğer bilgiye ihtiyacınız varsa, bunu almak mümkün olmalıdır bu yüzden hiçbir şekilde başlıklarında uzman tarafından değilim.

2 Cevap

Çalışmak için bir oturum için, iki unsur hem çalışıyor olması:

İlk olarak, tarayıcı her istek ile aynı PHPSESSID çerez göndermek zorundadır. Oturum kimliği başka bir oturumda değişecek, bu nedenle yarın giriş if (bugün veya üstü, ya da farklı bir tarayıcıda, vesaire) artık ne var daha farklı bir kimliği alırsınız, ama bir tek oturumda sırasında kimliği olmalıdır değişiyor değil.

İkincisi, sunucu her istek sırasında bu ID ile ilişkilendirilmiş aynı dosyalara erişmek gerekir. Varsayılan, PHP mağazalar tarafından o /tmp/ dizininde bilgiler. Eğer erişiminiz varsa, hatta oradan kurcalamak ve depolanmış oluyor ne görebiliyordu.

Ilk konu için test kolay değildir. Oturumu çalışırken ne cookie ediliyor bir göz atın ve daha sonra çalışma oturumu durduktan sonra tekrar kontrol ve PHPSESSID değişip değişmediğini görmek. Bu gibi davranış için en muhtemel nedeni bir kötü ayarlanmış olan yerel bilgisayar saati, oturum yoksul zaman aşımı ayarları, vesaire olacaktır.

İkinci sorun biraz daha zordur. Tarayıcınızın her isteği ile doğru tanımlama gönderiyor, ancak PHP oturum hakkında bilgi dosyasına erişemiyorsanız, sorun sunucusu ile. Kolayca PHP manual kod ile yapılır, hangi (zaten birini kullanıyorsanız) bir veritabanında oturumları saklamak düşünebilirsiniz.

Aklıma gelen şeylerin bir çift:

1: bazı sayfalar yerine www.abc.com arasında abc.com gönderilen ediliyor eğer oturum www.abc.com oluşturulan ediliyor ise, o zaman tüm tarama tam olarak bu etki olur emin olun, bu uğurda muhtemeldir session / cookie sorunları.

2: Ayrıca session_start talimat TÜM sayfaların üstünde kullanılabilir olduğundan emin olun.