[PHP] Nur für eingeloggte User

Flatscho

Ensign
Registriert
Sep. 2002
Beiträge
197
Hi, ich habe einen Bereich auf meiner PHP-Homepage in dem man sich einloggen kann. Die Idee hierbei ist ja, dass ich in einer User-Tabelle Loginname und Passwort speichere und wenn diese beim "Einloggen" passen, dann z.B. eine Session-Variable $eingeloggt auf true gesetzt wird.

Wie kann ich jetzt 100% verhindern, dass nicht, wenn jemand in der Adresszeile im Browser diese Variable auf true setzt er schon Text auf der Homepage sieht, der eigentlich nur für eingeloggte lesbar ist. Mir fällt dazu nur ein, diese Variable möglichst nicht sprechend zu benennen, weil von sich aus kommt ja niemand an die Variablennamen, aber gibt es vielleicht noch einen sichereren Weg?
 
du könntest Username mit Passwort kodieren und diesen Wert in der URL übergeben, somit können ohnehin nur Benutzer, die sich bereits einmal richtig eingeloggt haben, sich über diesen Weg einloggen

besser und für solche Fälle prädestiniert sind natürlich Cookies oder Sessions - weiterführende Informationen findest du zB hier
 
also wnen du mit der varibale $_cookie[eingeloggt] abfragst ob das cookie existiert, dann kann man das net über die adressleiste machen.

oder eben mit $_session[eingeloggt] glaube ich, falls du mit sessions arbeitest.
 
na bei Cookies bräuchtest die Variable in der URL ja auch nicht mehr ...

verschlüsseln von User und Pwd:

PHP:
<?php
$user = "Hans";
$pwd = "Wurst";

$schluessel = md5 ( $user.$pwd );

?>

die Variabel $schluessel kannst du nun in der URL verwenden

den Schlüssel könntest du für alle User in einer Liste speichern
um zu prüfen, ob der Schlüssel passt, muss dann nur noch die Liste nach dem Schlüssel durchsucht werden
 
Zuletzt bearbeitet:
Ok, nochmal zu Deinem zweiten Vorschlag::
oder eben mit $_session[eingeloggt] glaube ich, falls du mit sessions arbeitest.

z.Z. mache ich das mit Hilfe von Sessionvariablen, also ich überprüfe das Passwort an Hand des Logins, wenn das stimmt, setze ich $eingeloggt = true und registriere die Variable in der Session, so übergebe ich dieses "true" dann von Seite zu Seite innerhalb meiner Site.

Wenn jetzt aber ein nicht Eingeloggter ".../blabla/index.php?eingeloggt=true" über die Adresszeile setzt, ist man ja sozusagen "eingeloggt"! Also das ist mein Prob von oben :rolleyes: und ich versteh net ganz wie das mit $_session[eingeloggt] anders funzt. Wäre nett, wenn Du nochmal Aufklärungsarbeit leisten könntest ;-) thx
 
Informationen über Sessions findest du hier

wenn noch Fragen offen sind, hier stellen ;)
 
Moin

Mal ne Frage (was auch sonst?): Meine hp liegt auf dem Server eines Kollegen. Dieser bastelt öfters mal an seiner Serverconfig und nun tritt folgendes Problem auf: An sämtliche (auch externe) Links setzt der Server automatisch die session_id, was natürlich nicht unbedingt wünschenswert ist. Cookies möchte ich nicht verwenden, wie kann jedoch das Anhängen der id (als user, nicht root) verhindert werden?

gr
 
Original erstellt von Flatscho
Ok, nochmal zu Deinem zweiten Vorschlag::


z.Z. mache ich das mit Hilfe von Sessionvariablen, also ich überprüfe das Passwort an Hand des Logins, wenn das stimmt, setze ich $eingeloggt = true und registriere die Variable in der Session, so übergebe ich dieses "true" dann von Seite zu Seite innerhalb meiner Site.

Wenn jetzt aber ein nicht Eingeloggter ".../blabla/index.php?eingeloggt=true" über die Adresszeile setzt, ist man ja sozusagen "eingeloggt"! Also das ist mein Prob von oben :rolleyes: und ich versteh net ganz wie das mit $_session[eingeloggt] anders funzt. Wäre nett, wenn Du nochmal Aufklärungsarbeit leisten könntest ;-) thx
du darfst eben net überprüfen ob $eingeloggt true ist, sondern du musst prüfen ob $_session[eingeloggt] true ist. dann funzt das auch net mit dem in die adressleiste eingeben.
 
Zurück
Oben