Zum Inhalt springen

Formular - Variablen und Frames

Erstellt am 2. Juni 2005 · 1 Antwort · letzte Antwort am 8. Juni 2005

Tags: Frage

Ravetec ·

Also, erst die Geschichte:

Ich habe vor einen passwortgeschützten Bereich in meine Seite mit Frames einzufügen. Soweit so gut, es gibt ja bereits eine Extension dafür, das Dumme daran ist: Sie funktioniert nicht.
Als nächstes bin ich dann auf die Idee gekommen das ganze selbst zu schreiben. Allzu schwer ist das ja eigentlich nicht, aber funktioniert hat auch das nicht.

Jetzt kommen wir zu den Details:

Das Formular sieht so aus:

<form name=login method=post action=index.php target=_self>
<input type=text name=name>Benutzername<br>
<input type=password name=pass>Passwort<br>
<input type=hidden name=type value=2>
<input type=hidden name=id value=61>
<input type=submit value=Login>
</form>

Das ganze funktioniert bis zu der Stelle, an der ich im Frame die Variablen $name und $pass anzeigen lassen möchte, die Variablen sind leer.

Gib es irgendeine Möglichkeit Variablen anderweitig zu übergeben als mit POST bzw. GET ?

Ravetec ·

Hier mal mein Lösungsansatz:

Login.htm -> dbentry.php -> Daten in DB schreiben [name, pass, ip, timestamp]
  \/                             
alte IP's löschen
  /\
Geschützte Seiten -> Abfrage SELECT ... WHERE IP = $IP AND timestamp = secured
                                              \/
                                         Stimmen Daten?
                              \/---------------|------\/
                            positiv                  negativ
                           echo ("Seiteninhalt");    echo ("Bad Login"); exit();

In der Login.htm befindet sich das Formular, die Daten werden dann an die dbentry.php übergeben die in einem neuen Fenster geöffnet wird. Da werden die Daten dann in die Datenbank geschrieben.
Werden jetzt die Geschützten Seiten innerhalb von Typo3 betreten wird eine Abfrage an die Datenbank mit der IP des Benutzers als Kriterium. Dann werden die ausgegebenen Daten nochmal mit dem geforderten Benutzer/Passwort verglichen und bei einem postiven ergebnis wird der Seiteninhalt ausgegeben. Bei negativem kommt dann halt ien exit();. Ist zwar nicht so schön aber es funktioniert wenigstens ^^
Damit die alten IP's auch immer wieder nach ner Zeit rausgeworfen werden gibts auf jeder Seite eine Abfrage die alle Einträge aus der Datenbank löscht die schon länger als 10 min in der DB liegen. Dafür ist dann der Timestamp gut ($time = time(); $timestamp = $time + 600);

Die Benutzernamen/Passwörter werden in der selben Tabelle abgelegt wie die IP's und sehen ungefähr so aus:

sid          name          pass        ip      timestamp
autmatisch   Testname      Passwort    xxx     secured

die ip wird durch irgendwas beliebiges ersetzt und der timestamp mit dem sicherheitslevel.