Mief: per php neue Seite aufrufen

Hallo Leute,
ich habe eine Internetseite mit einem Login-Window. Jetzt tut sich die Seite beim Absenden selbst aufrufen und führt ein Script aus. Jetzt kommt meine Frage: Wenn der Benutzer Name und Passwort richtig eingeben hat, dann soll eine neue Seite geöffnet werden, aber auch erst dann und nicht früher!! Welchen Befehl gibt es dafür?
Danke schonmal im voraus.

  1. Welchen Befehl gibt es dafür?

    Entweder bindest du die entsprechende Seite per include() oder require() ein oder leitest per header(Location: ); weiter.

    1. Entweder bindest du die entsprechende Seite per include() oder require() ein oder leitest per header(Location: ); weiter.

      Ich will nichts einbinden sondern weiterleiten. Habs schon mit header versucht, funktioniert aber nicht. Hier mal der Code:

      <?php  
      $name = $_POST["name"];  
      $passwort = $_POST["passwort"];  
      if ($name=="Veit" && $passwort=="webprograming") {  
          header("Location:./planetstat/admin/");  
      }  
      ?>
      

      Der Code steht ganz oben, auch über dem Doctype-Element.

      1. مرحبا

        Nimm doch zum lernen was fertiges und passe es deinen bedürfnissen an.

        mfg

      2. Hallo,

        Ich will nichts einbinden sondern weiterleiten.

        das hat einen gravierenden Nachteil: Jeder, der die Ziel-URL kennt, kann die Seite ebensogut direkt aufrufen.

        <?php

        $name = $_POST["name"];
        $passwort = $_POST["passwort"];
        if ($name=="Veit" && $passwort=="webprograming") {
            header("Location:./planetstat/admin/");
        }
        ?>

          
        Das Umkopieren von $\_POST[] in eine weitere Variable ist unsinnig, und der Location-Header verlangt gemeäß der HTTP-Spec ein Leerzeichen nach dem Doppelpunkt und eine absolute URL. Das fehlende Leerzeichen ist vermutlich das, woran es hier scheitert, da die meisten Browser versuchen, auch relative URLs "irgendwie" zu verarbeiten.  
          
        
        > Der Code steht ganz oben, auch über dem Doctype-Element.  
          
        Also vor jeder anderen Ausgabe an den Client. Das muss auch so sein, damit header() überhaupt etwas ausrichten kann.  
          
        Ciao,  
         Martin  
        
        -- 
        "So schnell waren wir noch nie am Unfallort", sagte der Polizist zu seinem Kollegen, als er einen Laternenmast gerammt hatte.  
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        
      3. Als Ergänzung zu den beiden anderen Aussagen: Parameter ohne Prüfung zu übernehmen, ist mindestens fahrlässig. Hier kann dir ein böser Mensch Sachen unterjubeln, die du gar nicht willst.

        1. Hallo,

          Als Ergänzung zu den beiden anderen Aussagen: Parameter ohne Prüfung zu übernehmen, ist mindestens fahrlässig. Hier kann dir ein böser Mensch Sachen unterjubeln, die du gar nicht willst.

          richtig, aber solange man die Parameter nur gegen Referenzwerte prüft, und nicht sonstwie weiter verwendet, sehe ich da keine Gefahr.

          Ciao,
           Martin

          --
          You say, it cannot be love if it isn't for ever.
          But let me tell you: Sometimes, a single scene can be more to remember than the whole play.
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
          1. richtig, aber solange man die Parameter nur gegen Referenzwerte prüft, und nicht sonstwie weiter verwendet, sehe ich da keine Gefahr.

            Solange Buffer-Overflow o.ä. eine reelle Gefahr darstellen können(nur weil aktuell PHP diesen Bug nicht hat, kann er in einer älteren oder zukünftigen Version vorhanden sein), halte ich es für grob fahrlässig, darin keine Gefahr zu sehen.

            1. Hallo,

              richtig, aber solange man die Parameter nur gegen Referenzwerte prüft, und nicht sonstwie weiter verwendet, sehe ich da keine Gefahr.
              Solange Buffer-Overflow o.ä. eine reelle Gefahr darstellen können(nur weil aktuell PHP diesen Bug nicht hat, kann er in einer älteren oder zukünftigen Version vorhanden sein), halte ich es für grob fahrlässig, darin keine Gefahr zu sehen.

              nein, keineswegs. Wenn dieses Risiko besteht und ausgenutzt wird, dann ist das Kind bereits in den Brunnen gefallen, wenn das Script startet. Durch das Lesen eines Variableninhalts und Vergleichen mit einer Konstanten entsteht kein Buffer Overflow. Der könnte erst zuschlagen, wenn ich mit dem Variablenwert eine Funktion aufrufe oder eine modifizierende Operation durchführe - sprich: wenn Daten intern wieder kopiert und/oder manipuliert werden.

              Ciao,
               Martin

              --
              Besteht ein Personalrat aus nur einer Person, erübrigt sich die Trennung nach Geschlechtern.
                (aus einer Info des deutschen Lehrerverbands Hessen)
              Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. مرحبا

    Jetzt kommt meine Frage: Wenn der Benutzer Name und Passwort richtig eingeben hat, dann soll eine neue Seite geöffnet werden, aber auch erst dann und nicht früher!!

    Das geht mit ein paar Zeilen PHP.

    <?php  
      
    session_start();  
    error_reporting(E_ALL | E_STRICT);  
      
    if(isset($_GET['logout']))  
      if($_GET['logout'] == 1) {  
        session_destroy();  
        header('Location: http://'.$_SERVER['HTTP_HOST'].'/admin/');  
        exit;  
      }  
    if ($_SERVER['REQUEST_METHOD'] == 'POST')  
      if ($_POST['username'] == $admin->name AND $_POST['passwort'] == $admin->pass)  
        $_SESSION['angemeldet'] = true;  
      
    if (!isset($_SESSION['angemeldet']) OR !$_SESSION['angemeldet']) {  
    echo <<<EOT
    
    <!DOCTYPE html><html><head><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><title>Login</title></head><body><form action="/admin/" method="post">  
    <p><label>Username: <input type="text" name="username" /></label>  
    <p><label>Passwort: <input type="password" name="passwort" /></label>  
    <p><input type="submit" value="Anmelden" /></form></body></html>
    
    EOT;  
    }  
    else {  
      include_once 'login.inc.php';                 // Login erfolgreich, irgendwelches zeug machen  
      echo '<p><a href="?logout=1">Logout</a></p>'; // Logout-Link  
    }  
    
    

    mfg