Nicht eingeloggt Weiterleitung begrenzen?

  • Hallo,

    ich habe in die header.php diesen Code eingesetzt:

    PHP
    if(!is_user_logged_in()) {
    
    
      wp_redirect('wp-admin', 302);
      exit();
    
    
    }

    Dieser bewirkt, dass auf allen Seiten geprüft wird, ob der User gerade eingeloggt ist und falls nicht,
    wird er zum Login weiter geleitet.
    Nun habe ich allerdings eine Wordpress-Seite, die auch von Gästen betrachtet werden soll.
    Kann ich dem Code also irgendwie hinzufügen, dass er diese eine Seite von der Prüfung ausschließt?
    Oder kann ich eine zweite header.php anlegen und etwas ändern, damit auf dieser einen Seite die andere header.php geladen wird?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich versuche gerade selbst solch eine Abfrage zu machen, leider funktioniert sie noch nicht:

    PHP
    $homepage = "https://www.domain.de/intern/index.php/news/";
                $currentpage = $_SERVER['REQUEST_URI'];
                if($homepage==$currentpage) {
                echo '0';
                }
                else 
                {
                echo "Du bist nicht Nils!";
                }

    Auf der Seite mit der Adresse https://www.domain.de/intern/index.php/news/ sollte doch nun eigentlich nichts heraus kommen,
    ich bekomme aber "Du bist nicht Nils" angezeigt.
    Was stimmt mit der Url-Abfrage noch nicht?

  • REQUEST_URI enhält aber nur den Pfad ohne Domain. Also mußt Du gegen '/intern/index.php/news/' testen.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Vielen Dank Putzlowitsch, damit funktioniert es jetzt. :smile:

    Hier der komplette Code:

    Edit: Ok, doch noch nicht ganz.
    Durch das "echo" wird der Code natürlich nur auf der Seite ausgegeben und nicht ausgeführt.
    Muss man das echo durch etwas Anderes ersetzen?

    Einmal editiert, zuletzt von Robota (29. Juli 2016 um 10:10)

  • Kannst doch einfach das echo weglassen bzw. die if-Abfrage umkehren

    PHP
    $homepage = "/intern/index.php/news/";
    $currentpage = $_SERVER['REQUEST_URI'];
    
    
    if( $homepage != $currentpage ) {
      if( !is_user_logged_in() ) {
        wp_redirect( 'wp-admin', 302 );
        exit();
      }
    }

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Das funktioniert leider nicht, mit dem Code gibt es eine Fehlermeldung bei einer anderen Seite:

    Zitat

    Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

  • Ok, jetzt aber, so klappt es:

    Die Fehlermeldung kam, weil einige Seiten "höher" liegen als intern/wp-admin.
    Durch die komplette Url ist das jetzt aber gelöst.

  • Dann nimm die Kurzform von weiter oben. Das ist sauberer als mit echo ' ';

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Ich muss das Thema nochmal kurz aufgreifen. Ich möchte statt auf der einen Seite, noch zwei andere Seiten angeben, auf denen die Weiterleitung nicht statt finden soll. Bisher habe ich ja nur die eine Seite davon ausgegrenzt:

    Wie kann ich in diese Abfrage mehrere verschiedene Seiten aufnehmen?
    Ganz simpel mit Komma funktioniert es leider nicht.

  • bilde einfach mehrere Variablen und setze sie dann mit einem Oder ins If:

    if($var == 'a' || $var2 == 'b')

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Jetzt mitmachen!

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