Merhaba arkadaşlar;
Web sitemde bugün bir değişiklik yaptım. Yeni bir subdomainleme sistemi deniyorum kendimce... Bir kaç sorunla karşılaştım ve bir tanesi hariç bütün sorunları giderdim.
Sorun şu;
Linux host'um mevcut. Ve kategorilerimin kodlarını klasörlerle ayırmıştım.Şimdi aynı klasör isimleriyle subdomain kaydettim ve o klasörler otomatik subdomain olmuş oldu. Denemek isteyenler içinde aynı zamanda paylaşıyorum. Güzel mantıklı sistem eğer otomatik subdomain yapamıyorsanız böyle siteniz ile bağlantılı bir subdomain sistemi yapabilirsiniz. Neyse sorunum şu: "Ana sayfada giriş yapan bir kullanıcı subdomaine geçer geçmez oturum boş gözüküyor. Yani 'Session' değerleri kayboluyor. Fakat ana sayfaya tekrar dönünce değerler duruyor".
Düşüncem oturum değerlerini subdomainler arası ayrı gruplandırıyor. Ve root'un oturum değerlerini subdomainler tanımıyor. Bunun çözümü ile ilgili yardımcı olacak arkadaşlara şimdiden teşekkür ederim...
PHP Session değer kaybı...(Acil yardım)
10
●2.713
- 09-06-2009, 02:38:43htaccess ile otomatik subdomain yönlendirmesi yapabilirsiniz.
başka bir alternatf
- 09-06-2009, 02:50:05Bunun 3 yolu var
1. yol;
session.cookie_path = / session.cookie_domain =
php.ini olarak kaydedip bütün subdomainlerin içine atmak biraz zahmetlide olsa güzeldir.
2. Yol,
sessionlar sadece anadomainde çalıştığı için yani subdomaine geçildiğinde cookie değerlerini alınmadığından sadece ana site üzerinde çalışmaktadır.
Bunuda ini_set session cookies domain ile çözebilirsiniz.
Kullanımı :
ini_set("session.cookie_domain", ".r10.net"); deyip sessionları başlatınız.3. Yol,
Sessionların sadece ana domainde kullanılabilir olduğundan bahsetmiştim.
eğer r10.net yazarsak sadece r10.net üzerinde çalışır ama .r10.net yazarsak subdomainleride kapsar. Bunun için;
session_set_cookie_params(0 , '/', '.r10.net');
yazıp sessionları başlatınız - 09-06-2009, 03:05:33Dostum 2. Yolu denemiştim. Olmamıştı... Şimdi 3'ünüde tekrar denedim yine olmadı yanlış yaptığım noktayı bulamadım...
1. denediğim...
ob_start();
ini_set("session.cookie_domain", ".sitem.com");
session_start();
$sid = session_id();
2.
ob_start();
session_set_cookie_params(0 , '/', '.sitem.com');
session_start();
$sid = session_id();
hepsini denedim kabul etmiyor şu an php iniler hala duruyor subdomainlerde hala çalışmıyor...
acaba ini dosyasında
session.cookie_path = /
session.cookie_domain = .sitem.com
gibimi yapacaktım?
Sabahtan beri bütün herşeyi denedim olmadı herkes o dediğin çözümlerle halletmiş ben karşılayamadım... - 09-06-2009, 03:34:38ilk yöntem için;
hatırladığım kadarıyla kendi dizinlerinize php.ini koyduğunuzda bazen PHP ona göre çalışıyor evet ama herzaman çalışmıyor. suphp ile çalıştırıyorsanız apache'i çalışabilir.
yada sadece belli ayarlar için geçerlidir bu. çalışmama problemi bundan kaynaklı olabilir.
ikinci yöntem için;
genelde ini_set fonksiyonunu serverda disable_function olarak tanımlarlar güvenlik açısından. böyleyse çalışmama sebebi olabilir.
3. yöntem niçin çalişmamiş olabilir bende emin değilim
birde şöyle dene istersen, belki 0'ı sonsuz olarak algılamamıştır diyeceğim ama..
session_set_cookie_params(6666 , '/', '.sitem.com'); - 09-06-2009, 09:08:39Üyeliği durdurulduamele bir yöntem olarak session i start ederken elle session değerini vermenizde mümkün subdomaine geçerken session id yi taşıyıp session i start edebilirsinizTrDunya adlı üyeden alıntı: mesajı görüntüle