JavaScript Variablen für nächsten Seitenaufruf speichern

te one

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.255
Hallo,

bin absoluter Anfänger in JavaScript und bräuchte eure Hilfe:
Über einen Button kann man sich auf meiner Seite ein sog. "Admin-Plugin" anzeigen lassen. Das ist nichts anderes als ein div welcher dann mit ausgegeben wird.
Da sich dieser DIV verschieben lassen sollte, hab ich mir ein kleines JavaScript gesucht welches das kann (http://aktuell.de.selfhtml.org/artikel/javascript/draganddrop/)
Nun möchte ich aber die aktuelle DIV-Position jedesmal speichern und dann den DIV beim nächsten Aufruf wieder dorthin setzen.
Erste Überlegung war mit $_SESSION (alles weitere ist in PHP programmiert). Allerdings läuft das JavaScript ja auf dem Client...
Wie speichere ich das also für den nächsten Seitenreload (muss nichtmehr funktionieren wenn der Browser zwischendurch zu war)? Geht sowas wie nen $_COOKIE?
Und wie lösche ich diese Variablen dann wieder MIT PHP? (Wäre für mich wesentlich angenehmer die wieder mit PHP löschen zu können)
 
Ja am einfachsten geht das über Cookies. Einfach mal nach document.cookie googlen, da sollte es genügend Beispiele geben, wie man diese in JS verwenden kann. In PHP wie du schon sagtest über das superglobale $_COOKIE.
 
Problem gibts dann aber wenn Leute Cookies im Browser verweigern (soll es angeblich geben). Du könntest es auch in der PHP-Session speichern. Ist halt nur eine kurzzeitspeicherung. cookie ist auf lange zeit, obwohl du da die Zeit bis zum "Verfall" in Sekunden angeben kannst.
 
Für die Session müsstest du aber einen Ajax-Request senden, damit der Server mitbekommt, wo das div hinverschwunden ist.

Wenn Cookies deaktiviert sind, würde ich als Fallback lieber den div starr an seiner Position lassen. Wer einige Features nicht aktiviert, kann diese im Umkehrschluss halt auch nicht nutzen.

@ chriz0101: Ich bin übrigens einer davon, dank Cookie Monster funktioniert das problemlos (genau wie in NoScript). ;)
 
Gut werde mir morgen mal die Möglichkeiten des Cookie-setztens in JS anschauen.
Wer die nicht aktiviert, der hat dann halt Pech gehabt (wenn jemand aus welchen Gründen auch immer den IE 1 benutzen will mach ich ihm ja auch kein extra-Skript)

Aber wo wir schon davon sprechen:
Muss mal gucken was passiert wenn man Cookies dann aus hat!? Nicht dass da total viele Fehler kommen...

@chriz: Und wie soll ich die Variablen von Javascript immer aktuell in die Session bringen?
 
Dann passiert einfach nichts, wenn Cookies nicht aktiviert sind.
 
Naja ich muss halt immer mit isset() feststellen ob der Cookie überhaupt gesetzt ist.
Aktuell werden auf meiner Seite sowieso noch keine Cookies genutzt, aber das ändert sich dann ab morgen.

Ich könnte ja theoretisch (in der Praxis natürlich Schwachsinn) schreiben:
$_COOKIE['sonstwas']="123";
echo $_COOKIE['sonstwas'];
Das würde dann sicherlich einen Fehler auswerfen (undefined index oder sowas).
 
Jap, sowas würde einen Error werfen. An deiner Stelle würde ich aber nicht den Weg mit variablen Userdaten gehen, sondern immer Hilfsvariablen nutzen. Bspw.:
PHP:
$Hilfe = '123'; // hier der Standardwert
if( isset( $_COOKIE['hilfe'] ) ) $Hilfe = (int)$_COOKIE['hilfe']; // hier der Wert, falls vom User gesetzt
So umgehst du die ständige Prüfung von Variablen und hast ein definiertes Laufzeitverhalten.
 
War jetzt auch nur ein Beispiel
Großartig viel kommt eh nicht vom User (außer ne Id die mehrmals auf Hacking geprüft wird).
Alles Weitere wird auch auf Gültigkeit etc. geprüft.

Mal sehen wieviel ich sonstnoch im späteren Verlauf vom User holen muss...

Also morgen probier ich das mit den Cookies
 
Zurück
Oben