2009-07-10 26 views
12

Drupal ... tanıdık değiştiren bir özel oturum işleyicisi kullanır:Drupal 6'da özel oturum değişkenleri nasıl depolanır ve alınır?

$_SESSION['foo'] = 'bar';
echo $_SESSION['foo'];

... davranış. Yukarıdaki "foo" oturum değişkeni sayfadan sayfaya devam etmeyecektir.

Drupal.com'daki birçok yorum ve forum girişi, Drupal'ın performans nedenleri ve sunucu kümeleme desteği için özel bir oturum işleyicisi kullandığı sorunu gündeme getirir. Ancak, soruyu cevaplayan belirli örnekler bulmuyorum - "Drupal'daki sayfalar arasında kendi oturum değişkenlerinizi yönetmeniz ve çerezlere başvurmak istememeniz gerekiyor? İşte nasıl yapıyorsunuz?"

Herkes bu konuda deneyime sahip? Kullanımım harici Drupal sayfalarında değil, şablon sayfalarının içinde OLMAYACAKTIR. Bu anonim bir kullanıcı içindir, giriş yapmış bir kullanıcı değil. Bu durumda $ _SESSION davranışı beklendiği gibi.

cevap

17

Tamam, işte buradaki cevap - $ _SESSION, kimliği doğrulanmış kullanıcılar ve anonim kullanıcılar için beklendiği gibi çalışıyor - başka bir sorun yoksa !

Aşağıdaki problemi yaşadığımı keşfettim; Benim Drupal "kullanıcılarım" tablosunun (veya benim durumumda "drupal_users") bir kullanıcı UID'si sıfır ("0") eksikti.

Drupal, bir oturumdaki oturumları özel oturum işleyicisi aracılığıyla yönetmek için UID 0'ı kullanır. Bu kullanıcı tabloda yoksa (varsayılan yükleme ile orada olmalı), Drupal oturum bilgilerini anonim kullanıcıya ekleyemez.

+4

"blog" ileti bağlantısı bozuk. – dkiscool

+0

Kaldırılan ölü blog bağlantısı, değiştirilen kopya. – jschrab

İlgili konular