Andreas Korthaus: Session Login

Beitrag lesen

Hallo!

Ich habe ein Problem mit folgendem Tutorial:
http://www.webmaster-resource.de/tricks/php/login-mit-sessions.php

Der Code ist sehr veraltet. Ich würde ihn nicht benutzen.

Also den Login usw. hab ich schon gemacht, nur habe ich ein Problem, wenn ich weitere Inhalte schützen will.

Der login wie er da steht ist unwichtig. Du kannst Dich auch per

http://...geheim.php?SESSION_passwort=12345 Zugang zum internen Bereich verschaffen, ohne dich eingeloggt zu haben. Das ist zwar erstmal nicht sooo schlimm, aber man weiß ja nie was die Leute an solchem Code noch so "verbessern".

Siehe hierzu: http://de3.php.net/manual/de/security.registerglobals.php

Egal wie die Einstellungen für register-globals bei Dir sind, ich würde immer so schreiben als seien sie abgeschaltet, denn irgendwann wird das überall abgeschaltet, und dann funktionieren die Scripte die sich darauf verlassen nicht mehr, und nebenbei ist das sicherheitstechnisch sicher kein Nachteil.

Um Daten in die Session zu schreiben verwende nach session_start()

$_SESSION['name'] = 'wert';

oder

$_SESSION['name'] = $variable;

Auf diesen Wert kannst Du nach session_start() jederzeit z.B. über

echo $_SESSION['name'];

zugreifen. session_register() wird nicht mehr benötigt.

Für Daten aus Formularen verwende entweder $_GET['name'], oder $_POST['name'] (letzteres wäre bei Deinem Formular richtig), für URL-Parameter (script.php?name=value) verwende $_GET['name'].

"Diese Session-Variable $SESSION_Passwort steht Ihnen auch, nachdem der Benutzer auf eine weitere Seite des geschützten Bereichs gesurft ist, zur Verfügung. Sie können also die weiteren Seiten ganz einfach schützen, in dem Sie deren Inhalt mit dem folgenden Grundgerüst umgeben. Hat sich der Besucher vorher erfolgreich eingeloggt, wird der Inhalt angezeigt, ansonsten die Meldung er solle sich einloggen."

Das trifft heute nicht mehr unbedingt zu, daher verwende den $_SESSION Array.

Wenn ich jetzt eine komplette PHP-Seite mit HTML-codes usw. mit dem Grundgerüst umgebe, kommt folgender Error:

Parse error: parse error, unexpected '<' in C:\Dateipfad\geheim.php on line 29

Tja, da hast Du irgendeinen Tippfehler, vielleicht davor irgendwo ein ; oder ein " vergessen, oder ein < an falscher Stelle, oder <?php nicht ganz richtig....

Kann man das irgendwie so machen, dass man diese PHP-Seite trotzdem irgendwie schützen kann (das wenn man den Dateinamen im Browser eingibt, der Satz "Sie sind nicht berechtigt diese Seite anzuschauen!" kommt)

Dem Script nach sollte genau dieser Satz kommen. Zumindest wenn Du Deinen Parse-Error behoben hast.

Ich arbeite nämlich gerade an einem Mini-CMS und da muss ich natürlich den Admin-Bereich schützen.

kling sinnvoll ;-)

Du könntest den Schutz auch mit einer .htaccess über mod_auth des Apachen (ich gehe einfach mal davon aus...) realisieren:

http://aktuell.de.selfhtml.org/artikel/server/htaccess/index.htm
http://httpd.apache.org/docs-2.0/howto/auth.html

Grüße
Andreas

--
SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/