Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zum Passwortschutz

Einklappen

Neue Werbung 2019

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

  • Frage zum Passwortschutz

    Hallo,

    ich habe einen Passwortschutz geschrieben, der mit Hilfe einer Datenbank den Zugang zu einer bestimmten Seite ermöglicht. Nichts besonderes, es wird lediglich das Datenpaar 'Passwort' und 'User' überprüft und dann per Meta Refresh auf die nächste Seite weitergeleitet.
    Funktioniert auch alles einwandfrei. Jetzt habe ich allerdings die folgende Frage: Wenn die Adresse bekannt ist, kann man ja nach wie vor durch direkte Adresseingabe auf die Seite kommen. Wie kann ich das denn verhindern?

  • #2
    Sessions oder .htaccess, wobei Sessions die komfortablere Variante ist.

    Kommentar


    • #3
      .htaccess erfordert doch einen eigenen Passwortschutz oder nicht?

      Kommentar


      • #4
        Zitat von asyoulikeit Beitrag anzeigen
        .htaccess erfordert doch einen eigenen Passwortschutz oder nicht?
        klar, wenn du mit den Daten aus der Datenbank arbeiten willst musst du schon Sessions (bzw. Cookies) benutzen

        Kommentar


        • #5
          Wenn du geprüft hast, dass user/passwort ok sind, machst du
          PHP-Code:
          session_start();
          $_SESSION['login'] = $username
          und danach die Weiterleitung zum Memberbereich.

          Dann baust du dies Script:
          memberschutz.php
          PHP-Code:
          <?
          session_start();
          if($_SESSION['login'] = "") {
             die("Unberechtigter Zugriff");
          }
          ?>
          und inkludierst diese Datei denn auf jeder zu schützenden Seite.
          PHP-Code:
          <?
          include "memberschutz.php";
          // Hier kommen nur angemeldete Leute an
          ?>
          Statt die() kannst du natürlich auch eine Weiterleitung zu einer
          Fehlerseite oder zur Login-Seite machen.

          (Nicht getesteter Code)
          [PHP]if ($var != 0) {
          $var = 0;
          }[/PHP]

          Kommentar


          • #6
            Zitat von cycap Beitrag anzeigen
            klar, wenn du mit den Daten aus der Datenbank arbeiten willst musst du schon Sessions (bzw. Cookies) benutzen
            Das stimmt so nicht:
            Probleme mit Zugriff auf HTACCESS gesicherten Ordner - phpfriend.de
            PHP: HTTP authentication with PHP - Manual
            "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

            Kommentar


            • #7
              Zitat von Wolla Beitrag anzeigen
              Wenn du geprüft hast, dass user/passwort ok sind, machst du
              Kann ich session_start() nicht nur ganz am Anfang einer Datei benutzen? Wie kann ich das benutzen, nachdem ich user/passwort geprüft habe?

              Kommentar


              • #8
                session_start() heisst nicht das bereits etwas geschützt wird. Die Session kann genau so gut anonym sein, was sie sowieso ist solange du der Session keinen User zuordnest.

                Heisst also, du kannst session_start() ruhig an den Anfang einer Datei schreiben (z.B. index.php) es ist nur wichtig das es vor jeglicher Ausgabe gemacht wird und bevor du $_SESSION benutzt.

                Nach erfolgreichem Login ordnest du der Session dann mit
                Code:
                $_SESSION['login'] = $username;
                (aus dem obigen Beispiel) den User zu.

                Erst ab dann wird die o.g. Kontrolle erfolgreich sein.

                Kommentar


                • #9
                  Zitat von asyoulikeit Beitrag anzeigen
                  Kann ich session_start() nicht nur ganz am Anfang einer Datei benutzen? Wie kann ich das benutzen, nachdem ich user/passwort geprüft habe?
                  session_start() muss am Anfang stehen, aber dann hast du aber während des ganzen Scripts Zugriff auf die Session-Daten ($_SESSION).
                  Und damit du auch bei vernünftig eingestelltem Error-Reporting keine Fehlermeldung erhälst, wenn $_SESSION['login'] nicht gesetzt ist, prüst du besser mit
                  PHP-Code:
                  if(empty($_SESSION['login'])) {
                     die(
                  "Unberechtigter Zugriff");

                  Gruss
                  L

                  Kommentar


                  • #10
                    In Datei 1 uebergibst du den wert true in der session login, wenn der login korekt ist, ansonsten übergibst du false
                    PHP-Code:
                    Session[login]=true;
                    //bzw
                    Session[login]=false
                    In der 2. Datei sieht es dann so aus:
                    PHP-Code:
                    if(Session[login]=true){
                    //Seitenquelltext
                    }
                    else{
                    //alternativquelltext wenn login falsch

                    PS:
                    session_start(); nicht vergessen!
                    mfg
                    Also ich bin jetzt nicht mehr bereit vollständige Sätze zu ...!

                    Kommentar


                    • #11
                      @Freak warum schreibst du solchen Pseudocode?

                      Kommentar


                      • #12
                        sollte ein kleiner denkanstoss sein
                        wenn er dir nicht gefällt, dann sag mir bitte was dir nicht gefällt
                        Also ich bin jetzt nicht mehr bereit vollständige Sätze zu ...!

                        Kommentar


                        • #13
                          Zitat von angehender Freak Beitrag anzeigen
                          sollte ein kleiner denkanstoss sein
                          wenn er dir nicht gefällt, dann sag mir bitte was dir nicht gefällt
                          Der wird im leben nicht funktionieren, reicht das als "nicht gefallen" ?

                          Kommentar


                          • #14
                            okay,
                            wenn du das sagtst!
                            Also ich bin jetzt nicht mehr bereit vollständige Sätze zu ...!

                            Kommentar


                            • #15
                              Dein Code:
                              PHP-Code:
                              if(Session[login]=true){ 
                              funktionierender Code:

                              PHP-Code:
                              if($_SESSION["login"]==true){ // wobei man sich das == true auch sparen könnte 
                              was fällt da auf? Tipp: 2 Fehler die auf jeden Fall geändert werden müssen

                              Kommentar

                              Lädt...
                              X