⊗ppPmRdSWP 407 of 447 menu

Selbstredirect mit Hinzufügen von Parametern in PHP

Angenommen, auf der Seite index.php wird ein GET-Parameter mit dem Namen arg übergeben. Lassen wir seinen Inhalt auf dem Bildschirm ausgeben:

<?php echo $_GET['arg']; ?>

Angenommen, unsere Seite ohne GET-Parameter kann nicht korrekt arbeiten. In unserem Fall ist das tatsächlich so, denn wenn der Parameter nicht übergeben wurde, führt der Zugriff auf $_GET['arg'] zu einem Fehler.

Es könnte die Frage aufkommen, warum überhaupt jemand auf unsere Seite ohne Parameter gelangt? Schließlich können wir überall auf unserer Website Links mit diesem Parameter setzen. Das ist jedoch keine Garantie: Ein Benutzer unserer Website könnte beispielsweise einen Link von irgendwoher kopieren und dabei den Parameter verlieren. Oder ihn einfach versehentlich löschen, während er die Adressleiste bearbeitet.

Kurz gesagt, in jedem Fall sollte unser Code eine solche Situation voraussetzen und etwas damit tun. Was kann man tun?

Man kann unseren GET-Parameter auf Existenz prüfen und ihn nur ausgeben, wenn er existiert:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // irgendwie reagieren, z.B. mit einer Meldung } ?>

Man kann es schlauer machen:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // Standardwert } echo $_GET['arg']; // gibt garantiert etwas aus ohne Fehler ?>

Oder man kann es so machen, dass beim Aufruf der Seite ohne Parameter ein Redirect auf die gleiche Seite mit Parameter erfolgt:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // Parameter ist garantiert vorhanden ?>

Erklären Sie, worin der Unterschied zwischen der zweiten Variante und der dritten liegt.

Angenommen, auf der Seite page.php kann eine Zahl mit Hilfe des GET-Parameters mit dem Namen num übergeben werden. Sorgen Sie dafür, dass beim Aufruf ohne diesen Parameters automatisch ein Redirect auf diese Seite erfolgt, aber mit dem Parameter num mit dem Wert 1.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen