PHP Session - Zugriff auf bestimmte Seiten.

shelly

Grünschnabel
Hey ho,

ich nutze zurzeit diese Codes für meinen Internen Bereich:

PHP:
<?php
//prüfen, ob die session "logged" FALSE ist
if($_SESSION['logged'] == FALSE)
{
//wenn FALSE, dann zum login-formular weiterleiten
header('location: index.php');
exit();
}
?>

PHP:
<?php
session_start();

include_once('config.inc.php');
include_once('connect.inc.php');

// Sind alle Fehler ausgefüllt?
if(empty($_POST['u_name']) || empty($_POST['u_pass']))
{
//wenn sie nicht ausgefüllt wurden
echo 'Input not valid!';
exit();
}
//wenn sie ausgefüllt wurden
else
{
//SQL Abfrage
$sql = "SELECT u_id,
u_name,
u_pass
FROM u_users
WHERE u_name = '".mysql_real_escape_string($_POST['u_name'])."'
AND u_pass = '".md5($_POST['u_pass'])."'
";

$result = mysql_query($sql) or die(mysql_error());

//prüfung, ob genau eine der spalten mit der eingabe überein stimmt
if(mysql_num_rows($result) != 1)
{
//wenn nicht übereinstimmt
echo 'Login failed<br>';
echo "<a href ='index.php'>Go Back</a>";
exit();
}
//wenn übereinstimmt
else
{
//eine session "logged" auf TRUE setzen
//eine session mit dem usernamen erstellen
$_SESSION['logged'] = TRUE;
$_SESSION['u_name'] = $_POST['u_name'];

//auf die geschützte datei weiterleiten
header('location: intern.php');
exit();
}
}
?>

In der MySQL Tabelle habe ich bereits eine Spalte eingefügt mit verschiedenen Gruppen für die User.

Jetzt möchte ich gerne, dass z.B. Gruppe1 nur auf Seite1 und Seite2 kann. Und Gruppe2 auf Seite1,Seite2 und Seite3 kann.

Leider habe ich nicht genug PHP Kenntnisse um dies einzubauen.
Wäre cool, wenn jemand von euch ne Idee hat ^_^

MfG
 
Zuletzt bearbeitet:
1. in die
PHP:
            $sql = "SELECT     u_id,
                            u_name,
                            u_pass,
DEINEGRUPPE 
                    FROM     u_users
                    WHERE     u_name = '".mysql_real_escape_string($_POST['u_name'])."'
                    AND     u_pass = '".md5($_POST['u_pass'])."'
                    ";
            
            $result = mysql_query($sql) or die(mysql_error());
            
            //prüfung, ob genau eine der spalten mit der eingabe überein stimmt
            if(mysql_num_rows($result) != 1)
                {
                //wenn nicht übereinstimmt
                echo 'Login failed<br>';
                echo "<a href ='index.php'>Go Back</a>";
                exit();
                }
                    //wenn übereinstimmt
                    else
                        {
                        //eine session "logged" auf TRUE setzen
                        //eine session mit dem usernamen erstellen
                        $_SESSION['logged'] = TRUE;
                        $_SESSION['u_name'] = $_POST['u_name'];
$_SESSION['gruppe'] = $_POST['DEINEGRUPPE'];
                        
                        //auf die geschützte datei weiterleiten
                        header('location: intern.php');
                        exit();
                        }
            }
Das ganze wird dann für jede Seite etc. erweitert... mein Tip benutze wenn du "null" Plan hast etwas vorgefertigtes.. da in deinen Code noch nicht mal nach "htmlentities" gesucht wird.
Falls Du doch hasst das ganze selbst "angreiffen" willst mach dich da mal schlau es gibt jedemenge Links Tips etc. zu den Thema
und dann erst das unterscheiden anfangen. bzw würde so nee kleine Blogsoftware ohne groß Datenbank wie z.B. Gpeasy (google) auch schon reichen.. kommt sogar ganz ohne Datenbank aus.

mfg Spikaner
 
Hallo,

Ich würde es so machen.... Der Code muss dann auf jede Seite.
PHP:
$_SESSION['gruppe'] = "gruppe1";

// Festlegen, welche Gruppen zugang haben
$zugang_fuer_diese_seite = array('gruppe1', 'gruppe5');

if (!in_array($_SESSION['gruppe'], $zugang_fuer_diese_seite))
{
    die("Kein Zugang");
    exit;
}
 

Neue Beiträge

Zurück