PHP kullanarak alt alanlardaki $ _SESSION değişkenleri Paylaşım

2 Cevap php

Ben iki alt alanlardaki oturum değişkeni içeriğini paylaşmak için çalışıyorum ama nedense çalışmıyor.

sessionid hem de alt etki alanları tam olarak aynı ama değişkenler mevcut değildir.

Ben Çerezler ve bu çalışıyor ile bunu başarabilirsiniz değil oturumda değerleri kullanmak istiyorsunuz.

Burada oturum için etki alanı kuruyorum nasıl:

Thanks, Scott

UPDATE Sorry should have said, I am already using the following:

ini_set('session.cookie_domain', substr($_SERVER['SERVER_NAME'],strpos($_SERVER['SERVER_NAME'],"."),100));

if(session_id ==''){session_start();}

2 Cevap

You are looking for this function: session_set_cookie_params(). Say you have two domains:

  1. site1.example.com
  2. site2.example.com

Her iki etki genelinde oturum verilerini paylaşmak amacıyla, aşağıdaki functiontion aramadan önce session_start():

session_set_cookie_params(0, '/', '.example.com');

(Edit: aslında ben örnek kodda bir nokta unuttum)

The sessionid is exactly the same on both subdomains (..)

Eğer oturum kimliği ve value (değil adı) aynı olduğundan emin misin?

Ben 2 yıl önce benzer bir şey gerekli, ama tamamen farklı sanal konakları (örneğin, example.com ve something.else.net) üzerinde çalışmak için gerekli, bu yüzden kullanıcı aynı {[(0 alır sağlayan küçük bir script yazdım )]}, farklı sanal konaklar. Kaynak kodu http://www.misc.lv/_downloads_file.php?id=18 mevcuttur, ancak hat 58 üzerinde küçük bir hata var - strpos argümanları () (Ben bunu düzeltmek ve sabit komut dosyası yüklemek için çok tembelim) takas edilmelidir.

Temel gereksinimler / adımlar şunlardır:

  1. onlar oturum değişkenleri için ortak bir "depolama" ihtiyaç olarak tüm sayfalar, aynı sunucuda olması gerekir;
  2. bir "ana" ana olmalı; "Ek" barındıran bir sayısında bir sınırlama yoktur;
  3. Şu anda açılan sayfa "ana ana" üzerinde (ve session_id bir istek değil) ise, hiçbir şey "olağanüstü" yapılmalıdır;
  4. sayfa "ana ana" üzerinde değil ve etkin bir oturumu varsa, hiçbir şey "olağanüstü" session_id muhtemelen paylaşılan edildiği gibi, yapılması gereken;
  5. sayfa "ana ana" üzerinde değil ve aktif bir oturum yoksa, "ana ana" dan bir session_id isteyin.