• Hallo!
    Ich weis nicht genau, wie ich jetzt mein Problem beschreiben soll...
    Ich habe eine php-Datei, die überprüft, ob das Passwort richtig ist usw.
    wenn ja:

    Code
    echo "Login war erfolgreich. <a href=\"ok.php\">weiter</a>";

    Dann habe ich eine php-Datei, die am Anfang überprüft, ob man eingeloggt ist. Das sieht so aus:

    PHP
    <?php 
    session_start();
    if(!isset($_SESSION['username'])) 
       { 
       echo "Bitte erst <a href=\"login.html\">einloggen</a>";
       exit; 
       } 
    ?>

    Das funktioniert wunderbar... Jetzt möchte ich aber, dass, wenn das Passwort ok ist, die ok.php-Datei automatisch kommt und ich nicht mehr auf "weiter" klicken muss. Ich habe es mit "header (Location: ........)" schon versucht. Dann geht es leider nicht mehr. Es kommt nur noch "Bitte erst einloggen"

    Ich weis, das war jetzt stuss:-)! Ich bin müüüde:-)! Wäre dankbar, wenn Ihr mir helfen könntet!

  • Das geht per Javascript:

    Code
    <script type="text/javascript">
      window.location.href='ok.php';
    </script>

    Was du nun noch brauchst, ist eine Zeitverzögerung. Der Text "Login erfolgreich" erscheint, das JS wartet 5sec und ruft dann
    die ok.php auf. Das klappt sicher so.

    An alle die das lesen: Wir brauchen noch die JS-Zeitverzögerung. Thx.

    "Carpe Diem" powered by positiv Feelings

  • geht

    nicht?

    musst aber darauf achten, dass du keine daten ausgibst, bevor du header() aufrufst. also am besten zuoberst in deinem script, vor html und body und all dem zeuch.

  • Das stimmt schon. Wobei ich mich frage, warum man JS standardmäßig abschalten sollte. Naja, Einstellungssache...

    Alternativ könnte man auch einen Button erzeugen, der geklickt werden kann. Sollte dies nicht erfolgen so wird nach z.B. 5sec die
    nächste Seite automatisch geladen. Bei deaktiviertem JS bleibt dann halt der Button "weiter" stehen und der User muss ihn manuell betätigen.

    Damit deckt man sicher beides ab.

    "Carpe Diem" powered by positiv Feelings

  • Zitat von baloo

    das problem ist nur, dass jeder besucher javascript abschalten kann, php jedoch nicht.
    deshalb greife ich gerne auf php zurück, auch wenns für ein paar leute umständlicher ist.

    ...dafür gibts ja dann den originalen link...

    Zitat

    Wie muss ich das JavaScript einbauen? Mit echo'<java.....>' oder wie?

    Ja!

  • Das funktioniert irgendwie nicht. Ich weis nicht, ob es am JavaScript oder an der art, wie ich es eingebunden habe liegt.
    Ich habs jetzt so gemacht:

    Code
    echo '<script type="text/javascript">window.location.href='ok.php';</script>';


    Geht nicht.

  • Naja, das mit den verschachtelten ' und " Zeichen ist immer so ne Sache...
    Versuch es besser mal so

    Code
    echo "Sie sind eingeloggt.";
    ?> 
      <script type="text/javascript">
        window.location.href='ok.php';
      </script>
    <?
    ...

    "Carpe Diem" powered by positiv Feelings

  • Hmmm...jetzt müsste ich mal den ganzen PHP-Code sehen, sonst stochern wir nur im Trüben...

    "Carpe Diem" powered by positiv Feelings

  • php-Code der Datei, die das Passwort und Username überprüft:

    php-Code der 'geheimen Seite':

    PHP
    <?php 
    session_start();
    if(!isset($_SESSION['username'])) 
       { 
       echo "Bitte erst <a href=\"login.html\">einloggen</a>";
       exit; 
       } 
    ?>


    Ich kann mir das nicht erklären...

  • ich nehm das mal aus diesem beitrag:

    Zitat von nuessler

    Das funktioniert irgendwie nicht. Ich weis nicht, ob es am JavaScript oder an der art, wie ich es eingebunden habe liegt.
    Ich habs jetzt so gemacht:

    Code
    echo '<script type="text/javascript">window.location.href='ok.php';</script>';


    Geht nicht.

    das änderst du in das:

    Code
    echo '<script type="text/javascript">window.location.href=\'ok.php\';</script>';

    mfg

  • Ich würde meine, dass er doch auch den usernamen an das 'geheime' Skript übergeben muss oder zumindest die Session-ID.
    Also so in der Art:

    Code
    echo "Alles in Butter! <a href=\"ok.php?usr=$username\">weiter...</a>";

    mfg. Alex

  • Ok, dann fang ich mal an:
    Wozu verwendest du denn $_POST['username']? Kommen diese Daten von einem Formular, dann sind sie direkt über name
    des Formularfeldes ansprechbar. Also in deinem Fall als $username.

    Die automatische Weiterleitung habe ich gleich mal eingebaut. Zudem wird ein Hinweis ausgegeben, falls JS deaktiviert sein sollte.

    So, dann ergibt sich als neue Datei folgende:

    So, ich denke das sollte hinhauen.

    "Carpe Diem" powered by positiv Feelings