Sven Rautenberg: session_start

Beitrag lesen

Moin!

Am besten du verwendest dazu noch eine MySQl-Datenbank.

Wozu das? Lohnt sich wirklich nur, wenn man mehr als hundert Besucher hat, die regelmäßig und zahlreich zugreifen, aber nicht für einen einzelnen Administrator.

Du übergibst die Variablen per Post und machst eine Datenbank abfrage. Existieren die übertragenen Werte in der entsprechenden Spalte der DB, dann wird eine session gestartet und in dieser wird die $eingeloggt = true gestetzt. Existieren die Werte nicht wird die Variable auf = false gesetzt und die session_destroy.

Falsch.

Die Session wird immer gestartet.

Aber nur wenn man sich erfolgreich eingeloggt hat, wird das in z.B. $_SESSION['logged_in']=true gespeichert - schlauerweise sichert man danach noch die aktuelle Zeit als $_SESSION['last_access']=time() um bei späteren Zugriffen festzustellen, ob nicht schon zuviel Zeit seit dem letzten Zugriff vergangen ist.

Wenn die Variable true ist, dann noch session_register den Benutzernamen.

"session_register benutzen wir nicht mehr..." :)

Um die Seite, welche nur per Login erreichbar sein sollen zu schützen, muss diese Seite eine PHp Seite sein. und in dieser muss dann eine if-Schleife mit session_is_registered sein. Wenn die Session existiert kommt der User drauf ansonsten nicht.

Wow. Nur ein Absatz, aber drei fette Fehler drin.

  • IF-Schleifen gibt es nicht.
  • session_is_registered ist ebenso böse wie session_register. Man verwendet es nicht mehr!
  • Die Existenz einer Session ist kein Beweis für irgendwas! Jeder Benutzer kann sich eine Session generieren, wie er möchte. Es kommt darauf an, was in $_SESSION drinsteht.

- Sven Rautenberg

--
"Habe den Mut, dich deines eigenen Verstandes zu bedienen!" (Immanuel Kant)