koras Opublikowano 21 Marca 2008 Udostępnij Opublikowano 21 Marca 2008 Czy można zapisać ciasteczko na 2 domeny? A mianowicie mam 1 serwis i podpięte pod niego 2 domeny. Chciałbym, aby użytkownik logując się na jednej domenie, automatycznie był zalogowany także na drugiej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
slawek22 Opublikowano 21 Marca 2008 Udostępnij Opublikowano 21 Marca 2008 Raczej nie istnieje standardowy mechanizm, który to robi. Możesz ustawić cookie na wsztskie subdomeny w domenie za pomocą session_set_cookie_params. Zawartość cookie możesz skopiować między domenami wstawiając na stronie niewidoczny iframe odwołujący się do adresu spod drugiej domeny, wartość cookie przekażesz przez parametr URL (HTTP GET). Można też pewnie tak zrobić z obrazkiem (<img>) albo skryptem (<script>) lub background-image w klasie CSS, chociaż tutaj nie jestem w 100% pewny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sniver Opublikowano 23 Marca 2008 Udostępnij Opublikowano 23 Marca 2008 wystarczy że przeczytasz dokumentacje: https://pl.php.net/manual/pl/function.setcookie.php, tak czy siak ciacho jest zapisywane w buforze przeglądarki i odczytywane przez konkretną domenę lub subdomene. Czyli możesz zrobić tak że domena aaa.com ci odczyta ciacho, zas xxx.aaa.com już nie. Podobnie odwrotnie. Pisząc tak prosto z przykładu: $czas = time()+3600; setcookie("TestCookie", $value, $czas, "/", "example.com", 1); setcookie("TestCookie", $value, $czas, "/", "example2.com", 1); bedziesz mieć to samo ciacho przypisane dla 2 domen i ich subdomen... ..:: Strony WWW ::....:: Nowe technologie ::....:: Hurtownie ::....:: Reszte znajdziesz w google.pl ::.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
slawek22 Opublikowano 23 Marca 2008 Udostępnij Opublikowano 23 Marca 2008 Nie zadziała z IE6 / IE7, jedynie w bardzo starych FireFoxach i może w starszym niż IE5.5. Nowe przeglądarki mają domyślnie ustawioną opcję zabezpieczania cookie przed modyfikacją z innej domeny. Czyli musisz mieć na example.com odwołanie do example2.com które to ciasteczko ustawi dla example2.com (i odwrotnie). IE6 / IE7 ma to domyślnie włączone, ale można to zmienić gdzebiąc w "settings". W firefoxie wyłączyć się tego nie da z tego co wiem. Jak jesteś na example.com to zadziała jedynie linijka 1. Jak jesteś na example2.com zadziała jedynie 2. Tak samo z odczytem. Wniosek: nie przeniesiesz w ten sposób zawartości ciasteczek. Użytkownik po zmianie domeny zostanie wylogowany. Mechanizm który opisujesz działa tylko i wyłącznie dla subdomen. Żródło: https://wp.netscape.com/newsref/std/cookie_spec.html Only hosts within the _specified___domain_ can set a cookie for a domain and domains must have at least two (2) or three (3) periods in them to prevent domains of the form: ".com", ".edu", and "va.us". Any domain that fails within one of the seven special top level domains listed below only require two periods. Any other domain requires at least three. The seven special top level domains are: "COM", "EDU", "NET", "ORG", "GOV", "MIL", and "INT". The default value of domain is the host name of the server which generated the cookie response. Stąd też pewnie zalecenie na php.net, żeby przed nazwą domeny dawać ktopkę, jeśli chcemy ustawiać ciastko dla wszystkich subdomen, czyli: setcookie("TestCookie", $value, $czas, "/", "example2.com", 1); OK ale setcookie("TestCookie", $value, $czas, "/", "example2.pl", 1); już nie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sniver Opublikowano 25 Marca 2008 Udostępnij Opublikowano 25 Marca 2008 Ooo.. no to mnie zaskoczyłeś. Nie wiedziałem o tym No to jeśli tak to można zrobić to pod dowolną ilość domen i napisac prosty skrypt wywoływany przez XMLHttpRequest i po problemie Tak chyba sie da bez problemu ;] ..:: Strony WWW ::....:: Nowe technologie ::....:: Hurtownie ::....:: Reszte znajdziesz w google.pl ::.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sniver Opublikowano 25 Marca 2008 Udostępnij Opublikowano 25 Marca 2008 zauważyłem że IE7 nie pozwala też na utworzenie ciasteczka w subdomenie dla całej domeny. Czyli: gdybym chciał zrobić na aaa.bb.pl ciacho dla całej domeny bb.pl to nie chce przejść. Ale jeśli zrobie to samo w domenie bb.pl, a nie subdomenie to zadziała pięknie... ..:: Strony WWW ::....:: Nowe technologie ::....:: Hurtownie ::....:: Reszte znajdziesz w google.pl ::.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
slawek22 Opublikowano 25 Marca 2008 Udostępnij Opublikowano 25 Marca 2008 Dziwne, powinno pójść, ja mam taki kod, może nie masz ustawione domeny na [kropka]bbb[kropka]pl // handling long sessions session_set_cookie_params(3600*24*7 , '/', '.XXXXXXXX.com'); ini_set("session.cache_expire", 60*24*7); // minutes ini_set("session.gc_maxlifetime", 3600*24*7); session_save_path("/tmp/___XXX"); user zalogowany dla wszystkich subdomen. Co do XMLHttpRequest to raczej powinno iść (chociaż nie wiem na 100%). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sylverand Opublikowano 2 Kwietnia 2008 Udostępnij Opublikowano 2 Kwietnia 2008 OT sorry że tu pisze ale slawek22 mozesz usunąć część swoich PW w skrzynce, bo nie moge Ci odpisac bo ma odbiorca max limit przekroczony w skrzynce Albo podaj maila Dzięki! OT Myśl i bogać się Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.