ugrás a tartalomhoz

Felhasznalo benttartasa tobb oldalon, egy domain-en keresztul

ZoTyA · 2007. Szep. 18. (K), 15.28
Sziasztok!

Van több oldal azonos domainben, különböző virtualhoston, amelyeknél fontos lenne, hogy ugyanazt a session-t használják. A session beállításai a következők: ini_set("session.cookie_domain", ".example.com").
Igy elvileg a site1.example.com, és site2.example.com -on ugyanezt a session-t kellene látnunk.
A session tesztelése során annak ellenére, hogy mindkét oldalon a session_id() függvény ugyanazt adja vissza, a $_SESSION értékei törlődnek, mikor egyik oldalról a másikra megyünk át (tehát ha egyik oldalon be lenne lépve a user, addig a másikon nem).


A server tulajdonsagai: php 5.2.1, apache 2.2.3

Az apache virtualhost beállításai a következők:
<VirtualHost *>
ServerName site1.example.com
ServerAlias www.site1.example.com
ServerAlias site1.example.com
DocumentRoot "/var/www/site1.example.com"
<Directory />
Options FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>

<VirtualHost *>
ServerName site2.example.com
ServerAlias www.site2.example.com
ServerAlias site2.example.com
DocumentRoot "/var/www/site2.example.com"
<Directory />
Options FollowSymlinks
AllowOverride All
</Directory>
</VirtualHost>


A php session-re vonatkozó beállításai:
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary wddx

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php5 /var/lib/php5
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0

A kod, amivel teszteltuk:
<?php

ini_set("session.cookie_domain", ".example.com");
session_start();

print "cookie_domain: ".ini_get("session.cookie_domain")."<br >";

if (!isset($_SESSION["tesztvar"])) {
print "Tesztvar nem volt létrehozva, létrehoztam<br>";
print "session_id: ".session_id()."<br>";
$_SESSION["tesztvar"] = 1;
} else {
print "Tesztvar be van állítva<br>";
print "session_id: ".session_id()."<br>";
}

?>

Milyen beállítástól függhet ez a dolog, hogy nagyon nem akar működni?

Koszi
ZoTyA
 
1

RTFM

Castor87 · 2007. Szep. 19. (Sze), 11.50
Ezt találtam:
'session.cookie_domain' should be set to empty string
for all local domain names, not only for 'localhost' (but should
not be empty for local IP addresses):
<?php
ini_set('session.cookie_domain', (strpos($_SERVER['HTTP_HOST'],'.') !== false) ?
$_SERVER['HTTP_HOST'] : '');
?>
Még figyelmedbe ajánlom:
php.net
2

Nem igazan jo...

ZoTyA · 2007. Szep. 19. (Sze), 14.30
Nem jó ha üresen hagyom akkor a saját hoszt nevét rakja bele.
Igy semmi köze nem lesz a kettőnek egymáshoz és külön sessionjük lesz.
3

Google

Castor87 · 2007. Szep. 20. (Cs), 10.16
Google a barátom, a tiéd is ;)
session_id átvitele subdomainekre