Einmalige Weiterleitung auf eine andere Seite

  • Hallo,

    ich möchte beim ERSTEN Aufruf meiner Index.php ohne Verzögerung auf eine zweite komplette Seite weiterleiten.
    Ruft der Benutzer wieder die Index.php auf, soll diese Weiterleitung nicht durchgeführt werden.


    Ich habe vor Jahren mal was ähnliches in PHP gebaut, und dann nie wieder PHP genutzt.
    Es ging irgendwie über session start, eine Variable anlegen, in Abhängigkeit dieser Variablen die Zielseite aufrufen und auf der Zielseite dann die variable auf einen bestimmten Wert setzen, damit auf der Index die Seite nicht nochmal gestartet wird.

    Aber ich bekomme die Syntax nicht mehr hin.

    Ich hoffe sehr auf Hilfe hier.

    Frank

  • Würde ich auch in der Art machen, aber eine Frage cottton: Warum prüfst Du den session_status()? session_start() allein würde imho reichen, wenn keine Session da ist, wird eine erstellt und die Session-Variable ist nicht vorhanden => 1. Aufruf; gibt es die Session-Variable bereits => wiederholter Aufruf.


    Bleibt vom Code her gleich, aber sehe keinen Notwendigkeit für session_status()

    PHP
    session_start();
    
    if ( !isset($_SESSION['called_before']) ) {
        $_SESSION['called_before'] = true;
        header( 'location: https://www.example.com/foo/bar/and/so/on/' );
        exit;
    }
  • Arne Drews

    Wenn man über den Session-Status geht, kann man diesen Code-Schnipsel theoretisch in jedes Script einbauen, auch in denen, die per include eingebunden werden. So verhindert man ein mehrfaches Aufrufen von session_start. Ob man das wirklich so machen muss, steht auf einem anderen Blatt. Bei einem vernünftigen Aufbau eines Projektes sollte ein mehrfaches session_start sowieso nicht passieren

  • Das stimmt, bei includes wäre das brauchbar.


    Aber wenn man es dort benötigt hat man eh schon was falsch gemacht/verstanden, denn ein session_start() gehört an den Anfang des Root-Script.

    Ich kennen keinen Anwendungsfall, in dem ich in einem einzubindenden Script eine Session starten möchte/muss?!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!