zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Cookie Informationen nur für eine seite?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 17.08.2006, 16:20
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.02.2004
Beiträge: 49
captain befindet sich auf einem aufstrebenden Ast
Standard Cookie Informationen nur für eine seite?

Hallo!

ich hoffe, ihr schlagt mir nicht den kopf ab, aber ich habe im netz keine antwort gefunden.

Hier mein problem:
ich habe mehrere seiten mit listen, welche man via javascript auf- und zuklappen kann. diese informationen (also display:block, bzw. none) werden in einem cookie gespeichert, damit der benutzer, wenn er die seite wieder besucht auf seinem "stand" ist und nicht nochmal alles auf- zuklappen muss.

nun verwende ich für die auf- zuklappfunktion natürlich immer das gleiche javascript. das problem ist jetzt aber, dass das cookie und dessen styleinformationen von allen seiten gelesen werden, sodaß auf allen seiten mit den listen der gleiche zustand erscheint.

kann man irgendwie bestimmen, dass der cookie nur für eine bestimmte seite gilt? also z.b. für http://www.meineseite/faq/index.htm

ich hoffe, ihr könnt mit meiner beschreibung was anfangen.

danke und grüße,

captain
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 17.08.2006, 16:35
Benutzerbild von duessu
{blubb /}
XHTMLforum-Mitglied
 
Registriert seit: 05.09.2005
Beiträge: 371
duessu befindet sich auf einem aufstrebenden Ast
Standard

Salü
Soweit ich weiss, kann man dies nicht einschränken.

Mein Vorschlag ist, dass du jeder liste einen Eindeutigen Namen gibst. Also einer der Über deine ganze HP eindeutig ist. Würde einer nach folgendem Aufbau vorschlagen: Seite_liste.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 17.08.2006, 16:51
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.02.2004
Beiträge: 49
captain befindet sich auf einem aufstrebenden Ast
Standard

@duessu

danke für deine antwort. das mit der eindeutigen listenzuordnung hatte ich mir auch schon überlegt. weitergedacht müsste man dann pro liste ein cookie anlegen. nur kann man ja nicht beliebig viele cookies senden. das ist doch beschränkt auf 20 stück oder so?

grüße,

captain
Mit Zitat antworten
  #4 (permalink)  
Alt 18.08.2006, 11:51
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.843
RoToRa wird schon bald berühmt werden
Standard

Wenn jede Liste in einem anderen URL-Pfad liegt, dann könntest du für jede Liste einen eigenen Cookie setzen. Schau in der Doku der Programmiersprache, die du verwendest nach, wie Cookies gesetzt wird, da wird sicher der "Path"-Parameter erklärt.

Ansonsten halte ich es persönlich eh für keine gute Idee mehr als ein Cookie zu setzen. Wenn du mit einem eindeutigen Name pro Liste arbeitest, kannst du auch alles in ein Cookie schreiben. Die Liste müsste den ganzen Cookie lesen, den Teil der nur ihn betrifft raussuchen, diesen Teil bei Bedarf ändern (ohne die Teile für die anderen Listen zu änderen) und dann den ganzen Cookie zurückschreiben.

Robin
Mit Zitat antworten
  #5 (permalink)  
Alt 18.08.2006, 16:31
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.02.2004
Beiträge: 49
captain befindet sich auf einem aufstrebenden Ast
Standard

@qRoToRa

danke für deine antwort. ich denke auch, dass es nicht sinnvoll ist, mehr als einen cookie zu setzen und finde deine lösung auch sehr interessant. allerdings könnte ich dann speicherprobleme bekommen, da ein cookie doch nur eine größe von 4kb (oder waren es 8kb?) haben darf. wieviele zeichen sind das überhaupt?

aber ich denke, ich versuche das so zu lösen, wenn niemand eine noch elegantere lösung hat...

viele grüße,

captain
Mit Zitat antworten
  #6 (permalink)  
Alt 18.08.2006, 17:33
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.843
RoToRa wird schon bald berühmt werden
Standard

Naja, wenn du mehr als 4k Daten speichern müsstest, dann solltest Du Dir überlegen, ob du nicht Sessions verwendest/implementierst und die Daten serverseitig speicherst.

Robin
Mit Zitat antworten
  #7 (permalink)  
Alt 21.08.2006, 09:41
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.02.2004
Beiträge: 49
captain befindet sich auf einem aufstrebenden Ast
Standard

das problem bei der serverseitigen datenspeicherung in bezug zu einer session ist, daß wenn die session vorbei ist (z.b. browser geschlossen), die daten auch nicht mehr abgerufen werden können. da ich aber möchte, daß der user bei jeder neuen wiederkehr auf die seite seine persönlichen einstellungen wieder vorfindet, ist die serverseitige lösung glaube ich nicht umzusetzen. es sei denn, man müsste sich mit username/pass anmelden, was aber nicht für die seite vorgesehen ist.

kann mir jemand sagen, wieviele cookies pro host gespeichert werden dürfen? ich habe im netz nur empfehlungen gefunden von 0-65535 aber mindestens 20. was sind denn die grundeinstellungen der verschiedenen browser?

