Riesen Fragezeichen bezüglich Login und Sessions

  • Themenstarter Themenstarter Kira2112
  • Beginndatum Beginndatum
Ja dann ist doch alles in Butter .. dann kannste ja so vorgehen wie ich oder Acris das kommt aufs selbe raus ...
Bei mir musste da wo foo(bar) stehe den Content für die Mütter aufbauen und entsprechend bei bar(foo) den Kram für Eltern ...
 
Ich hab bloß immer noch keine ahnung, wo ich die scripte einbinden soll....



Und wie sieht das mit den frames aus?
 
Das ist doch ganz einfach zu lösen.Ich mach dir mal einen Zusammenfassung wie man das aufbauen könnte.


1. Login daten werden geprüft und Gruppe wird aus der Tabelle gelesen.
(In die Session variable kommen nun die daten der Grupper und die des Usere rein.)

2.Seiten aufruf bei jeder geschützen seite bindest du nun mittels include eine eine prüf seite ein die Session abfragt ob man eingelogt ist und welcher Gruppe man angehört.

Danach erfolgt die eigentlich seiten anfrage an die Db mit der Where gruppe='eltern' and seite 4;
So wenn du nun alle Daten hast brauchste die nur noch angeben oder per include intern verlinken.

Schon bekommt jeder nur die seiten angezeigt die seiner Gruppe entsprechen.

Mfg Splasch
 
@ splasch

mein einer Ausbilder hat mir irgendwas von ner Tabelle in der Datenbank für die Sessions erzählt....is doch aber garnet notwenidg, oder?

Ich weiß nicht, so langsam hab ich echt die Nase voll, je mehr ich von diesem ganzen mist höre, desto mehr fragezeichen tauchen auf.....meine "Ausbilder" hier sind auch für n Ar*** und ich muss diesen ganzen Mist so langsam ma fertig kriegen.

Weiß einfach net mehr weiter....Und "ganz einfach" is hier garnix mehr für mich
 
mein einer Ausbilder hat mir irgendwas von ner Tabelle in der Datenbank für die Sessions erzählt....is doch aber garnet notwenidg, oder?

Also für die Session selbst brauchst du keine Tabelle.

Die Datenbank (Tabellen) werden nur benötig um Dynamischen inhalt zu speichern als Inhalte die sich änderen wie bei einen Gästebuch eintrag.
Daher kann man mit einer db relative leicht Informationen dauerhaft speichern die man voher noch nicht wissen kann so wie die Login daten und das Password bwz die Gruppen angehörigkeit.

Die Session selbst ist nur dazu da um Variablen ohne großen aufwand von einer Seite zur nächsten seite mitzuübernehmen können.
Denn wenn du in Php eine Variable erstellst ist diese ja auf der nächsten seite nicht mehr vorhanden daher setzt man eine Session variable ein um die information weiter zu transportieren zu können.

Also die Session Variable dient in deinen script nur dazu um zu prüfen ob man schon eingelogt ist und welche berechtigung man hat. Anderenfalls müsste man sich ja bei jeder neuen Seiten aufruf neu einlogen.

Überblick.

Login -> Db abfrage daten vergleichen ist pw und name ok dann Session erzeugen und die information aus der Db abfrage den Session variablen übergeben (Name,berechtigung)

Nun haste 2 Session Variablen mit 2 werten einmal mit dem Namen (der sich eingelogt hat Wert könnte sein klaus) und einmal mit den Berechtigungen (die berechtigung des sich eingelogt hat Wert könnte sein Eltern).

So dann erstellst du eine neu php seite.Die oben die per include die Prüfung einfügt als eine php datei die Prüft ob die Session variablen die voher gesetzt worden sind auch vorhanden sind fals jemand versucht ohne login auf die Seite zugreifen möchte.

Wenn die prüfung ok ist kann die seite angezeigt werden.
Damit nun das php script weiß welche seite angezeigt werden soll.

Gibst nun mehre möglichkeiten das zu Lösen .

