• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Adminbereich (Problem)

Marvin231

Neues Mitglied
Hi, ich hab eine seite, die abfragen soll welch rechte der Besucher hat, Dazu hab ich eine Datenbank angelegt. Normale Benutzer haben die Rechte 2 und Admins die Rechte 1. Dazu hab ich jetzt ein PHP-Code:
PHP:
<?php$con = mysqli_connect("localhost", "***", "***")        or die ("Fehler im System"); mysqli_select_db($con, "***")        or die ("Verbindung zur Datenbank war nicht möglich..."); $res = mysqli_query($con, "select * from login"); $num = mysqli_num_rows($res); while ($dsatz = mysqli_fetch_assoc($res)){          $rechte = $dsatz["rechte"];}?> <!DOCTYPE html><html lang="en">    <head>        <meta charset="utf-8" />        <title></title>    </head>    <body>        <?php            if ($rechte == 1) {                echo "Hallo admin";            } else {                echo "Zugriff verweigert";                            }        ?>    </body></html> <?phpmysqli_close($con);?>
Ich hab versucht mit einer if-abfrage zu bestimmen, wenn man das Recht 1 hat, das "Hallo admin" ausgegeben werden soll und wenn nicht, also das Recht 2, dann soll Zugriff verweigert ausgegeben werden. Ich hab dann zwei accounts angelegt mit einmal Recht 1 und einmal Recht 1. Mein Problem ist jetzt, dass auch der Benutzer mit Recht 1, "Zugriff verweigert", angezeigt bekommt. Aber eigentlich sollte er "Hallo admin" angezeigt bekommen. Kann mir jemand sagen, was im Code falsch ist? Viele Grüße Marvin231
 
Du liest mit diesem Statement

Code:
select * from login

alle Datensätze aus, unabhängig davon welcher Nutzer gerade angemeldet ist.

Die Frage ist also: wie stellst Du fest, welcher Nutzer die Seite gerade aufruft?
 
<?php
session_start();
if(isset($_SESSION["username"])) {
$con = mysqli_connect("localhost", "***", "***")
or die ("Fehler im System");

mysqli_select_db($con, "***")
or die ("Verbindung zur Datenbank war nicht möglich...");

$res = mysqli_query($con, "select * from login");

$num = mysqli_num_rows($res);

while ($dsatz = mysqli_fetch_assoc($res))
{
$rechte = $dsatz["rechte"];
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<?php
if ($rechte == 1) {
echo "Hallo admin";
} else {
echo "Zugriff verweigert";
}
?>
</body>
</html>

<?php
mysqli_close($con);
} else {
?>
Bitte erst einloggen, <a href="index.php">hier</a>.
<?php
}
?>

Was muss ich jetzt ändern, dass die "rechte" von dem Benutzer abgefragt werden, der auf der Seite ist.
 
Nochmal der Hinweis:
Wie melden sich die Nutzer bei dir denn an wenn sie Administratoren sind? Richtig, Du brauchst ein Loginscript. Das was Du derzeit hast ist weit davon entfernt. Schau dich einfach mal danach um, auch hier im Forum gibt es viele Hinweise und Links zu Vorlagen.

Und verwende Bitte Code-Tags wenn Du Quellcode im Forum zeigst.
 
Nochmal der Hinweis:
Wie melden sich die Nutzer bei dir denn an wenn sie Administratoren sind? Richtig, Du brauchst ein Loginscript. Das was Du derzeit hast ist weit davon entfernt. Schau dich einfach mal danach um, auch hier im Forum gibt es viele Hinweise und Links zu Vorlagen.

Und verwende Bitte Code-Tags wenn Du Quellcode im Forum zeigst.

PHP:
<?php
session_start();
$verhalten = 0;

if(!isset($_SESSION["username"]) and !isset($_GET["page"])) {
    $verhalten = 0;
}
if($_GET["page"] == "log") {
    /*
    $user = $_POST["user"];
    $passwort = $_POST["passwort"];
    */
    $user = strtolower($_POST["user"]);
    $passwort = md5($_POST["passwort"]);

    $verbindung = mysql_connect("localhost", "***", "***")
                     or die ("Fehler im System");

                     mysql_select_db("***")
                     or die ("Verbindung zur Datenbank war nicht möglich...");

                     $control = 0;
                     $abfrage = "SELECT * FROM login WHERE user = '$user' AND passwort = '$passwort'";
                     $ergebnis = mysql_query($abfrage);
                     while($row = mysql_fetch_object($ergebnis))
                     {
                         $control++;
                     }

    if($control != 0) {
        $_SESSION["username"] = $user;
        $verhalten = 1;
       } else {
        $verhalten = 2;
    }
}
?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>LGR App - Login</title>

        <style>
           /* @media screen and (min-width: 960px) {
                #login {
                background: yellow;
            }
            }
            
            @media screen and (max-width: 960px) {
                #login {
                background: blue;
            }
            }
            
            @media screen and (max-width: 480px) {
                #login {
                background: lime;
                margin-top: 20px;
            }
            }
            
            @media screen and (max-width: 320px) {
                #login {
                background: red;
            }
            }*/
        </style>

        <link rel="stylesheet" type="text/css" href="style.css">
        <?php
           if($verhalten == 1) { 
        ?>
        <meta http-equiv="refresh" content="1; URL=main.php" />
        <?php
           }
        ?>
    </head>
    <body>
        <?php
            if($verhalten == 0) {
        ?>  
        
        <div align="center" id="login">
            <p><img src="images\lgrApp.gif" alt="Picture" height="200px" width="200px"/></p>
        <p>Bitte logge dich ein:</p><br />
        <form method="post" action="index.php?page=log">
                <table>
                    <tr>
                        <td>Benutzername:</td>
                        <td><input type="text" name="user" /></td>
                    </tr>
                    <tr>
                        <td>Passwort:</td>
                        <td><input type="password" name="passwort" /></td>
                    </tr>
                </table>

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

        </form>

        <p><a href="register.php">Jetzt registrieren!</a></p>
        </div>
        <?php      
            }
            if($verhalten == 1) {
                
        ?>  
        Du hast dich erfolgreich eingeloggt und wirst nun weitergeleitet...
        <?php
            }
            if($verhalten == 2) {
                
        ?>
        Du hast dich nicht richtig eingeloggt, <a href="index.php">zurück</a>.
        <?php
            }
        ?> 
</Body>
</html>

Das Login Script hab ich schon.
 
Bei dieser Abfrage
PHP:
$abfrage = "SELECT * FROM login WHERE user = '$user' AND passwort = '$passwort'";
rechnest du mit wievielen Treffern in der DB? Doch wohl nur mit einem, also was soll dann die Schleife? Und wenn du die Daten in dem Moment sowieso am Wickel hast, warum schreibst du den benötigen Wert nicht in die Session, dann brauchst du auf der anderen Seite nicht wieder eine Datenbankabfrage zu starten.
 
Zurück
Oben