Bestimmte HTML Seiten per PHP Code sperren

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

  • Bestimmte HTML Seiten per PHP Code sperren

    Hallo,

    heute ist nun das PHP Skript für einen funktionierenden LOGIN fertig geworden.
    Habe mit Hilfe des Internets Datenbank etc. eingerichtet und erstellt.

    Doch jetzt möchte ich , wenn ein unangemeldeter Besucher eine Seite aufruft, zum LOGIn Skript weitergeleitet wird. Er soll die Seite also nicht sehen und sich erst einloggen.

    Habe da einen Code, der leider gottes nicht funktioniert.:
    PHP-Code:
    <?php
     
    # Ist der User eingeloggt ???
        
    if ($_SESSION["login"] == 0)
            {
            
    # ist nicht eingeloggt, also Formular anzeigen, die Datenbank
            # schliessen und das Programm beenden
            
    include("login-formular.html");
            
    mysql_close($link);
            exit;
            }
    ?>

    Kann mir einer Sagen, was daran falsch ist?

    Gruß PHP-Comer

  • #2
    So wie ich das sehe, baust Du die Formular-Seite auf und dann verlässt Du die Datei gleich wieder mit exit.

    Probiere es mit header-Befehl, damit rufst du dann die Login-Formular Seite direkt auf.
    [COLOR=#810081]http://php.net/manual/de/function.header.php[/COLOR]

    PHP-Code:
     # Ist der User eingeloggt ??? 
        
    if ($_SESSION["login"] == 0
            

            
    # ist nicht eingeloggt, also Formular anzeigen, die Datenbank
            # schliessen und das Programm beenden 
            
    mysql_close($link); 
            
    header('Location: login-formular.html'); 
            } 
    !!! Durch den header-Befehl darf vorher keine Ausgabe statt finden, sonst erscheint eine Fehlermeldung. Seien es normale HTML-Tags, Leerzeilen in einer Datei oder von PHP aus. Somit sollte der Code am Angfang jeder Datei stehen.

    Kommentar


    • #3
      Hallo,

      es fehlt session_start(), um erstmal die Session verfügbar zu machen. Außerdem solltest du das Error-Reporting aufdrehen (siehe Forenregeln), damit PHP dir sagen kann, wo es klemmt. Folgendes solltest du noch zu den möglichen Wegen (Umleitung und include) wissen:

      Bei einer Umleitung schickt der Server eine leere Antwort zum Browser, der Browser muss eine neue Verbindung aufbauen (außer bei Keep-Alive) und nochmal alle Daten schicken, was aber nicht ohne vorherige Genehmigung des Benutzers passieren darf. Also muss der Browser entweder blöde Fragen stellen oder eventuelle Post-Daten werden gar nicht übermittelt.

      Deine ursprüngliche include-Variante ist also nicht nur performanter, sondern auch weniger fehleranfällig. Bmedias Umleitung ist doch eher ein Umweg, wie das Wort schon sagt und syntaktisch falsch, da als Ziel immer eine absolute Anfrage-URI übergeben werden muss.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar

      Lädt...
      X