wResponse::redirect

Führt eine Weiterleitung durch (prüft auf schon gesendete Header)

Funktionsaufruf

Void redirect(String url, Boolean movedPermanently)

Parameter

ParameterBeschreibung
urlWeiterleitungsziel
movedPermanentlyFalls sich die URL dauerhaft geändert hat (HTTP Status-Code 301)
targetZiel für eine JavaScript Weiterleitung

Beispiel: Leitet auf die angegebene URL weiter

Quelltext

<?php

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

$url  = "/de/";
wResponse::redirect($url);

?>

Beispiel: Leitet auf die angegebene externe URL weiter

Quelltext

<?php

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

$url  = "https://www.weblication.de/";
wResponse::redirect($url);

?>

Beispiel: Leitet auf die angegebene URL permanent weiter (Status 301)

Quelltext

<?php

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

// Permanent weiterleiten (Status 301)
$url              = "/de/";
$movedPermanently = true; 
wResponse::redirect($url, $movedPermanently);

?>

Beispiel: Leitet auf die angegebene URL permanent weiter (Status 301) und lädt die Seite neu (target: top)

Quelltext

<?php

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

// Permanent weiterleiten (Status 301)
$url              = "/base/";
$movedPermanently = true;
$target           = "top";
wResponse::redirect($url, $movedPermanently, $target);

?>

Beispiel: Formularziel bzw. Formulartarget, zum Beispiel bei einem Login-Formular, dass über eine Lightbox geöffnet wird, anpassen.

Quelltext

<?php

// Auszug aus dem Login-Formular (Nach dem Absenden auszuführendes Skript)
$target = 'top'; 

...
if($redirectType == "redirectPath" && $redirectLoginPath != ""){
  $redirectPath = $redirectLoginUrl;
}
...
else if($redirectType == "startPathUser" && $userStartPath != ""){
  $redirectPath = $userStartUrl;
}
else{
  wResponse::redirect($this->url, false, $target);
}           

wResponse::redirect($redirectPath, false, $target);


?>

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.

 
FAQs
Was macht wResponse::redirect in Weblication?
wResponse::redirect führt eine Weiterleitung (Redirect) durch und prüft dabei auf bereits gesendete Header, um Probleme durch doppelte Headerausgaben zu vermeiden.
Welche Signatur hat die Funktion wResponse::redirect?
Die Funktion hat die Signatur <code class="codeInline">Void redirect(String url, Boolean movedPermanently)</code> (optional kann zusätzlich ein <code class="codeInline">target</code> verwendet werden, z. B. für JavaScript-Weiterleitungen).
Wofür ist der Parameter <code class="codeInline">url</code> bei wResponse::redirect?
<code class="codeInline">url</code> ist das Weiterleitungsziel. Das kann sowohl eine interne Pfadangabe (z. B. <code class="codeInline">/de/index.php</code>) als auch eine externe URL (z. B. <code class="codeInline">https://www.weblication.de/</code>) sein.
Was bedeutet der Parameter <code class="codeInline">movedPermanently</code>?
<code class="codeInline">movedPermanently</code> steuert, ob die Änderung dauerhaft ist: Wenn <code class="codeInline">true</code>, entspricht das einem dauerhaften Redirect mit HTTP Status-Code 301.
Wie kann ich mit wResponse::redirect auf eine interne URL weiterleiten?
Beispiel: <pre><code class="codeBlock" style="color: #000000">php $url = "/de/"; wResponse::redirect($url); </code></pre>
Wie kann ich mit wResponse::redirect auf eine externe URL weiterleiten?
Beispiel: <pre><code class="codeBlock" style="color: #000000">php $url = "https://www.weblication.de/"; wResponse::redirect($url); </code></pre>
Wie leite ich mit wResponse::redirect dauerhaft weiter (301)?
Beispiel: <pre><code class="codeBlock" style="color: #000000">php $url = "/de/"; $movedPermanently = true; wResponse::redirect($url, $movedPermanently); </code></pre>
Wie leite ich dauerhaft weiter und veranlasse dabei einen Seitenneuladen/Target (z. B. <code class="codeInline">top</code>)?
Beispiel: <pre><code class="codeBlock" style="color: #000000">php $url = "/base/"; $movedPermanently = true; $target = "top"; wResponse::redirect($url, $movedPermanently, $target); </code></pre>
Wofür ist der Parameter <code class="codeInline">target</code> bei der Weiterleitung nützlich?
<code class="codeInline">target</code> definiert das Ziel für eine JavaScript-Weiterleitung, z. B. <code class="codeInline">top</code>, um in Frames/Lightbox-Kontexten eine passende Navigation zu erreichen.
Wie kann ich das Weiterleitungsziel bzw. den <code class="codeInline">target</code> in einem Login-/Lightbox-Szenario anpassen?
In einem Login-Szenario kann der Zielbereich (z. B. <code class="codeInline">$target = 'top'</code>) gesetzt und dann abhängig von Redirect-Logik (z. B. <code class="codeInline">redirectType</code>) entweder ein bestimmter Pfad genutzt oder ansonsten <code class="codeInline">wResponse::redirect($this->url, false, $target)</code> aufgerufen werden. Danach wird typischerweise erneut mit <code class="codeInline">wResponse::redirect($redirectPath, false, $target);</code> umgeleitet.
Muss ich <code class="codeInline">grid.php</code> in eigenen Skripten für wResponse::redirect einbinden?
Ja: Beim Einsatz von Framework-Funktionen in eigenen Skripten sollte das Framework über <code class="codeInline">grid.php</code> referenziert werden (z. B. per <code class="codeInline">require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");</code>).
Muss <code class="codeInline">grid.php</code> eingebunden werden, wenn ich Framework-Funktionen direkt in einer Weblication-Seite einbinde?
Nein: Wenn eine Funktion innerhalb einer Weblication® Seite z. B. über das PHP-Quelltext-Element oder in einem XSL-Template über <code class="codeInline">wsl:php</code> eingebunden wird, muss das Framework über <code class="codeInline">grid.php</code> nicht mehr referenziert werden.