Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Rechteverwaltung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Stealth
    hat ein Thema erstellt [Erledigt] Rechteverwaltung.

    [Erledigt] Rechteverwaltung

    Hallo liebe Community,

    ich möchte mich erstmal vorstellen ich bin Christian und wohne am Bodensee. Ich habe erst vor 2 Wochen mit php angenfangen und bin noch ein absoluter Anfänger!!! Ich habe mir extra ein Buch gekauft, gelesen und die Übungen gemacht und alles hat bisher super funktioniert. Die Grundlagen sind mir bewusst.

    Nun wollte ich ein kleines Projekt machen um meine fähigkeiten zu festigen und zu erweitern. Nichts großes. in einem Admin Control Panel kann ich bestimmte Daten in die Datenbank eintragen, editieren und lösche, dessen einträge einfach von der Mainpage ausgelesen werden sollen. Eine art Tabelle. Dummes Beispiel: Produkt Banane Kalorien 80kcal gewicht 200gramm etc. .. also nur was simples.

    Angefangen habe ich mit dem Admin Control Panel. Dazu habe ich jetzt das Loginformular fertig gestellt. Während ich das nun aber gemacht habe ist mir folgende Frage gekommen. Wie kann ich denn wenn ich später mal Leute habe die Zugriff darauf bekommen zugriff nur auf bestimmte stellen zu gewähren?

    Also zum Beispiel ich bzw. meine gruppe haben vollen Zugriff. Die andere gruppe darf nur Datenbankeinträge machen (die später von der Mainpage ausgelesen werden) , wieder eine andere darf eintragen aber auch editieren und dann vllt wieder eine die eintragen editieren und löschen darf (falls ich das ACP mal erweitere z.B. mit user hinzufügen etc. das andere das nicht können). Wie bekomm ich das hin?

    Mein Loginformular sieht momentan so aus:

    index.html
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
            "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
       <title>HDB-Login</title>
    </head>
    <body>
       
        <h1>Loginformular</h1> 
       
          <form action="inc/validateLogin.inc.php" method="post">
    
             <p></p><input type="text" name="username" />Benutzername</p> 
             <p></ü><input type="password" name="password" /> Passwort</p>
    
             <input type="submit" name="login" value="Einloggen" />
    
          </form>
    
    </body>
    </html>
    validateLogin.inc.php
    PHP-Code:
    <?php
        session_start
    ();
        
        
    //Überprüfen, ob das Forumalr abgeschickt wurde und ob beide Angaben gemacht wurden.
        
    if(isset($_POST['username'], $_POST['password'])
        AND
        
    strcmp(trim($_POST['username']),'') != 0
        
    AND
        
    strcmp(trim($_POST['password']),'') != 0) {

        
    //Einbinden der Konfigurationsdatei
        
    include_once 'config.inc.php';
        
        
    //Erstellen der Verbindung zur MySQL-Datenbank
        
    if(!$connection mysql_connect($_config['host'], $_config['user'], $_config['password'])) {
            die(
    'Verbindung zum Datenbankserver konnte nicht hergestellt werden.' );
        }
        
        if (!
    mysql_select_db($_config['database'], $connection)) {
            die(
    'Die Datenbank ' $_config['database'] . 'kann nicht verwendet werden. <br />)
                    MySQL-Error: <br />' 
    mysql_error());
        }
        
        
    /* SQL-Anweisung an die Datenbank senden, um zu sehen ob Daten existieren
         * und auszulesen */
        
    $sql "SELECT
                        id
                    FROM
                        team
                    WHERE
                        username = '" 
    trim($_POST['username']) . "'
                    AND
                        password = '" 
    md5(trim($_POST['password'])) . "'";
        
    $res mysql_query($sql) or die('Error[SELECT|User]: <br />
                                                        <pre>' 
    $sql '</pre>
                                                        <br />
                                                        MySQL-Error: ' 
    mysql_error());
        
        
    /*Nur wenn genau ein Datensatz selektiert wurde wird der User eingeloggt.
         * In allen anderen Fällen wird er zurück zum Loginforumlar geleitet.*/
        
    if(mysql_num_rows($res) !=1) {
            
    header('Location: ../loginfehler.html');
        }
        
        
    /*Der Schlüssel 'LoggedIn' erhält den Wert 'true'. So kann später überprüft werden,
         * ob der User eingeloggt ist oder nicht.*/
        
    $_SESSION['loggedIn'] = true;
        
    $_SESSION['id'] = $user->id;
        
        
    /*Der Login war erfolgreich un der User wird in das ACP weitergeleitet */
        
    header('Location: ../index.php');
        exit();
    ?>
    config.inc.php
    PHP-Code:
    <?php
        $_config 
    = array();
        
        
    $_config['host'] = 'localhost';
        
    $_config['user'] = 'xxx';
        
    $_config['password'] = 'xxx';
        
    $_config['database'] = 'xxx';
    ?>
    loginfehler.html
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
            "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
       <title>Fehler beim Login</title>
       <meta http-equiv="refresh" content="5; URL=loginformular.html"> 
    </head>
    <body>
       
       <h1>Es ist ein Fehler beim Login aufgetreten.</h1>
       <p>Eventuell handelt es sich nur um einen Tippfehler. Bitte versuchen Sie es nochmals.</p>
    
       Sie werden nach 5 Sekunden automatisch weitergeleitet.
       
    </body>
    </html>
    logout.php
    PHP-Code:
     <?php

         session_start
    ();
         
    $_SESSION['loggedIn'] = false;
         
    session_destroy();

         
    header'Location: loginformular.html' );
         exit(); 

    ?>
    Datenbank
    Code:
    -- phpMyAdmin SQL Dump
    -- version 3.2.4
    -- http://www.phpmyadmin.net
    --
    -- Host: localhost
    -- Erstellungszeit: 13. August 2010 um 00:12
    -- Server Version: 5.1.41
    -- PHP-Version: 5.3.1
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    
    --
    -- Datenbank: `hdb`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Tabellenstruktur für Tabelle `team`
    --
    
    CREATE TABLE IF NOT EXISTS `team` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(50) NOT NULL,
      `password` varchar(35) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    
    --
    -- Daten für Tabelle `team`
    --
    
    
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    Bitte steinigt mich nicht gleich ich habe die SuFu benutzt aber irgendwie war es nicht genau das was ich gesucht habe. Ich hoffe ihr könnt mir da helfen. Und wie gesagt habe das Buch vor 2 Wochen angefangen zu lesen und das ist mein aller erster Versuch. Hoffe ihr könnt mir verzeihen.

  • Stealth
    antwortet
    Okay. Vielen Dank für eure Hilfe. Das hat mir jetzt schonmal sehr weitergeholfen .. Super Community ist das hier .. Man liest sich bestimmt noch öfters

    Einen Kommentar schreiben:


  • wolf29
    antwortet
    Na ja, ne wirklich umfangreiche Tabelle haste nicht, dass lässt sich noch erweitern (Normalisierung als Stichwort).
    Dennoch musst Du (wenn du z.B. ne extra Spalte für die Rechte dort einfügst) bei den bereits bestehenden User die Rechte natürlich updaten/eintragen!

    Wolf29

    Einen Kommentar schreiben:


  • Stealth
    antwortet
    OK .. ich werde dann erst einmal so weitermachen wie bisher geplant ohne die rechteverwaltung, mir aber trotzdem die links anschauen und mich bisschen einlesen. Das ganze kann ich später dann aber trotzdem in mein bisherige Loginsystem einbauen oder? Oder könnte ich da, gerade im bezug auf die MySQL Tabelle schwierigkeiten bekommen wenn schon user vorhanden sind?
    Theoretisch müsste sich das ja erweitern lassen und in der Tabelle dann die Felder erweitern und die rechte setzen können oder?

    Einen Kommentar schreiben:


  • wolf29
    antwortet
    Ich denke Nikosch hat da völlig Recht, aber dennoch poste ich Dir mal hier 1-2 hiflreiche Links (die Du nutzen kannst, wenn Du soweit bist):

    Ein einfaches, flexibles Rechtesystem - PHP - Tutorials, Tipps und Tricks für Webmaster auf Webmasterpro.de (simples Beispiel, fürs Verständnis)
    PHP Loginsystem (komplettes Tut)
    usw.

    Wolf29

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Nimms mir nicht übel, aber ein Rechtesystem ist für 2 Wochen PHP-Erfahrung noch ein bissel viel. Setz doch erstmal den Rest um, dann gewinnst Du weiteres Training mit der Syntax.

    Einen Kommentar schreiben:

Lädt...
X