Variablen sichern

Fragen zum Thema HTML, JavaScript, PHP
Antworten
Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Variablen sichern

Beitrag von Jside » Do Apr 02, 2009 2:33 am

Mal eine Frage, ich bastle gerade an einem CMS, nun habe ich eine Funktion eingebaut, mitder man die Seite "sperren" kann(alle Anfragen enden auf einer Seite, aufder steht, das an dem Server gerade Configurationen vorgenommen werden) Jetzt will ich aber, das wenn z.b. ein User etwas ediert hat, das dies nicht verloren geht(da bei der Sperrung z.b. angenommen wird, das die Datenbank geupdatet wird, kann ich das zeug natürlich nicht abspeichern). Bei den $_GET Variablen(Das CMS besteht aus leeren Seiten, deren Inhalt aus einer Datenbank gelesen wird) kein Problem, wie aber bei den $_POST Variablen(Beiträge, Login etc?)

Ich könnte diese Clientseitig in einer unsichtbaren Form verstauen, wobei allerdings das Risiko besteht, das der Client statt auf den Refresh Button auf der Seite den richtigen Refesh Button klickt, oder den Tab schließt. Also wie kann ich $_POST Variablen mit unterschiedlichem Inhalt Serverseitig abspeichern, sodass, wenn man als Admin auf den Button zum wiederfreigeben drückt, diese Verarbeitet(Login's natürlich nicht) werden?

Mit SESSIONS ja wohl nicht...

Benutzeravatar
Dubbel
Beiträge: 197
Registriert: So Jul 06, 2008 6:25 pm
Wohnort: Kopenhagen
Kontaktdaten:

Re: Variablen sichern

Beitrag von Dubbel » Do Apr 02, 2009 10:33 am

Ich verstehe dein Problem noch nicht so ganz:
Du hast ein CMS, bei dem man Seiten sperren kann.
Ruft irgendjemand diese gesperrte Seite auf, dann erscheint "Server configuration" oder so.

Doch nun kommts: Warum sollte ein Benutzer diese Seite verändern können? Bzw. dies nicht können, weil bei einer gesperrten Seite _angenommen_ wird, dass die DB geupdated wird. Würde es nicht reichen, einfach nur zu schreiben, dass die Seite gesperrt ist? Und warum sollte das, was der User schreibt, nicht in die DB geschrieben werden? :?

Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Re: Variablen sichern

Beitrag von Jside » Do Apr 02, 2009 10:50 am

Dubbel hat geschrieben:Ich verstehe dein Problem noch nicht so ganz:
Du hast ein CMS, bei dem man Seiten sperren kann.
Ruft irgendjemand diese gesperrte Seite auf, dann erscheint "Server configuration" oder so.

Doch nun kommts: Warum sollte ein Benutzer diese Seite verändern können? Bzw. dies nicht können, weil bei einer gesperrten Seite _angenommen_ wird, dass die DB geupdated wird. Würde es nicht reichen, einfach nur zu schreiben, dass die Seite gesperrt ist? Und warum sollte das, was der User schreibt, nicht in die DB geschrieben werden? :?
Also wenn der User nen Fetteren Text geschrieben hat, und den dann absendet, und dann eine Meldung kommt, das der Server gewartet wird, ist das ja nich so toll. Sowas hatte jeder schonmal, man schreibt ne Weile an was, und plötzlich soll man sich neu einloggen, weil die Sitzung abgelaufen ist, und der Text ist weg. Hier daselbe, nur mit einer Serverwartung. Ich möchte jetzt das die Daten in dem Fall irgendwie abgespeichert werden, sodass diese in die Database geschrieben werden, sobald die Seite wieder entsperrt/fertig geupdatet ist. Andernfalls natürlich direkt in die Database.

Ich könnte jetzt zwar die Funktion zum sperren so einrichten, das diese erst ausgeführt wird, wenn alle Sitzungen beendet wurde, was aber den Nebeneffekt hat, das manche sich nicht ausloggen, und die Sessions keine Ablaufzeit haben.

Kurtz gesagt: Ich möchte dem User die Ärgerniss ersparen ;).

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Variablen sichern

Beitrag von Xin » Do Apr 02, 2009 2:59 pm

Jside hat geschrieben:Ich könnte jetzt zwar die Funktion zum sperren so einrichten, das diese erst ausgeführt wird, wenn alle Sitzungen beendet wurde, was aber den Nebeneffekt hat, das manche sich nicht ausloggen, und die Sessions keine Ablaufzeit haben.