viele grüße,

captain
Mit Zitat antworten
  #8 (permalink)  
Alt 21.08.2006, 13:26
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.843
RoToRa wird schon bald berühmt werden
Standard

Zitat:
Zitat von captain
das problem bei der serverseitigen datenspeicherung in bezug zu einer session ist, daß wenn die session vorbei ist (z.b. browser geschlossen),
Nicht wenn die SESSION-ID im Cookie gespeichert wird. Ob die Session-ID oder die eigentlichen Daten im Cokie abgelegt sind, macht für den lebensdauer ja keinen Unterschied.

Zitat:
kann mir jemand sagen, wieviele cookies pro host gespeichert werden dürfen? ich habe im netz nur empfehlungen gefunden von 0-65535 aber mindestens 20. was sind denn die grundeinstellungen der verschiedenen browser?
Bei mir schwirrt im Kopf irgendwas mit der "4 Cookies pro Server" herum, aber irgendwelche konkreten Quellen dafür habe ich nicht..

Robin
Mit Zitat antworten
  #9 (permalink)  
Alt 21.08.2006, 15:45
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 19.02.2004
Beiträge: 49
captain befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Nicht wenn die SESSION-ID im Cookie gespeichert wird.
aber die session-id gilt doch nur solange, wie der user auf der seite ist. wenn er auf eine andere seite geht, oder den browser schließt und dann wieder auf die seite kommt, wird doch wieder eine neue session-id vergeben...

aber ich will es jetzt auch nicht zu kompliziert machen

danke auf jeden fall für deine hilfe!

grüße,

captain
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 21.08.2006, 17:59
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.03.2004
Beiträge: 1.843
RoToRa wird schon bald berühmt werden
Standard

Zitat:
Zitat von captain
aber die session-id gilt doch nur solange, wie der user auf der seite ist. wenn er auf eine andere seite geht, oder den browser schließt und dann wieder auf die seite kommt, wird doch wieder eine neue session-id vergeben...
Nein, du denkst an "Session-Cookies". Die haben mit Session-IDs nichts zu tun.

Der Begriff "Session" in Session-Cookies beziehen auf eine völlig andere "Session" als bei "Session-ID".

Zunächst einmal ist "Session-Cookie" ein mehr oder weniger künstlicher Begriff. Es ist lediglich ein Cookie dessen Lebensdauer bereits vorbei ist. Der Einfachheit halber behält der Browser ihn im speicher bis der Browser geschlossen wird. Cookies dessen Lebenszeit beim Beenden des Browsers nicht vorbei sind, speichert der Browser dauerhalt bis zum nächsten Start des Browsers. Beim "Session-Cookie" bezieht sich der "Session" auf die "Browser-Session", also die Zeit in der der Browser verwendet wird.

Der "Session" bei "Session-ID" ist die Zeit in der auf dem Server die Session erkennt. Sobald die Session-Verwaltung einen neuen Benutzer "erkennt" startet die Session. Die Session endet wenn der Session-Verwaltung es will - in der Regel ist das X Minuten seit dem der Benutzer dieser Session sich nicht mehr meldet, aber es kann unbegrenzt sein.

Nun ist bei einem solchen server-seitigen Session wichtig wie der Server den selben Benutzer wiedererkennt. Eine simple Methode ist z.B. über die Client-IP-Adresse. Wenn innerhalb einer kurzen Zeit von X Minuten mehrere Anfragen von der selben IP-Adresse kommen, nimmt der Server an das ist derselbe Benutzer. Dies ist aber unsicher, da es vorkommen kann, das zwei Benutzer dieselbe IP haben, oder das sich die IP eines Benutzer zwischendurch ändert.

Sicherer ist es dem Benutzer eben eine Session-ID zu geben. Dies kann von einem Seitenaufruf zum anderen über ein Parameter an den URLs weitergegeben werden (oft z.B. als ...?PHPSESSION=... zu sehen). In der Regel wird die Session-ID aber als Cookie gesetzt. Dieser Cookie *kann* ein Session-Cookie sein. Da aber der Session-Cookie beim schließen des Browsers verloren geht, wird der Session auf dem Server auch nicht mehr genutzt werden können. Die Session-ID kann aber genauso gut in einem langlebigen Cookie gespeichert werden und so beim nächsten Start des Browsers wieder zur Verfügung stehen.

Puh, ich muss jetzt weg. Ich hoffe die Erklärung war verständlich. Ansonsten muss ich später nochmal ran.

Robin
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Element ausserhalb seite positionieren, so daß keine scrollbar entsteht st-SaHiB CSS 5 20.07.2009 08:49
Nach klick auf menüpunkt soll die gewünschte seite in der seite erscheinen rs-web CSS 45 17.07.2009 14:16
Überprüfen, ob eine Seite von einer externen Seite im Frameset geladen wurde naitsab Javascript & Ajax 2 11.05.2009 18:53
Probleme auf Seite für den Mainchat Nightrider CSS 12 08.01.2007 09:49
Cookie setzen: Aber was sind Sub-Einträge? Belimo Serveradministration und serverseitige Scripte 1 04.11.2005 15:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:18 Uhr.