• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Daten per Cookie von einem Server auf den anderen?

Status
Für weitere Antworten geschlossen.

yss

Mitglied
Hey Leute,
ich versuche gerade einen Chat in meine Joomlaseite einzubinden. Da der Hoster(Kilu) keine AJAX-Chats erlaubt, muss ich das ganze umgehen indem ich den Chat auf meinen anderen server mache und per iFrame einbinde. Doch nun muss ich ja den Benutzername von meinem Kilu-Server auf den anderen transportieren. Meine eigentliche Idee war, dass ich erstmal den Username in einem Cookie speicher, dieses dann per PHP Auslese und mit AJAX von dem Script hole, danach rufe ich einfach in dem iFrame die URL des anderen Servers und schicke den Benutzername per GET mit. Ein Script auf dem Chat-Server speichert dann den Username in einem 2ten Cookie, welches ich dann auf dem Chat-Server verwenden kann, doch leider funktioniert das ganze nur im Safari, wie kann ich es besser Lösen ohne Installation von irgendwelchen server-Verbindungssoftwares?

Hier meine Codes:

AJAX zum holen des Username auf dem Kiluserver und Senden an das Script auf dem anderem Server:
HTML:
function saveUsernameToMactouch(){
		if (window.ActiveXObject || document.all) {
					// Explorer
					request = new ActiveXObject("Msxml2.XMLHTTP");
				}
			else {
		        	// Mozilla
		        	request = new XMLHttpRequest();
		        }
		        
		    	request.open("GET", "http://clxd.kilu.de/user/getUsername.php", false);
				request.send(null);
				username = request.responseText;
				
				document.getElementById('chatframe').src = "http://mactouch.eu/clxd/chat/setUsername.php?username="+username;
}

Entgegennahme auf dem anderen Server:
Code:
<?php
	$username = $_GET['username'];
	
	setcookie("clxd_username", $username, time()+31536000, "/", ".mactouch.eu");
?>
 
Das sieht von der Idee her gut aus. Dir geht es nur um die Weitergabe des Usernames? Nicht darum, sicherzustellen, ob der Nutzer auch eingeloggt ist?

Was heißt denn "funktioniert nur im Safari"? Was genau geht denn nicht in anderen Browsern? Vielleicht lässt du den AJAX-Request über eine Bibliothek wie jQuery laufen. Die regelt etwaige Kompatibilitätsprobleme mit verschiedenen Browsern.

Ich verstehe übrigens nicht genau, wieso du auf dem Chatserver ein Cookie setzt. Aber das hängt wohl davon ab, wie der Chat den Login regelt.

Ich schreibe am Rande noch mal auf, wie ich es machen würde, wenn der Zugriff auf den Chat nur dann erfolgen darf, wenn ein Nutzer auf der Kilu-Seite eingeloggt ist.

Nennen wir mal den Server der Rahmenseite "A" und den Server des Chats "B". Folgende Abfolge wäre denkbar:

1. Der Nutzer loggt sich auf A ein, A generiert ein zufälliges Session-Token (vielleicht reicht auch die Session-ID, über die Sicherheit müsste man nachdenken) und legt dieses zusammen mit der Information, dass der Nutzer eingeloggt ist, irgendwo ab (etwa in einer Datenbank).

2. A bindet die Chatseite als iframe ein und schickt dieses Session-Token mit dem Username als GET-Parameter mit (<iframe src="http://example.org/chat/login.php?user=testuser&token=abc123def456">).

3. Diese Daten sind gewissermaßen die Login-Daten für den Chat. Das Script in B nimmt die beiden GET-Parameter und schickt sie als Rückfrage an A (etwa per curl).

4. A empfängt die Rückfrage, überprüft, ob ein Eintrag mit entsprechendem Session-Token/Username in der Datenbank der eingeloggten Nutzer vorhanden ist (oder wenn Session-Token = Session-ID, ob die entsprechende eingeloggte Session existiert), und schickt die Information zurück, ob der Login stattfinden darf oder nicht.

5. Ist alles okay, löst das Script in B session_start aus und setzt die Session auf "eingeloggt".​
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben