Loginsystem

Dann habe ich etwas falsch gemacht bei diesem tutorial http://unix.oppserver.net/php-tut/login-admin.html könnten sie mir bitte helfen was muss ich korrigieren
meine php skripte
admin_self.php
PHP:
<?php
// Verbindung zu MySQL Aufbauen
    @mysql_connect('localhost', 'root', '') OR die(mysql_error());
    mysql_select_db('test') OR die(mysql_error());
     if(isset($_POST['submit']) AND "Speichern" == $_POST['submit']) {
        if(!preg_match('/^\w+$/', trim($_POST['name']))) {
            echo "<p>\n";
            echo "    Bitte benutzen sie einen Name nur aus Alphanumerischen\n";
            echo "    Zeichen (Zahlen und Buchstaben).\n";
            echo "</p>\n";
        } else {
            // ggf. eine Emailadresse überprüfung
            // siehe dazu http://www.php-faq.de/ > Regex

            $sql = "UPDATE
                        users
                    SET
                        Name = '".trim($_POST['name'])."',
                        Email = '".addslashes(trim($_POST['email']))."'
                    WHERE
                        ID = '".$_SESSION['ID']."';";
            // bei Name kein addslashes(), da Name eh
            // nur \w+ sein kann.
            mysql_query($sql) OR die(mysql_error());
            echo "<p>\n";
            echo "    Ihre Daten wurde gespeichert\n";
            echo "</p>\n";
        }
    }
    if(isset($_POST['submit']) AND "Neues Password speichern" == $_POST['submit']) {
        if(trim($_POST['password']) == "") {
            echo "<p class=\"error\">\n";
            echo "    Bitte geben sie ein Password ein, welches ich\n";
            echo "    auch Speichern soll.\n";
            echo "</p>\n";
        } elseif(trim($_POST['password']) != trim($_POST['password2'])) {
            echo "<p class=\"error\">\n";
            echo "    Bitte geben sie 2 gleiche Passwörter ein\n";
            echo "</p>\n";
        } else {
            $sql = "UPDATE
                        users
                    SET
                        Password = MD5('".trim($_POST['password'])."')
                    WHERE
                        ID = '".$_SESSION['ID']."';";
            mysql_query($sql) OR die(mysql_error());
            echo "<p>\n";
            echo "    Das Password wurde gespeichert. Sie brauchen sich nicht\n";
            echo "    neu einloggen.\n";
            echo "</p>\n";
        }
    }
    $sql = "SELECT
                Name,
                Email
            FROM
                users
            WHERE
                ID = '".$_SESSION['ID']."';";
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);

    echo "<form action=\"index.php?section=admin&amp;site=self\" method=\"post\" class=\"formular\">\n";
    echo "    <p>\n";
    echo "        Eigene Daten bearbeiten\n";
    echo "    </p>\n";
    echo "    <ol>\n";
    echo "        <li>\n";
    echo "            <label for=\"name\">Name</label>\n";
    echo "            <input type=\"text\" name=\"name\" id=\"name\" value=\"".$row['Name']."\"/>\n";
    echo "        </li>\n";
    echo "        <li>\n";
    echo "            <label for=\"email\">Emailadresse</label>\n";
    echo "            <input type=\"text\" name=\"email\" id=\"email\" value=\"".$row['Email']."\"/>\n";
    echo "        </li>\n";
    echo "        <li>\n";
    echo "            <input type=\"submit\" name=\"submit\" value=\"Speichern\" />\n";
    echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
    echo "            <input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n";
    echo "        </li>\n";
    echo "    </ol>\n";
    echo "</form>\n";
    echo "<form action=\"index.php?section=admin&amp;site=self\" method=\"post\" class=\"formular\">\n";
    echo "    <p>\n";
    echo "        Neues Password erstellen\n";
    echo "    </p>\n";
    echo "    <ol>\n";
    echo "        <li>\n";
    echo "            <label for=\"password\">Neues Password</label>\n";
    echo "            <input type=\"password\" name=\"password\" id=\"password\" />\n";
    echo "        </li>\n";
    echo "        <li>\n";
    echo "            <label for=\"password2\">Bestätigung</label>\n";
    echo "            <input type=\"password\" name=\"password2\" id=\"password2\" />\n";
    echo "        </li>\n";
    echo "        <li>\n";
    echo "            <input type=\"submit\" name=\"submit\" value=\"Neues Password speichern\" />\n";
    echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
    echo "            <input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />\n";
    echo "        </li>\n";
    echo "    </ol>\n";
    echo "</form>\n";
    echo "<p>\n";
    echo "    <a href=\"index.php?section=admin&amp;'.SID.'\">Zurück</a>\n";
    echo "</p>\n";
?>
admin_menu.php
PHP:
<?php
    echo "<div class=\"adminbereich\">\n";
    echo "    <p>\n";
    echo "        Willkommen im Adminbereich\n";
    echo "    </p>\n";
    echo "    <ol class=\"bereich\">\n";
    echo "        <li>\n";
    echo "            Benutzer\n";
    echo "            <ol class=\"aktionen\">\n";
    echo "                <li>\n";
    echo "<a href=\"index.php?section=admin&amp;site=user&amp;action=add&amp;'.SID.'\">\n";
    echo "                        hinzufügen\n";
    echo "                    </a>\n";
    echo "                </li>\n";
    echo "                <li>\n";
    echo "<a href=\"index.php?section=admin&amp;site=user&amp;action=edit&amp;'.SID.'\">\n";
    echo "                        bearbeiten\n";
    echo "                    </a>\n";
    echo "                </li>\n";
    echo "                <li>\n";
    echo "<a href=\"index.php?section=admin&amp;site=user&amp;action=del&amp;'.SID.'\">\n";
    echo "                        löschen\n";
    echo "                    </a>\n";
    echo "                </li>\n";
    echo "            </ol>\n";
    echo "        </li>\n";
    echo "    </ol>\n";
    echo "    <p>\n";
    echo "        <a href=\"index.php?section=admin&amp;site=self&amp;'.SID.'\">\n";
    echo "            Eigenen Account bearbeiten\n";
    echo "        </a>\n";
    echo "    </p>\n";
    echo "</div>\n";
?>
admin_user.php
PHP:
<?php
    $rights = getRights();
    if(!in_array("Admin", $rights)) {
        no_rights();
    } else {
        switch(@$_GET['action']) {
           case "add":
                if(isset($_POST['submit'])) {
                    if(!preg_match('/^\w+$/', trim($_POST['name']))) {
                        echo "<p>\n";
                        echo "    Bitte geben sie einen Name aus alphanumerischen Zeichen ein.\n";
                        echo "</p>\n";
                        echo "<p>\n";
                        echo "    <a href=\"index.php?section=admin&amp;site=user&amp;action=add&amp;".SID."\">\n";
                        echo "        Zurück zum Formular\n";
                        echo "    </a>\n";
                        echo "</p>\n";
                    } elseif(trim($_POST['email']) == "") {
                        echo "<p>\n";
                        echo "    Bitte geben sie eine Emailadresse an.\n";
                        echo "</p>\n";
                        echo "<p>\n";
                        echo "    <a href=\"index.php?section=admin&amp;site=user&amp;action=add&amp;".SID."\">\n";
                        echo "        Zurück zum Formular\n";
                        echo "    </a>\n";
                        echo "</p>\n";
                    } else {
                        $password = substr(md5(microtime()),0,8); // zufallspassword erstellen
                        $sql = "INSERT INTO
                                    users(Name, Email, Password)
                                VALUES
                                    ('".trim($_POST['name'])."',
                                     '".addslashes(trim($_POST['email']))."',
                                     MD5('".$password."'));";
                        $result = mysql_query($sql) OR die(mysql_error());
                        if(isset($_POST['send'])) {// Login-Daten per Email schicken
                            $mailbody  = "Zugangsdaten zur Homepage:\n";
                            $mailbody .= "Name: ".trim($_POST['name'])."\n";
                            $mailbody .= "Password: ".$password."\n";
                            $mailbody .= "Bitte loggen sie sich ein und ändern sie das Password.\n";
                            if(mail(trim($_POST['email']), "Zugangsdaten", $mailbody)) {
                                echo "<p>\n";
                                echo "    Account wurde hinzugefügt und die Zugangsdaten wurden zum\n";
                                echo "    Benutzer geschickt.\n";
                                echo "</p>\n";
                                echo "<p>\n";
                                echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
                                echo "        Zurück zum Adminbereich\n";
                                echo "    </a>\n";
                                echo "</p>\n";
                            } else {
                                echo "<p>\n";
                                echo "    Account wurde hinzugefügt, doch es konnte keine Email\n";
                                echo "    verschickt werden.\n";
                                echo "</p>\n";
                                echo "<p>\n";
                                echo "    Logindaten <br />\n";
                                echo "    Name: ".trim($_POST['name'])."<br />\n";
                                echo "    Password: ".$password."<br />\n";
                                echo "</p>\n";
                                echo "<p>\n";
                                echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
                                echo "        Zurück zum Adminbereich\n";
                                echo "    </a>\n";
                                echo "</p>\n";
                            }
                        } else {
                            echo "<p>\n";
                            echo "    Account wurde hinzugefügt.\n";
                            echo "</p>\n";
                            echo "<p>\n";
                            echo "    Logindaten <br />\n";
                            echo "    Name: ".trim($_POST['name'])."<br />\n";
                            echo "    Password: ".$password."<br />\n";
                            echo "</p>\n";
                            echo "<p>\n";
                            echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
                            echo "        Zurück zum Adminbereich\n";
                            echo "    </a>\n";
                            echo "</p>\n";
                        }
                    }
                } else {
                    echo "<form ".
                         "action=\"index.php?section=admin&amp;site=user&amp;action=add\" ".
                         "method=\"post\" ".
                         "class=\"formular\">\n";
                    echo "    <p>\n";
                    echo "        Neuen Benutzer hinzufügen\n";
                    echo "    </p>\n";
                    echo "    <ol>\n";
                    echo "        <li>\n";
                    echo "            <label for=\"name\">Name</label>\n";
                    echo "            <input type=\"text\" name=\"name\" id=\"name\" />\n";
                    echo "        </li>\n";
                    echo "        <li>\n";
                    echo "            <label for=\"email\">Emailadresse</label>\n";
                    echo "            <input type=\"text\" name=\"email\" id=\"email\" />\n";
                    echo "        </li>\n";
                    echo "        <li>\n";
                    echo "            <label for=\"send\">\n";
                    echo "                Zugangsdaten per Email zuschicken lassen\n";
                    echo "            </label>\n";
                    echo "            <input type=\"checkbox\" name=\"send\" id=\"send\" />\n";
                    echo "        </li>\n";
                    echo "        <li>\n";
                    echo "            <input type=\"submit\" name=\"submit\" value=\"Benutzer hinzufügen\" />\n";
                    echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                    echo "            <input type=\"hidden\" name=\"".session_name()."\" ".
                                                            "value=\"".session_id()."\" />\n";
                    echo "        </li>\n";
                    echo "    <ol>\n";
                    echo "</form>\n";
                    echo "<p>\n";
                    echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
                    echo "        Zurück zum Adminbereich\n";
                    echo "    </a>\n";
                    echo "</p>\n";
                }
                break;

                case 'del':
        if(isset($_POST['submit'])) {
            if(!$_POST['uid']) { // gucken ob == 0 ist
                echo "<p class=\"error\">\n";
                echo "    Bitte wählen sie einen Benutzer aus<br />\n";
                echo "    <a href=\"index.php?section=admin&amp;site=user&amp;action=del\">\n";
                echo "        Zurück zum Formular\n";
                echo "    </a>\n";
                echo "</p>\n";
            } else {
                $sql = "DELETE FROM
                            user_rights
                        WHERE
                            UserID = '".$_POST['uid']."';";
                mysql_query($sql) OR die(mysql_error());
                $sql = "DELETE FROM
                            users
                        WHERE
                            ID = '".$_POST['uid']."';";
                mysql_query($sql) OR die(mysql_error());
                echo "<p>\n";
                echo "    Der User wurde gelöscht.\n";
                echo "</p>\n";
                echo "<p>\n";
                echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
                echo "        Zurück zum Adminbereich\n";
                echo "    </a>\n";
                echo "</p>\n";
            }
        } else {
            echo "<form ".
                 "action=\"index.php?section=admin&amp;site=user&amp;action=del\" ".
                 "method=\"post\" ".
                 "class=\"formular\">\n";
            echo "    <p>\n";
            echo "        Benutzer löschen\n";
            echo "    </p>\n";
            echo "    <ol>\n";
            echo "        <li>\n";
            echo "            <label for=\"name\">Benutzer</label>\n";
            $sql = "SELECT
                        Name, ID
                    FROM
                        users
                    ORDER BY
                        Name ASC;";
            $result = mysql_query($sql) OR die(mysql_error());
            echo "                <select id=\"name\" name=\"uid\">\n";
            echo "                    <option value=\"0\" selected=\"selected\">Bitte einen User wählen</option>\n";
            while($row = mysql_fetch_assoc($result)) {
                echo "<option value=\"".$row['ID']."\">".$row['Name']."</option>\n";
            }
            echo "                </select>\n";
            echo "        </li>\n";
            echo "        <li>\n";
            echo "            <input type=\"submit\" name=\"submit\" value=\"Benutzer löschen\" />\n";
            echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
            echo "            <input type=\"hidden\" name=\"".session_name()."\" ".
                                                    "value=\"".session_id()."\" />\n";
            echo "        </li>\n";
            echo "    <ol>\n";
            echo "</form>\n";
            echo "<p>\n";
            echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
            echo "        Zurück zum Adminbereich\n";
            echo "    </a>\n";
            echo "</p>\n";
        }
        break;

            case 'edit':
        if(isset($_POST['submit']) AND "Benutzer auswählen" == $_POST['submit']) {
            if(!$_POST['uid']) {
                echo "<p class=\"error\">\n";
                echo "    Bitte wählen sie einen Benutzer aus<br />\n";
                echo "    <a href=\"index.php?section=admin&amp;site=user&amp;action=del\">\n";
                echo "        Zurück zum Formular\n";
                echo "    </a>\n";
                echo "</p>\n";
            } else {
                $_SESSION['uid'] = $_POST['uid']; // Die UserID in der Session speichern.
                $rights = getRights($_SESSION['uid']); // Die Rechte vom User holen
                $sql = "SELECT
                            Name
                        FROM
                            users
                        WHERE
                            ID = '".$_SESSION['uid']."';";
                $result = mysql_query($sql) OR die(mysql_error());
                $Name = mysql_result($result, 0);
                echo "<form ".
                     "action=\"index.php?section=admin&amp;site=user&amp;action=edit\" ".
                     "method=\"post\" ".
                     "class=\"formular\">\n";
                echo "    <p>\n";
                echo "        Benutzer ".$Name." bearbeiten\n";
                echo "    </p>\n";
                echo "    <ol>\n";
                echo "        <li>\n";
                echo "            Rechte:\n";
                $allRights = array();
                $allRights[] = "Admin";
                $allRights[] = "News";
                // .. und weitere
                sort($allRights);
                echo "            <ul>\n";
                foreach($allRights as $value) {
                    echo "<li>\n";
                    echo "    <input id=\"".$value."\" type=\"checkbox\" name=\"rights[]\"";
                    if(in_array($value, $rights)) {
                        echo " checked=\"checked\"";
                    }
                    echo " value=\"".$value."\" />\n";
                    echo "    <label for=\"".$value."\">".$value."</label><br />\n";
                }
                echo "            </ul>\n";
                echo "        </li>\n";
                echo "        <li>\n";
                echo "            <input type=\"submit\" name=\"submit\" value=\"Rechte speichern\" />\n";
                echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                echo "            <input type=\"hidden\" name=\"".session_name()."\" ".
                                                            "value=\"".session_id()."\" />\n";
                echo "    </ol>\n";
                echo "</form>\n";
                echo "<p>\n";
                echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
                echo "        Zurück zum Adminbereich\n";
                echo "    </a>\n";
                echo "</p>\n";
            }
        } elseif(isset($_POST['submit']) AND "Rechte speichern" == $_POST['submit']) {
            if(!isset($_POST['rights'])) {
                echo "<p class=\"error\">\n";
                echo "    Sie müssen mindestens ein Recht angeben.\n";
                echo "</p>\n";
            } else {
                $sql = "DELETE FROM
                            user_rights
                        WHERE
                            UserID = '".$_SESSION['uid']."';";
                mysql_query($sql) OR die(mysql_error());
                // alle Vorhandenen Rechte löschen
                // und nun die angewählten hinzufügen
                foreach($_POST['rights'] as $right) {
                    $sql = "INSERT INTO
                                user_rights(userID, Recht)
                            VALUES
                                ('".$_SESSION['uid']."',
                                 '".$right."');";
                    mysql_query($sql) OR die(mysql_error());
                }
                echo "<p>\n";
                echo "    Die Rechte wurden gespeichert.\n";
                echo "</p>\n";
                echo "<p>\n";
                echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
                echo "        Zurück zum Adminbereich\n";
                echo "    </a>\n";
                echo "</p>\n";
            }
        } else {
            echo "<form ".
                 "action=\"index.php?section=admin&amp;site=user&amp;action=edit\" ".
                 "method=\"post\" ".
                 "class=\"formular\">\n";
            echo "    <p>\n";
            echo "        Benutzer bearbeiten\n";
            echo "    </p>\n";
            echo "    <ol>\n";
            echo "        <li>\n";
            echo "            <label for=\"name\">Benutzer</label>\n";
            $sql = "SELECT
                        Name, ID
                    FROM
                        users
                    ORDER BY
                        Name ASC;";
            $result = mysql_query($sql) OR die(mysql_error());
            echo "                <select id=\"name\" name=\"uid\">\n";
            echo "                    <option value=\"0\" selected=\"selected\">Bitte einen User wählen</option>\n";
            while($row = mysql_fetch_assoc($result)) {
                echo "<option value=\"".$row['ID']."\">".$row['Name']."</option>\n";
            }
            echo "                </select>\n";
            echo "        </li>\n";
            echo "        <li>\n";
            echo "            <input type=\"submit\" name=\"submit\" value=\"Benutzer auswählen\" />\n";
            echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
            echo "            <input type=\"hidden\" name=\"".session_name()."\" ".
                                                    "value=\"".session_id()."\" />\n";
            echo "        </li>\n";
            echo "    <ol>\n";
            echo "</form>\n";
            echo "<p>\n";
            echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
            echo "        Zurück zum Adminbereich\n";
            echo "    </a>\n";
            echo "</p>\n";
        }
        break;

        }
    }
