Max: else weiterleitung im loginscript

Hi Leute.
Ich habe eine Frage:

Ich habe mit einem Loginscript angefangen. Ich muss zugeben dass ich den größten Teil bisher kopiert habe weil ich noch ein totaler Anfänger in Sachen PHP bin.

Ich möchte erreichen dass, wenn jemand auf eine Seite möchte die man nur nach Login sehen kann, weitergeleitet wird auf eine andere Seite auf der dann wieder meine Login-Felder sind und drüber steht dass er sich einloggen muss. Bisher steht dann auf einer blank seite einfach nur "Sie sind nicht eingeloggt".

Am Anfang vom Code habe ich hierfür:

  
<?php  
session_start();  
if($_SESSION["logedin"] == TRUE) {  
    echo "Sie sind eingeloggt.<br><a href=\"index_index.php?site=logout\">Ausloggen</a>";  
?>  

und am Ende:

  
<?php  
    } else {  
    echo "Sie sind nicht eingeloggt.";  
}  
?>  

Wie kann ich jetzt erreichen dass im Falle "Nicht eingeloggt" eine Weiterleitung erfolgt?

Vielen Dank für eure Hilfe!

Gruß,
Max

--
Ich-kann-nicht wohnt in der Ich-will-nicht Straße.
  1. Hi,

    gib in diesem Fall im <head> Bereich der Seite eine normale HTML Weiterleitung aus:

    <meta http-equiv='refresh' content='0; URL=seite.php'>

    Damit wird die Seite nach 0 Sekunden neu geladen mit der URL Seite.php

    Ciao MasonB

  2. Hallo Max,

    Wie kann ich jetzt erreichen dass im Falle "Nicht eingeloggt" eine Weiterleitung erfolgt?

    Wenn die Weiterleitung sofort erfolgen soll, sende einen entsprechenden Location-header. Andernfalls gebe einen Link und ggf. ein Meta-Refresh an.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
    1. Vielen Dank für die promten Antworten.

      @David
      Ich hab es jetzt so versucht:

        
      <?php  
          } else {  
         header("Location: login.php");  
        
      exit;  
      }  
      ?>  
      
      

      Aber ich bekomme nur einen Fehler.
      Was hab ich da falsch gemacht?

      @Mason:
      Deine Lösung wird eifnach ignoriert. Da gibt mir der Browser doch wieder nur die Blank-Page mit dem Text ausgegeben.

      Gruß,
      Max

      --
      Ich-kann-nicht wohnt in der Ich-will-nicht Straße.
      1. Hallo Max,

        header("Location: login.php");

        Location-Header müssen absolut sein.

        Aber ich bekomme nur einen Fehler.

        Meinst du der könnte unwichtig sein und deswegen postest du ihn nicht?
        Was für eine HTTP-Response bekommst du?

        Grüße
          David

        --
        >>Nobody will ever need more than 640k RAM!<<
        1981 Bill Gates
        1. Hallo,

          Der Meta-Refrsh kann nicht nur die Seite neu laden, sondern auch eine andere Seite laden!

          Bye

        2. Location-Header müssen absolut sein.

          Was heißt das?

          Die Fehlermeldung lautet
          Warning: Cannot modify header information - headers already sent by (output started at D:\htdocs\systestgen_new\PHP_Test\Page11\eingeloggt.php:4) in D:\htdocs\systestgen_new\PHP_Test\Page11\eingeloggt.php on line 81

          --
          Ich-kann-nicht wohnt in der Ich-will-nicht Straße.
          1. Hi,

            vor dem Header darf nicht stehen,  noch nicht mal ein Blank

            => die Seite muss mit <?php anfangen und es darf keinerlei Ausgabe erfolgen bevor der Header gesendet wurde

            Ciao

            1. Okay.
              Vielen Dank.
              Ich werde mich erstmal noch weiter mit "header" auseinandersetzen weil ich die Lösung noch nicht verstehe.

              Aber vielen Dank euch beiden. Dass ichs nicht verstehe liegt jetzt erstmal an mir ;)

              Gruß,
              Max

              --
              Ich-kann-nicht wohnt in der Ich-will-nicht Straße.
              1. Hier auf der Seite des PHP-Manual steht relativ gut beschrieben wie die Funktion Header funktioniert.

                Das wichtigste ist das du sicherstellst das keinerlei Ausgabe gemacht wird ( auch Blanks oder so im Quelltext ) bevor der Header gesendet wird  also muss das ERSTE!!! das im Quelltext deiner PHP-Seite zu lesen ist <?php sein.

                http://de3.php.net/header

                Ciao

                1. Sry, hab eben vergessen:

                  Die Fehlermeldung die du bekommen hast bedeutet das schon etwas gesendet wurde.

                  Sobald du irgendwelche Ausgaben hast sendet der Webserver den Standard Header, danach die Ausgabe  und ab diesem Zeitpunkt ist ein ändern des Headers unmöglich