Individuelle Cookies pro Browser Tab / Fenster

Microhome

Erfahrenes Mitglied
Hallo zusammen,

für ein Projekt speichere ich einen per Dropdown ausgewählten Eintrag in einem Cookie. Anhand dieses Cookies werden dann Informationen zu dem entsprechenden Eintrag angezeigt.

Nun gibt es jedoch User, die um diese Parameter zu vergleichen, mehrere Browserfenster bzw. Tabs öffnen und ich nun nicht weiß, wie ich tabspezifisch den gewählten Eintrag in einem Cookie speichern kann. Soweit ich weiß, ist das nicht möglich und mir bleibt lediglich die Möglichkeit, die Variable in der URL mitzuschleifen, richtig?!


Bin auf eure Meinung und / oder Ideen gespannt und wünsche noch einen angenehmen und entspannten Sonntagabend!


Grüße aus Berlin.
 
  • Gefällt mir
Reaktionen: iAZ
Naja, beim Login wird schon geprüft, ob der User Cookies akzeptiert oder nicht, also das ist nicht das Problem. Die Frage die bleibt: Wird denn für jeden Tab eine extra Session angelegt, oder ist diese jeweils pro Browsersitzung gültig?
 
Moin,

PHP hat keinerlei Kenntnis von Tabs oder Fenstern, ergo wirst du soetwas mit PHP auch nie hinbekommen(selbst eine Variable, die du per URL mitschleifst, bewahrt dich nicht davor, dass jemand diese URL in einem anderen Tab öffnet).

Zugriff auf Fenster erhältst du mit JS...damit wäre es möglich, Fenster/Tabs mit einer eindeutigen ID zu versehen und darüber einen Bezug zu einem speziellen Cookie herzustellen.
 
Hallo Sven,

vielen Dank für deine Antwort.

Ich habe bisher folgenden Code, mit dessen Hilfe ich die JS Eigenschaft window.name individuell setzen kann. Nun bleibt allerdings die Frage, wie ich diese client-seitige Variable serverseitig, also in PHP, verwenden kann?!

Code:
<?
$wid = uniqid();
?>

<html>
<head>
<title>test</title>
<script>
function wid(){
	if (window.name == ''){
		window.name = '<?=$wid?>';
	}
}
</script>
</head>
<body onload="wid();">
</body>
</html>
 
Das am wenigsten fehleranfälligste wäre in dem Fall wohl, wenn du diese Informationen per AJAX abholst, da könntest du ID des Fensters als Parameter übergeben.
 
Hallo Sven,

das Holen via AJAX ist ja kein Problem, aber die o.g. Frage bleibt - wie bekomme ich die Variable dann von JavaScript in PHP übergeben, ohne das Ganze als Parameter in der URL durchlaufen zu lassen?
 
Ich habs zwar nie ausprobiert aber Cookies werden doch für eine Domain gesetzt und bei einer Anfrage an den Server übertragen.
Wenn du die Variable nicht per URL übertragen willst, probier doch mit JavaScript ein COokie zu setzen und dieses später mit PHP auszulesen... Was anderes würde mir auch nicht einfallen :)
mfg AZ
 
das Holen via AJAX ist ja kein Problem, aber die o.g. Frage bleibt - wie bekomme ich die Variable dann von JavaScript in PHP übergeben, ohne das Ganze als Parameter in der URL durchlaufen zu lassen?

Im Grunde garnicht, zumindest nicht, ohne den Bezug zum Fenster zu verlieren.

Mein Gedankengang war jener:
Code:
if(!window.name)window.name='deinPrefix'+new Date().getTime()+'_'+Math.random();

...das erzeugt dir fürs Fenster eine recht eindeutigen Namen.
Diesen könntest du bei einer Kommunikation per AJAX immer als Parameter an den Server übergeben.
Kommunizierst du aber irgendwo in Punkto der Daten, die du fensterspezifisch benötigst, ohne AJAX/Javascript, ist das alles für die Katz, du wirst nie wissen, ob der User das originale Fenster benutzt, oder eine Kopie davon oder halt...ein anderes Fenster :-)

Es ist halt so, dass zuerst der Server arbeitet, und dann der Client...welches Fenster da benutzt wird, kann man also nicht im Vorraus wissen(bevor das Dokument nicht im Client-Fenster geladen ist)

Diesen Fensternamen selbst musst du nicht irgendwo/irgendwie speichern.
Er ist unabhängig vom Dokument, welches in dem Fenster zu sehen ist, der User kann also Links verfolgen, Formulare senden, etc., solange er dies im selben Fenster/Tab tut, bleibt der Name des Fensters erhalten
 
Zurück