Bazı makinelerde Session 'kaybolan'

5 Cevap php

Ben soru soruyorum gerektiğini tam olarak emin değilim. Üzgünüz!

Ben PHP5 kullanarak şekilde benim web sitesine yeniden yapmaya çalışıyorum. Sunucu, bir arkadaşının bodrum katında yaşıyor ve ben sadece benim kodlama yapmak ve sadece orada başka bir sayfa gibi sayfaları görüntülemek için ssh.

Ben $ _SESSION giriş ayrıntıları takip.

Benim ev makinede oturuyorum zaman siteye giriş yapabilirsiniz ve ben OTURUM bütün sayfalarda mevcut olması açısından beklediğiniz gibi her şey. Benim iş makine giriş yaptığınızda, I) (başarılı bir günlük almak ve OTURUM değişkenleri görebilirsiniz, ama session_id kanıtladığı kısa sürede başka bir sayfaya gitmek gibi OTURUM gitti.

PHP4 yerleşik (ve mutlu PHP5 tutmak için tweaked) benim önceki web sitesi öncesi ve PHP5 değişiklikten sonra iki konumda beklendiği gibi beni oturum sağlayan bu davranışı gösteren değil.

Ben sadece bu sadece deli, yüzünde belirir kodlamak için kendime öğretmenlik yaparken karşılaştığım kadarıyla tüm bulmacalar ... sonraki keşfetmek için bir ipucu arıyorum sanırım.

5 Cevap

Jake çerezler hakkında bir şey üzerinde olduğunu düşünüyorum. Iş yerindeki tarayıcı bu etki çerezleri kabul edecek şekilde ayarlanmış olduğundan emin olun. Emin olun bu devre dışı herhangi bir antivirüs / antimal-ware yoktur emin olun. I fiddler sizin iş makine trafik ve başlıklarını izlemek için kullanabileceğiniz ve ev makine istiyorum. Eğer bir müşteri sorunu gibi sesler yana hızlı bir şekilde fark noktaya gerekir.

Bu iş yerinde bilgisayar oturum çerezleri destek değildir ki olabilir. Ben son PHP oturumlar hakkında okumak beri bir süre oldu, ama ben hatırlıyorum ne oluyor ...

  1. session_start () denir.
  2. php tarayıcı (benzersiz bir tanımlayıcı tedarik gereken sunucuya bir çerez gönderdi olmadığını denetler.
  3. eğer öyleyse, o zaman oturum id adıyla bir dosya sunucuda kontrolleri denetler
  4. eğer başarılı olursa, bu dosyayı ayrıştırmak ve $ _SESSION diziye değişkenlerini ayarlar

Bu sürecin bir gerçek session_start() Bu tüm any çıkıştan önce çağrılması gerekir ile oturumu başlatmak için bu adımı dikkat edin.

Have you got session_start() çıktı? daha önce

Eğer çeşitli php dosyaları) session_start (faydalanmak mı?

Bu sorunu aşmanın bir yolu veritabanındaki oturumları saklamak için olabilir.

This DevShed article by Rich Smith is a good place to start: Storing PHP Sessions in a Database

Oturum artık sunucu üzerinde bir dosya olarak kaydedilmiş değil, DB, bir girdi ve herhangi bir çerez sorunları çözmek gerekir edilir.

Her iki ini yılında session.auto_start Aynı için php.ini içinde ayarlar mısınız?

Bkz http://de3.php.net/manual/en/session.configuration.php#ini.session.auto-start