?>
functions.php
PHP:
<?php
    function login_right($id, $pass)
    {
        $sql = "SELECT
                    COUNT(*) as Anzahl
                FROM
                    users
                WHERE
                    ID = '".$id."' AND
                    Password = MD5('".$pass."');";
        $result = mysql_query($sql) OR die(mysql_error());
        $row = mysql_fetch_assoc($result);
        mysql_free_result($result);
        return $row['Anzahl'];
    }
    function no_rights()
    {
        echo "<p class=\"error\">\n";
        echo "    Sie haben keine Berechtigung, diesen Bereich\n";
        echo "    zu betreten. Bitte wählen sie einen anderen\n";
        echo "    Bereich aus\n";
        echo "</p>\n";
        echo "<p>\n";
        echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
        echo "        Zurück zum Adminbereich\n";
        echo "    </a>\n";
        echo "</p>\n";
    }

    function getRights($UID = null)
    {
        if(isset($UID)) {
            $sql = "SELECT
                        Recht
                    FROM
                        user_rights
                    WHERE
                       UserID = '".$UID."';";
        } else {
            $sql = "SELECT
                        Recht
                    FROM
                        user_rights
                    WHERE
                       UserID = '".$_SESSION['ID']."';";
        }
        $result = mysql_query($sql) OR die(mysql_error());
        $rights = array();
        while($row = mysql_fetch_assoc($result)) {
            $rights[] = $row['Recht'];
        }
        return $rights;
    }
?>
variablen.php
PHP:
<?php
    // variablen.php
    $dateien = array();
    $dateien['news'] = "news.php";
    $admin_site = array();
    $admin_site['self'] = "admin_self.php";
    $admin_site['user'] = "admin_user.php";
    $allRights = array ();
?>
 
Bitte poste nicht einfach alle Dateien und erwate Hilfe.

Jedenfalls muss die index.php?section=admin aufgerufen werden, damit $_SESSION['IP'] befüllt wird.
Allerdings hat man in deinem Code (bzw. den vom Tutorial) nicht besonders einen Durchblick, da HTML & PHP völlig gemischt sind.

Überprüfe mal, ob auf index.php?section=admin weitergeleitet wird, nachdem man sich eingeloggt hat.
Außerdem, ob, wenn du diese URL manuell besucht hast, es immer noch eine Fehlermeldung gibt.


PS: Dein URL deines Tutorial ist übrigens nicht aufrufbar (Verbindung wird unterbrochen).
 
Zurück