kostenloser Webspace werbefrei: lima-city


adminbereich

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nicolas-k

    nicolas-k hat kostenlosen Webspace.

    guten abend allerseits

    ich habe wiedereinmal zeit gefunden, meine website weiterzuentwickeln und möchte nun einen adminbereich erstellen, in dem ich als admin beiträge verfassen kann, änderungen vornehmen kann etc.

    ich habe in meinem website-nachschlagewerk ein bisschen nachgeblättert und unter PHP den Punkt Sessions gefunden.
    nun wollte ich fragen, ob ich da an der richtigen adresse bin.

    mfg nicolas-k
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. thoba

    Co-Admin Kostenloser Webspace von thoba

    thoba hat kostenlosen Webspace.

    Joar, du bist an der richtigen Adresse.

    Sessions machen für Loginsysteme durchaus Sinn.
  4. Hallo,

    willst du das Sessions System den selbst entwickeln?
    Könnte dir diese Youtube Videos empfehlen:



    Hoffe konnte helfen. :-)
  5. Autor dieses Themas

    nicolas-k

    nicolas-k hat kostenlosen Webspace.

    vielen dank für die videos, werde sie morgen lesen weil ich jetzt noch ausgehe :D

    ich habe anhand eines beispieles aus meinem nachschlage-werk folgenden code produziert



    login.php

    <?php
    	if($_POST["submit"]=="login"){
    		if($_POST["admin_user"]=="nicolas-k" && $_POST["admin_password"]=="goswitzerland") {
    			session_start();
    			$_SESSION["access"] ="open";
    			$_SESSION["name"] = "nicolas";
    			header("Location: about.php?" . session_name() . "=" . session_id());
    		} else {
    			print("Die Login-Daten waren leider falsch!");
    		}
    	}
    	?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>Untitled Document</title>
     	</head>
        <body>
        <form action="galerie.php" method="post" enctype="multipart/form-data">
        <p>USER:<input type="text" name="admin_user" /></p>
        <p>PASSWORD:<input type="password" name="admin_password"></p>
        <p><input type="submit" name="submit" value="login"/></p>
        </form>
        
    
        </body>
    </html>



    about.php

    <?php
    session_start();
    if (isset($_SESSION["access"]) && $_SESSION["access"] != "open") {
    	header("Location: http://www.google.ch/");
    }
    ?>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <h1>willkommen im geschützten bereich</h1>
    </body>
    </html>



    wenn ich das richtig verstehe, sollte man die seite about.php nur als eingeloggter nicolas-k password goswitzerland zu sehen kriegen!
    jedoch kriegt auch z.b. mein bruder den inhalt der seite about.php zu sehen.

    was mache ich falsch?
  6. Bei deinem Bruder wird in der Session nix mit "access" drinstehen.
    isset($_SESSION["access"])

    ergibt also immer false.
    Die Kombination mit AND
    (isset($_SESSION["access"]) && $_SESSION["access"] != "open")

    ist logischerweise also auch falsch.
    Daher geschieht keine Weiterleitung.
    Stattdessen müsstest du schreiben:
    (!isset($_SESSION["access"]) || $_SESSION["access"] != "open")

    oder auch
    (!(isset($_SESSION["access"]) && $_SESSION["access"] == "open"))

    Zu der Umformung siehe De Morgan'sche Gesetze
    lg Vex

    Beitrag zuletzt geändert: 28.7.2012 20:44:36 von vexi
  7. Autor dieses Themas

    nicolas-k

    nicolas-k hat kostenlosen Webspace.

    manchmal sollte ich wohl lieber ne pause machen damit nicht soviele schluder fehler entstehen...

    vielen dank da hätte ich wohl jetzt noch lange gesucht...

    was ich aber immer noch nicht verstehe ist, dass die session variablen gar nicht weiter gespeichert werden!
    also mich leitet die about.php seite trotz login automatisch weiter ....


    UPDATE: habe herausgefunden dass in meiner php.ini stand:
    session.use_only_cookies=1

    wenn dieser wert steht, wird die session id nicht über die url von session_start() übernommen


    Beitrag zuletzt geändert: 29.7.2012 20:06:24 von nicolas-k
  8. germanplayking

    germanplayking hat kostenlosen Webspace.

    Du könntest den Adminbereich auch per .htaccess schützen.Das ist einfacher als es per PHP mit den ganzen Sessions und so zu machen. Hier gibts nen Generator dafür: http://www.onlyfree.de/generatorhtaccess.php



    Beitrag zuletzt geändert: 30.7.2012 13:13:36 von germanplayking
  9. Ich schütze meinen Login immer mit beiden Methoden!

    .htaccess
    &
    Sessions

    Ich würde Dir empfehlen das Passwort noch mit MD5 zu verschlüsseln!

    lg alex
  10. m****r

    Jop, benutze Sessions, verschlüssel die Passwörter mit md5. Wichtig: Direkt bevor du irgendwas mit dem Passwort machst verschlüsseln und nur verschlüsselte PWs übertragen oder für Vergleiche benutzen - niemals unverschlüsselte.

    $PW = md5($_POST['eingabe']);

    Dann noch ein Hinweis zu session_start(); - ich vermute du wirst das ganze auf Cookies basierend aufbauen. Dann solltest du wissen, dass session_start() zu allererst vor irgendetwas anderem aufgerufen werden muss.

    "Um Cookie-basierte Sessions zu verwenden muss session_start() aufgerufen werden, bevor irgend etwas an den Browser geschickt wird." von http://de3.php.net/manual/de/function.session-start.php.

    Bau dir also eine index.php wo ganz oben ein session_start() steht, über die du dann die jeweils benötigten Dateien über GET referenziert einbindest include($site . ".php"); und dann hast du ein gut funktionierendes System.
  11. md5 ist unsicher, weil Kollisionen einfach und schnell zu berechnen sind.

    SHA512 ist sicherer, und ähnlich einfach zu verwenden.
    $PW = hash("sha512",$_POST['eingabe'])
  12. Ja ok das ist richtig MD 5 gilt als unsicher ich nutze es immer noch aber jawol!

    SHA-224/256/384/512
    Die Zahl steht für die Länge des Hash-Wertes in Bit.
    Da der Hash somit umfangreicher wird, sinkt die Gefahr von Kollisionen.
    Diese Methode des Hashings ist daher für das Speichern sicherer Passwörter zu empfehlen.


    <?php

    // Erzeugung von Hash Passwort
    $password = "deinPW";
    $hash = hash('sha256', $password);
    echo $password . ' : ' . $hash;

    // Prüfung
    $hash = get_user_hash($_POST['username']); // aus db laden
    if ($hash == hash('sha256', $_POST['password'])) // Prüfung ob Passwort stimmt
    {
    echo "PW Stimmt";
    }

    ?>
  13. @ nicolas-k

    wenn Du dir dieses Tuto
    http://www.php-resource.de/tutorials/tutorial,38,Login-mit-Hilfe-von-PHP-und-mySQL,1.htm
    durchliest
    und Dir
    "session_start(), inculde_once(..), serialize(...)"
    erarbeitest (was glaube ich sehr schnell bei Dir geht ;) ), dann hast Du ein "login-System", welches sehr viele nutzen, aber deshalb muß es ja nicht schlecht sein.

    @Rest

    Die Diskussion über die Sicherheit von MD5 und sha512 halte ich für unpassend im Sinne der Fragestellung!
    Auch auf die Gefahr hin, daß diese Antwort mal wieder wegen "Unghörlichkeit" gelöscht wird, es bringt nicolas-k im Augenblick nicht weiter...
  14. Das Thema wurde ausreichend behandelt (Tutorials, Codesnippets), deshalb mach ich hier mal zu.

    Bei Rückfragen einfach eine PN an mich.
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!