Kurtz gesagt: Ich möchte dem User die Ärgerniss ersparen ;).
Eine Session kann ja ablaufen, aber wiederbelebt werden.
So kannst Du auf der Platte die Daten speichern unter dem Namen der Session. Loggt sich der User ein, guckst Du nach, ob Du was unter dieser Session auf der Platte hat und stellst die Seite wieder her.
Sollte der User sich wieder anmelden, ohne dass er die Session-Information noch hat, schaust Du in Deiner Datenbank nach, wie die alte Session hieß und ob unter diesem Eintrag noch was auf der Platte ist. Dann kannst Du ihm nach dem Anmelden anbieten, eine Seite mit Daten wiederherzustellen, die durch die Wartung des Servers nicht verarbeitet wurde.
Veraltete abgebrochene Sessions, z.B. wenn nach 48 Stunden sich dafür keiner mehr interessierte, kannst Du ja löschen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Variablen sichern

Beitrag von cloidnerux » Do Apr 02, 2009 4:53 pm

Oder du hast Textdatein auf deinem SERVER, in einer Kommt der Text den der SUer geschriben hat, zusammen wie mit unkritischen Informationen wie username und Datum, etc.. Diese Datei hat dan ein bestimmtes präfix wie "temp_save__<USERNAME>_<ID>.txt" oder so. Wenn sihc jezt ein Nutzer wieder Anmeldet, wenn der Server wieder frei sit, dann wird gescahut ob eine Solche Datei vorhanden ist und es erscheint ein Dialog ob man dann den text ncoh Spiechern will oder ihn nochmal Edietieren will, oder er wird autoamtisch in die Datenbank Transportiert. Dann löschst du die Datei.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Variablen sichern

Beitrag von Dirty Oerti » Do Apr 02, 2009 6:36 pm

Ich kenn mich da nicht so groß aus, aber du könntest es auch über eine 2. Datenbank (a la "Lost & Found") ablaufen lassen.
Das jede Seite, in der ein langer Text entstehen könnte bei einer Serverwartung den Text in diese Datenbank zusammen mit Informationen über Benutzer, Zeitpunkt, Seite schreibst.

Du darfst dann nur nicht beide Datenbanken auf einmal warten^^
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Re: Variablen sichern

Beitrag von Jside » Fr Apr 03, 2009 4:39 pm

Also ich hab jetzt folgende Idee: Die Variablen werden vom Server eingelesen, und entsprechend zu einer fertigen MySQL Funktion als String verarbeitet, diese wird dann in einer *.php Datei in ein Array Geschrieben(immer letzte Zeile(?>) löschen, via setenv/getenv die Größe des Zurzeitigen Array auslesen, und via fprintf(datei, "array[nummer++] = \"ABFRAGE\""); dazuschreiben, und wieder ?> anhängen.)
Dieses wird dann beim Wiedereintritt in die Atmosphäre(=Online gehen) via while Loop eingelesen, und ausgeführt, das hat den Vorteil, das ich so nicht für alles ne Extrawurst machen muss, sondern alles angefangen von Registrierungen, bishin zum Update von Informationen alles Zentral nachträglich verarbeiten kann...


....gute Idee??

Benutzeravatar
hackmack
Beiträge: 85
Registriert: Do Mär 26, 2009 10:16 pm

Re: Variablen sichern

Beitrag von hackmack » Fr Apr 03, 2009 10:34 pm

ich find die Idee ganz gut. Du musst kannst allerdings nicht alle Daten in so einer Datei speichern. Hat ein User sich gerade registriert, will er sich im oft gleich danach einloggen - dies geht aber nicht, da die Daten noch nicht in der Datenbank sind in der der Login-Teil sucht. Sofern eignet sich das System eigentlich nur für Daten, welche nicht sofort danach ausgelesen bzw. bearbeitet werden müssen, sondern erst nach gewisser, undefinierter Zeit (dann wenn der Admin mit der Wartung fertig ist).

Eine ganz andere Idee wäre (dadurch hat der User zwar wieder etwas Aufwand, aber du hast das Problem mit den Daten nicht), dass ein Ajax-Script regelmäßig schaut, ob der Server nicht gesperrt ist. Ist der Server gesperrt, wird an den User, der gerade einen Text schreibt, eine Meldung ausgegeben, dass er den Text bitte noch lokal speichern sollte. Als Sicherheit kann man den Text zusätzlich danach noch auf dem Server in einer Datei speichern... :D
They say, if you play a Microsoft CD backwards, you hear satanic messages. Thats nothing, cause if you play it forwards, it installs Windows.

Antworten