1. Möglichkeit man erstellt eine Tabelle in der Db mit den Seiten links also mit den Daten und dere Verzeichniss und in der 2 spalte die brechtigungsart.

Die Tabelle könnte dann so aussehen.

Spalten namen: Seite ,Berechtigung
Spalten werte: kurs.php, Eltern
Spalten werte einzahlen.php, Kinder

Usw.

Da die Tabelle nun dan vorhanden ist muß diese natürlich auch über den php script abgefragt werden. mit einen Sql befehlt der so lauten könnte
SELECT Seite FROM Tabelle WHERE Berechtigung=$_SESSION['Berechtigung'];
Hier bei steht $_SESSION['Berechtigung'] für die session veriable die den berechtigung wert enthält.

Erklärung zum Select befehl der Lautet: Zeige mir alle Seiten die die Brechtigung Eltern haben oder bwz eben der Wert der in der Session Berechtigungs Variable steht.

So wenn du nun die Seiten links hast brauchste die Links nur noch auszugeben.
Schon werden nur die Links angezeigt zu denen man auch die Berechtigungen hat.

Mfg Splasch
 
Ok hier nochmal wie man das aufbauen kann:

login.php
PHP:
session_start(); 

// prüfen ob der Benutzer existiert und sein Passwort stimmt 

$pass = mysql_real_escape_string($_POST['pass']); 
$user = mysql_real_escape_string($_POST['user']); 

$sql = "SELECT benutzer, passwort, gruppe FROM tbl_users  
WHERE benutzer = '$user' AND passwort = '$pass' LIMIT 1;"; 

$res = mysql_query($sql, $db); 
$num = mysql_num_rows($res); 
$row = mysql_fetch_assoc($res); 

// Wenn wir ein Ergebniss aus der DB haben dann setzen wir die Session Variablen!
if ($num > 0) { 
$_SESSION['group'] = $row['gruppe']; 
$_SESSION['username'] = $row['username']; 
header("Location: start.php");  // Das ist deine Datei in der dann die Unterscheidung stattfinden wird!
} else {
header("Location: index.php"); // Da ist dein Login Form drauf
}

start.php
PHP:
// Wenn unsere SESSION Variablen gesetz sind!
if (isset($_SESSION['group'] and isset($_SESSION['username'])){
// Nun prüfen wir welcher Gruppe der eingeloggte Benutzer angehört
if ($_SESSION['group'] == "Eltern"){
// Hier schreibts du dann deinen Code hin der nur für die Eltern ist!
}elseif ($_SESSION['group'] == "Mutti"){
// Hier schreibst du dann deinen Code hin der nur für die Muttis ist!
}else{
echo "Gruppe unbekannt!";
}
}else{
// Ansonsten wieder auf die Seite mit dem Login Form umleiten!
header("Location: index.php");
}

index.php
HTML:
<form id="form1" name="form1" method="post" action="login.php">
          <label>Benutzername
          <input type="text" name="user" />
          </label>
                <br />
                <label>Passwort
                <input type="text" name="pass" />
                </label>
                <p>
                  <label>
                  <input type="submit" name="Submit" value="Senden" />
                  </label>
          </p>
        </form>

Hoffe das ist nun verständlich wie man sowas aufbauen sollte!
 
Wow, wahnsinn....Danke erstma im Vorraus für die ganzen scripts, werd mich gleich hinsetzen und es ausprobieren....

Meld mich auf jeden fall später nochma.....
(Denn falls es klappt hab ich gleich den nächsten Hilferuf)


NÄCHSTE Frage: klappt das auch, wenn ich 2 tbl´s für meine user hab?
 
Zuletzt bearbeitet von einem Moderator:
Warum 2 Tabellen für die Benutzer?
Wahrscheinlich hast du eine für die Eltern und eine für die Mütter?
Wenn dem so ist ist das völlig unnötig! Füge einfach der ersten Tabelle eine Spalte Gruppe hinzu da trägst du dann entweder "Mutti" oder "Eltern" ein.
Dann hast du genau das was du dafür brauchst ...
LG
Bebo
 
Zurück