Bestimmte User haben zugriff auf Seiten

themonk

Erfahrenes Mitglied
Hallo
ich habe ein Login mit sessions und wollte auf bestimmten Seiten noch schützen durch Rang abfrage dazu habe ich in der datenbank eine Zeile Mode wo dann die Zugriffe mit Zahlen bestimmt wird (1,2,3 usw)nun habe ich auf einigen Seiten die geschütz sind dies
PHP:
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
  header ("Location: formular.php");
}
?>
habe ich wollte auch noch das wenn man nicht die Nr. 4 in Mode hat auf die Datei Formular um geleitet wird wie kann man das machen? Oder noch besser das wenn man nicht die Nr4 oder höher hat unten auf der Seite steht Sie haben keine Rechte habs so ähnlich Probiert
PHP:
<? if($_SESSION["user_HTML"]>='4'){
 ?>

<a href="hallo"><font size=1>&raquo;Admin</font></a>
<?}?>
aber dann kommt da drunter keine Fehler Meldung und die Sessions die hier gebruacht werden sind manchmal nicht mehr da wenn man vorher auf andern Seiten war wo die nicht gebraucht wurden

hoffentlich wisst ihr da Weiter
 
PHP:
session_start();
if($_SESSION['user_html'] >= 4) {
header ("Location: formular.php")
}

Sollte eigentlich ganz einfach gehen...ich versteh aber deinen letzten Absatz nicht ganz.

Und dass die Session nicht mehr existiert, ist auch logisch - du musst sie auf JEDER Seite starten, wenn sie einmal beendet (sprich: nicht gestartet) wird, ist sie auch beendet.
 
honeyboy hat gesagt.:
ich versteh aber deinen letzten Absatz nicht ganz.

Und dass die Session nicht mehr existiert, ist auch logisch - du musst sie auf JEDER Seite starten, wenn sie einmal beendet (sprich: nicht gestartet) wird, ist sie auch beendet.
Zum Letzren Absatz damit meinte ich das wenn ich das eingeben
PHP:
<? if($_SESSION["user_Mode"]>='4'){ 
?> 

<a href="hallo"><font size=1>&raquo;Admin</font></a> 
<?}?>
das er dann den link Admin nur anzeigt wenn 4 ist und wenn nicht steht da nichts aber ich wollte da genre dann eine fehlerm eldung haben wenn Mode unter 4 ist


Kann man den nixht eine datei immer Includen die dann die sessions bereit hält und das sie dann bei bedarf von dort aus ausgelesen werden z.B. ich include eine datei Sess.php wenn ich jetzt eingeloggt bin wird dort die Sess gespeichert und wenn ich jetzt auf der seite rum Klick und auf einmal kommt eine seite z.B. Profil das sie dann die ensprechenden sachen daraus ließt z.B. Nickname E-Mail also alle sachen die vorher in Sessions gespeicher wurden

das Login habe ich von deisem Tutorial http://www.tutorials.de/tutorials9684.html
 
Klar kann man ne Datei includen - wüsste nicht, was da das Problem ist...

und das mit der Fehlermeldung ist wohl das einfachste:
PHP:
<? if($_SESSION["user_Mode"]>='4'){ 
?> 

<a href="hallo"><font size=1>&raquo;Admin</font></a> 
<? }else { ?> 
<font size=1>Stupid Idiot - you don't have the permission to access this area!</font>
<?  } ?>

Ne Babyleichte if-else-Anweisung...Tja, ich weiß ja, warum ich null von Past&Copy halte :rolleyes:
 
Genauso, wie alle anderen Datein am Anfang auch aussehen - session starten, Variablen festlegen/auslegen/... usw. Du könntest im Grunde auch einfach auf jede Seite den Session-Schmarrn schreiben - kommt aufs gleiche raus...


Herr Gott, Strg + c und Strg + V muss Billy in Longhorn unbedingt raushauen - wenigstens eine kluge Entscheidung für Windows muss es doch geben...
 
meinst du das
PHP:
  $_SESSION["user_id"] = $data["id"];
  $_SESSION["user_nickname"] = $data["Nickname"];
  $_SESSION["user_mail"] = $data["EMail"];
  $_SESSION["user_Mode"] = $data["Mode"];

die geschützen Seiten sehen nur so aus
Code:
<?php
include ("checkuser.php");
?>
<html>
<head>
  <title>Interne Seite</title>
</head>
<body>
  BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>
  Nickname: <?php echo $_SESSION["user_nickname"]; ?><br>
  E-Mail: <?php echo $_SESSION["user_mail"]; ?><br>
  Mode: <?php echo $_SESSION["user_Mode"]; ?>
<a href="test.php">Klick</a>
</body>
</HTML>
und die checkuser ist das <?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
header ("Location: formular.php");
}
?>
 
Original geschrieben von honeyboy
tja, dann musst du auf jeder Seite die usercheck.php includen...
aha also müsste ide seite die Includet wird so aussehen
PHP:
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
?>
und wie gebe ich jetzt noch andere Daten Weiter wie E-Mail oder name
so? if (!isset ($_SESSION["user_id"]) ($_SESSION["user_e-mail"]))
 
Das if ist lediglich eine Abfrage, ob ein Zustand zutrifft. Sessionvariablen kannst du ganz normal mit $_SESSION['name'] übergeben, was anderes macht "dein" Script ja auch nicht, nur dass es prüft, ob die Variable gesetzt ist oder nicht :rolleyes: Schonmal PHP-Basics durchgemacht?
 
Zurück