$_SESSION()

  • Meine Frage wird jetzt wahrscheinlich blöd tönen. Aber wie bring ich es hin, dass die Variablenüberprüfung mit $_SESSION() funkt?

    Brauch das für nen Passwortschutz.

    Link: http://www.gilliand.bplaced.net/

    Wenn ihr noch Code braucht, dann bitte schreiben!

    Hab auch schon im Google gesucht. Aber nichts gefunden, was passt...

  • also wenn du einen loginscreen programmiert hast, dann einfach die benutzerdaten (benutzername und passwort) an ein php script schicken. dieses prüft dann in den auf dem server gespeicherten daten das passwort.

    $password = file("password.php");
    if ($_POST['password'] == $password) {
    $_SESSION['login'] = "erfolgt";
    }


    danach musst du in jede datei die du nur eingeloggter betreten darfst folgenden code kopieren:

    if (!$_SESSION['login'] == "erfolgt")
    echo "Du musst dich erst einloggen!";
    exit;
    }

    den else zweig kannst du dir sparen. danach kommt einfach der normale html/php etc code.

  • Dann hättest du doch auch gleich noch die Forensuche versuchen können, oder?
    Ich erinnere mich, dass es das Thema erst letzte Woche gab.
    Ansonsten: Ja, wir brauchen deinen Code, damit wir sehen, was du falsch gemacht hast.


  • Hab aber gesucht und nichts richtiges gefunden. Aber hier mal den Code. Hab bisher nichts gemacht und nur gefragt. Das von mir Ausprobierte ging nicht.

    Code:

  • der fehler is folgender:

    am anfang sagst du $pw = $_GET['pw'];
    damit hast du $pw gesetzt, wenn du dann mit isset($pw) prüfst ob es diese variable gibt, dann trifft das zu, unabhängig vom inhalt.
    also ich prüfe dann einfach immer ob $pw != "", das hilft

  • Was meinst du da??? Ich will ja prüfen, ob die Variable gesetzt wurde, oder eben nicht. Und wenn ich index.php aufrufe, dann ist das nicht gesetzt. Dann sollte das Login Feld angezeigt werden. Das klappt...

    Wenn ich dann ein PW eintippe, das nicht dem richtigen PW entspricht, sollte das gleiche nochmal kommen. Wenn das PW richtig ist, dann soll die Site geladen werden.

    Das klappt ja. Aber anstatt alles über $_GET zu machen, möchte ich gerne das PW per $_POST senden und dann sieht man nichts mehr vom PW...

    Das wollte ich eigentlich. Dazu dachte ich, dass $_SESSION das Richtige wäre!

  • Oh Gott, du haust da einiges durcheinander.

    Code
    session_start();
    if(isset($_POST['pw']) && $_POST['pw'] == "dein Passwort") {
      $_SESSION['logged_in'] = true;
    }
    else {
      die("flasches Passwort oder kein Passwort");
    }


    Dann überprüfst du auf jeder Seite, die geschützt sein soll, ob $_SESSION['logged_in'] true ist:

    Code
    if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] ===  true) {
    echo"eingeloggt";
    }


    Eine session ist sozusagen dazu da, um einen User auch beim Seitenwechsel zu identifizieren, so dass er sich nicht jedes mal neu einloggen muss.
    Was du da oben zusammengekratzt hast, ist Nonsens. Du übernimmst da ungeprüft Uservariablen, was gefährlich ist.

    Ach so, hier der Thread: https://www.forum-hilfe.de/viewtopic.php?…+login&start=15

    Gruß,
    Jojo


  • Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/gilliand/www/index.php:1) in /users/gilliand/www/index.php on line 2

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/gilliand/www/index.php:1) in /users/gilliand/www/index.php on line 2

  • Orthografie und Grammatik in diesem Beitrag sind frei erfunden und eine eventuell gefundene Übereinstimmung mit einer lebenden oder toten Sprache sollte von allen Beteiligten unverzüglich ignoriert werden.

    K-Progs (In bearbeitung)
    Der inoffizielle Forum-hilfe IRC-Channel
    (Server: irc.freenode.net ; Channel: #forum-hilfe) (Client für FF)
    Ich hab auch 'n Jabber-Account beim CCC ;)

  • Haha witzig. Das hab ich schon gelesen und auch berücksichtigt. Aber geht immer noch nicht.

  • meine Kristallkugel is momentan in der Reinigung poste doch bitte mal die ersten 5 Zeilen!

    Orthografie und Grammatik in diesem Beitrag sind frei erfunden und eine eventuell gefundene Übereinstimmung mit einer lebenden oder toten Sprache sollte von allen Beteiligten unverzüglich ignoriert werden.

    K-Progs (In bearbeitung)
    Der inoffizielle Forum-hilfe IRC-Channel
    (Server: irc.freenode.net ; Channel: #forum-hilfe) (Client für FF)
    Ich hab auch 'n Jabber-Account beim CCC ;)

  • OK mach ich...

    PHP
    <?php		
    		session_start();
    		if(isset($_POST['pw']) && $_POST['pw'] == "***zensiert***") {
    		  $_SESSION['logged_in'] = true;
    		}


    Achja: Header() funkt hat auch noch nie gefunkt. Bei http://www.wtd.firefox.bplaced.net gehts aber... Komische Sache.

  • ok dann ist das problem intressant^^
    wird die datei irgendwo includiert oder so?

    Orthografie und Grammatik in diesem Beitrag sind frei erfunden und eine eventuell gefundene Übereinstimmung mit einer lebenden oder toten Sprache sollte von allen Beteiligten unverzüglich ignoriert werden.

    K-Progs (In bearbeitung)
    Der inoffizielle Forum-hilfe IRC-Channel
    (Server: irc.freenode.net ; Channel: #forum-hilfe) (Client für FF)
    Ich hab auch 'n Jabber-Account beim CCC ;)

  • Warum jeder Datei? Hab ja nur die eine Datei, die index.php heisst.

    Muss es in der ersten Zeile stecken oder einfach an erster Stelle stehen?

  • Zitat


    Warum jeder Datei? Hab ja nur die eine Datei, die index.php heisst.


    Dann ist ja gut.

    Zitat


    Muss es in der ersten Zeile stecken oder einfach an erster Stelle stehen?

    Es muss sozusagen vor allem anderen stehen.

    Gruß,
    Jojo


  • Korrektur: session_start kann irgendwo stehen, wichtig ist nur, dass vorher nichts ausgegeben wird.

    Und des rätsels lösung ist: verrate ich nicht, da firefox5.0 von mir keine hilfe mehr bekommt

  • Zitat von bandit600

    verrate ich nicht, da firefox5.0 von mir keine hilfe mehr bekommt

    Wieso denn nicht? Was hab ich jetzt wieder falsch gemacht?

  • Zitat von firefox5.0

    Wieso denn nicht? Was hab ich jetzt wieder falsch gemacht?


    Du erinnerst dich an deinen thread in sachen upload? Der wurde ja gelöscht, weil eatofid darin mal wieder rumgesponnen hat. Ich habe dich per pm gefragt, ob du meinen quellcode noch gesehen hattest, du hast das dann per pm verneint. Ich habe dann nochmals ein script gebastelt und dir per pm geschickt. Und wie sah deine reaktion aus? Genau, keine reaktion. Keine "Danke, funktioniert" oder "funktioniert leider immer noch nicht", wobei ich eher an funktioniert glaube. Wenn jemand so undankbar ist und noch nicht mal eine kurze pm schreiben kann, der ist bei mir unten durch. Seh' doch alleine zu, wie du deine probleme löst!