Andi: Userbereich mit CGI

Folgendes Problem: Ich habe auf dem Server eine zentrale Datei. Darauf
sollen mehrere User zugreifen können, aber nicht gleichzeitig.
Das heisst, der erste User der sich einloggt, bekommt das Schreibrecht
für diese Datei. Und wenn er sich wieder ausloggt, wird das Schreibrecht
gelöscht. Soweit wäre das kein Problem. Was aber wenn sich der User nicht
ausloggt, sondern einfach nur das Browserfenster schliesst. Dann wird das
Schreibrecht nicht gelöscht und ist somit fälschlicherweise für alle
anderen User gesperrt. Wie kann es geschafft werden, dass der Server bemerkt,
die Verbindung bricht ab und ich muss noch schnell das Schreibrecht löschen ?

  1. Hi,

    anderen User gesperrt. Wie kann es geschafft werden, dass der Server bemerkt,
    die Verbindung bricht ab und ich muss noch schnell das Schreibrecht löschen ?

    Mehrere Loesungen:
    1. Verbinde dein Lock-Mechanismus einfach mit einer Zeitsperre: Nach XX Sekunden Inaktivitaet wird der Lock aufgehoben.

    2. Baue eine Funktion "Lock brechen" fuer die anderen Bearbeiter.
    Hiermit kann das Lock eines Benutzers aufgehoben werden, wobei der
    dabei natuerlich eine Mail mit einer Erklaerung oder bekommen sollte.
    Also so wie bei RCS.

    3. Verwende fuer sowas eine Datenbank und keine Datei

    4. Alternativ ueberlege dir, ob CVS nicht auch ne Lösung waere.

    Ciao,
     Wolfgang

      1. Verbinde dein Lock-Mechanismus einfach mit einer Zeitsperre: Nach XX Sekunden Inaktivitaet wird der Lock aufgehoben.

      Die Idee ist okay, aber ich habe auch schon gehört, dass man das auch über
      das Handling von Session Objekten machen kann. Das heisst, mein User loggt sich ein,
      und bekommt eine Session ID zugewiesen. Jetzt kann er sich im Userbereich frei bewegen.
      Wenn er die Verbindung ohne ausloggen abbricht, soll dass der Server bemerken und
      mit Hilfe der Session ID und dem Username noch ein Skript ausführen.
      Ist das so möglich ?

      Andi

      1. Hi,

        Ist das so möglich ?

        Nicht mit HTTP, das ist Verbindungslos. Ausserdem könnte ja einfach die Verbindung zusammenbrechen (Kabel wird entfernt oder so).

        mfg Andres Freund