wResponse::redirect
Führt eine Weiterleitung durch (prüft auf schon gesendete Header)
Funktionsaufruf
Void redirect(String url, Boolean movedPermanently)
Parameter
| Parameter | Beschreibung |
|---|---|
| url | Weiterleitungsziel |
| movedPermanently | Falls sich die URL dauerhaft geändert hat (HTTP Status-Code 301) |
| target | Ziel 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.