Loginscript mit 2 Rechten

DJmension

Mitglied
Hallo ich habe folgendes script zur Hand ich füge einfach erstmal alles hier ein als Code und komme hinterher zu meinem Problem.

eintragen.html ( Formular )
Code:
<form action="eintragen.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="passwort"><br>

Passwort wiederholen:<br>
<input type="password" size="24" maxlength="50"
name="passwort2"><br>

Benutzergruppe:<br>
<select size="2" name="gruppe">
	<option selected value="user">user</option>
	<option value="admin">admin</option>
	</select><br>

<input type="submit" value="Abschicken">
</form>

eintragen.php
Code:
<?php 
include("dbconnect.php");

$username = $_POST["username"]; 
$passwort = $_POST["passwort"]; 
$passwort2 = $_POST["passwort2"];
$gruppe = $_POST["gruppe"]; 

if($passwort != $passwort2 OR $username == "" OR $passwort == "") 
    { 
    echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"eintragen.html\">Zurück</a>"; 
    exit; 
    } 
$passwort = md5($passwort); 

$result = mysql_query("SELECT id FROM login_s20 WHERE username LIKE '$username'"); 
$menge = mysql_num_rows($result); 

if($menge == 0) 
    { 
    $eintrag = "INSERT INTO login_s20 (username, passwort, gruppe) VALUES ('$username', '$passwort', '$gruppe')"; 
    $eintragen = mysql_query($eintrag); 

    if($eintragen == true) 
        { 
        echo "Benutzername <b>$username</b> wurde erstellt. <a href=\"login.html\">Login</a>"; 
        } 
    else 
        { 
        echo "Fehler beim Speichern des Benutzernames. <a href=\"eintragen.html\">Zurück</a>"; 
        } 


    } 

else 
    { 
    echo "Benutzername schon vorhanden. <a href=\"eintragen.html\">Zurück</a>"; 
    } 
?>

login.html (Formular)
Code:
<form action="login.php" method="post">
Dein Username:<br>
<input type="text" size="24" maxlength="50"
name="username"><br><br>

Dein Passwort:<br>
<input type="password" size="24" maxlength="50"
name="password"><br>

<input type="submit" value="Login">
</form>

login.php
Code:
<?php 
session_start(); 
?> 

<?php 
include("dbconnect.php");

$username = $_POST["username"]; 
$passwort = md5($_POST["password"]); 

$abfrage = "SELECT username, passwort, gruppe FROM login_s20 WHERE username LIKE '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 
$gruppe = $row->gruppe;
if($row->passwort == $passwort) 
    { 
    $_SESSION["username"] = $username; 
    echo "Login erfolgreich. <br> <a href=\"goldie.php?Rechte=$gruppe\">Geschützer Bereich</a>"; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
    } 

?>

goldie.php
Code:
<?php 
session_start(); 
?> 

<?php 
if(!isset($_SESSION["username"])) 
   { 
   echo "Bitte erst <a href=\"login.html\">einloggen"; 
   exit; 
   } 
?>

<!------ Passwort geschützter bereich HTML & PHP Code ------>


So jetzt zu meinem Problem

im eintragen.html habe ich die Roubrick Benutzergruppe hinzugefügt, einmal user und einmal admin, diese möchte ich später dazu benutzen Links anzeigen zu lassen oder eben nicht !

im eintragen.php habe ich diese zusätzliche Roubrick auch eingefügt.Die Werte werden ganz normal als POST übergeben.

im login.html alles klar keine fragen alles so wie es war.

im login.php habe ich jetzt in der DB abfrage die Spalte gruppe (DB inhallt user & admin) eingefügt, und dann die $rowgrppe in die variable $gruppe übergeben.

Bei der Suche nach einer guten und einfachen lösung habe ich das verwendet was ich vor kurzem hier bei euch lernen durfte , die gute alte Get übergabe. So fein so gut , funktioniert auch . Aber ist nicht die Richtige lösung. Da auf der geschützten Seite
goldies.php Datenbank einträge hinzugefügt und auch geändert werden , dadurch springt mann natürlich durch mehrere Seiten, so das es bei einigen Seiten Passiert das diese Get übergabe verloren geht .

Wie bekomme ich den DB inhallt admin / user dauerhafft in eine Variable die auf jeder meiner links aktiv ist um sie dann nutzen zu können.
 
In der login.php einfach eine neue Session-Variable erzeugen mit den rechten.

$_SESSION['rechte'] = $rechte;

if($_SESSION['rechte'] > 0) { "Hallo Admin"; } else { echo 'Hallo User';}
 
Ich merke du kennst dich gut aus , aber was sagst du dazu das ich mich eben noch nicht so gut auskenne , ich bin nur ein kleiner anfänger, wie hat das dann auszusehen, einfach das ding rein kopieren , ersetzt es dann nicht das andere ?
 
PHP:
<?php 
session_start();
include("dbconnect.php");

$username = $_POST["username"]; 
$passwort = md5($_POST["password"]); 

$abfrage = "SELECT username, passwort, gruppe FROM login_s20 WHERE username = '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 
$gruppe = $row->gruppe;
if($row->passwort == $passwort) 
    { 
    $_SESSION["username"] = $username;
    $_SESSION['rechte'] = $gruppe;
    echo "Login erfolgreich. <br> <a href=\"goldie.php\">Geschützer Bereich</a>"; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
    } 

?>

PHP:
// goldie.php

<?php 
session_start(); 
?> 

<?php 
if(!isset($_SESSION["username"])) 
   { 
   echo "Bitte erst <a href=\"login.html\">einloggen"; 
   exit; 
   } 

if(isset($_SESSION['username']) && $_SESSION['rechte'] > 0) {

// Ausgabe geschützter bereich :D

}
?>
 
Zuletzt bearbeitet:
jetzt kommt
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\GoldiesDB\Datenbank\MG\S20\goldie.php on line 200


lol lach mich weg bin ich blööööd das } kommt ins PHP im HTML ist es klar das nichts geht
Ich bin davon überzeugt das es jetzt gehen wird
 
Zuletzt bearbeitet:
bekomm nen Heulkrampf ...... die Fehlermeldung ist weck , dafür kommt jetzt eine komplett leere seite , mit nix drin,

Habe das problem beseitigt , und habe das von weiter oben mit dem hallo Admin und Hallo User mal rein getan , eigenartig ! ich bin egal mit was ich mich anmelde immer ein Hallo User , da wird mir klar warum ich die komplette seite nicht sehen konnte , die ganze Seite war ein geklammert , dabei will ich ja nur einzelne links der seite nur dem Admin zugänglich machen. Dabei wird jetzt rein garnichts unterschieden , das gibts doch nicht !

was bedeutet eigentlich die 0 im Code ?

if(isset($_SESSION['username']) && $_SESSION['rechte'] > 0) {
 
Zuletzt bearbeitet:
Zurück