a czy PHP stoi na tym samym serwerze dla obydwóch serwisów? Wtedy nie byłby to problem - rozwiązałbyś sesją.
Jeżeli stoją na osobnych serwerach to tylko zabawa z ciastkami + jakieś cholernie mocne zabezpieczenie + ewentualnie przekazywanie z jednego do drugiego serwisu zmienną POST identyfikator sesji i utrzymywanie informacji o sesji na obydwóch bazach danych.
Ciastka chyba odpadną przy różnych domenach
na przykład:
struktura tabeli dla sesji
session_id
id_user
pass?

? - raczej nie - to możesz łatwo przy rejestracji zdublować.
I teraz
z jednego serwisu przechodzisz na drugi:
nie przechodzisz linkiem tylko formularzem. Naciśnięcie linka do drugiego serwisu musi spowodować wysłanie ID sesji na przykład
na pierwszym serwisie
zapisz id sesji do bazy
do każdej strony dodaj
<form name="ukryta_sesja" method="POST" action=""> <input type="hidden" name="podaj_dziwna_nazwe_nie_id_sesji" value="wstaw_wartosc_id_sesji">
<a href="java script:void(0)" onClick="przekazParametry(Link do drugiego serwisu)">opis
</a>
<script type="text/javascript" language="JavaScript"> function przekazParametry(link){
ukryta_sesja.action = 'link';
ukryta_sesja.submit();
}
link wiadomo dodajesz tam gdzie potrzebujesz.
Natomiast to co masz wyżej dodaj w stopce każdej strony.
teraz na drugim serwerze gdzie będą dane odbierane:
if(isset($_POST['podaj_dziwna_nazwe_nie_id_sesji'])){ //tutaj odtwórz sesję użytkownika
}
To jedno rozwiązanie. I jest ono delikatnie rzecz ujmując niebezpieczne i moze doprowadzić do przejęcia sesji. Zostawię jednak dla potomnych w razie gdyby komuś do czegoś innego się przydało.
Natomiast w trakcie pisania odpowiedzi wpadłem na inny pomysł :F
Procedura wygląda tak.
Na obydwóch serwisach musisz mieć takie same nazwy pól do logowania. Na przykład
<form name="logowanie" method="POST" target="" action=""> <input type="text" name="login"> <input type="password" name="pass"> <input type="button" value="loguj" onClick="loguj()">
teraz dodajesz do strony iframe'a (do obydwóch stron logowania na obydwóch serwerach)
<iframe name="logowanie_na_drugim_serwerze" id="logowanie_na_drugim_serwerze"></iframe>
na koniec dopisujemy funkcję JS
<script type="text/javascript" language="JavaScript"> function loguj(){
//najpierw zalogujmy się na drugim serwerze
//ustawiamy, że formularz ma być wysłany na iframe
logowanie.target = 'logowanie_na_drugim_serwerze';
//ustawiamy na jaki url ma być przesłany formularz
logowanie.action = 'link_do_strony_obslugujacej_logowanie_na_drugim_serwerze_http://_na_poczatku_koniecznie!!!!';
//wysyłamy formularz
logowanie.submit();
//po stronie drugiewgo serwera przeprowadź normalną procedurę logowania
//dajmy sobie jedną sekundę na przetworzenie formularza na drugim serwie i ustawienie cistka!
var date = new Date();
var curDate = null;
do {
curDate = new Date();
}
while(curDate-date < 1000)
//teraz zalogujmy się do serwera na który weszliśmy
//ustawiamy, że formularz ma być wysłany bez iframe
logowanie.target = '';
//ustawiamy na jaki url ma być przesłany formularz
logowanie.action = 'link_do_strony_obslugujacej_logowanie_na_tym_serwerze';
//wysyłamy formularz
logowanie.submit();
//tutaj też przeprowadź normalną procedurę logowania
}
jak dołozysz do tego ciastko to wszystko pięknie pójdzie i zalogujesz się na obydwu serwerach. Dlaczego najpierw na drugim serwerze się logujemy? żeby ciastko się ustawiło, i żeby możnabyło normalnie sesję zrobić
Miłego dnia