ubuntuusers.de

Benutzerverwaltung unter PHP

Status: Ungelöst | Ubuntu-Version: Kubuntu 13.10 (Saucy Salamander)
Antworten |

Salamander76

Anmeldungsdatum:
14. März 2014

Beiträge: 205

Hi @all,

ich möchte mit HTML, Javascript und PHP eine Webanwendung entwickeln. Beginn ist eine HTML-Seite mit Loginfunktion, d.h. dort wird der Benutzer nach Benutzername und PAsswort gefragt. Per Submitbutton soll es dann mit einem Post weitergehen. Alles danach soll dann in Abhängigkeit vom Benutzer aufgebaut werden (z.B. eine Willkommensseite, die auf den Benutzer zugeschnitten ist).

Ich hatte mir das vom Grundsatz so vorgestellt, dass es nach dem Post auf eine PHP-Seite geht, die zuerst abgleicht, ob Benutzername und Passwort mit einer mySQL-DB abgleicht. Passen die Anmeldedaten, dann startet PHP eine SESSION und leitet auf die Seite main.html weiter, ansonsten geht es zurück zur Anmeldeseite.

Nun frage ich mich jedoch wie ich z.B. ausschließen kann, dass ein Benutzer direkt main.html oder andere "dahinterliegende" Seiten aufruft. Bzw. wie ich es realisieren kann, dass bei jedem Aufruf geprüft ist, dass ein autorisierter Benutzer dahintersteht?

stfischr Team-Icon

Avatar von stfischr

Anmeldungsdatum:
1. März 2007

Beiträge: 19197

Hi.

Du baust einfach in jede Seite ein Script ein, welches den User (bzw seine Session) überprüft. Hat sich der User nicht authentifiziert, bekommt er eine "Zugriff verweigert" Message.

BTW gibt es für so ziemlich jeden Anwendungsfall schon fertige CMS mit ausgefeiltem Rechtesystem, deine Fragen lassen mich vermuten, dass du damit besser (sicherer) fährst. Für Lernzwecke ist das natürlich was Anderes.

ubik

Anmeldungsdatum:
10. April 2009

Beiträge: 891

Wie bereits stfischr geschrieben hat.

Du machst am Anfang jeder Datei eine if-Abfrage, ob die Session gesetzt ist und ob die Session-Daten stimmen.

if(isset($_SESSION['Benutzername']) && isset($_SESSION['Passwort'] && $_SESSION['Benutzername'] == 'MeinBenutzername' && $_SESSION['Passwort'] == 'Meinpasswort')
{
  // Inhalt der Seite
}
else
{
  // Redirect zum Login
}

Wenn du Cookies benutzt, musst du den Cookie in die Variablen $_SESSION['Benutzer'] und $_SESSION['Passwort'] schreiben.

Weiß nicht, ob das so richtig war, habe schon lange nicht mehr in PHP programmiert:

if(isset($_COOKIE['Benutzername'])) $_SESSION['Benutzername'] = $_COOKIE['Benutzername'];
if(isset($_COOKIE['Passwort'])) $_SESSION['Passwort'] = $_COOKIE['Passwort'];

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Ein Framework verwenden, wenn es klein bleibt, reicht auch Silex.

Antworten |