Ich versuche, eine URL als URL-Parameter in PHP zu übergeben, aber wenn ich versuche, diesen Parameter zu erhalten, erhalte ich nichts
Ich verwende das folgende URL-Formular:
http://localhost/dispatch.php?link=www.google.com
Ich versuche es durchzuhalten:
$_GET['link'];
Aber nichts kehrte zurück. Was ist das Problem?
var_dump
of the$_GET
Param, es sollte da sein$_REQUEST['link']
? Beachten Sie auch, dass der Indexschlüssel zwischenlink
Groß- und Kleinschreibung der URL unterscheidet.$_GET
sondern postest es, oder?Antworten:
$_GET
ist keine Funktion oder kein Sprachkonstrukt - es ist nur eine Variable (ein Array). Versuchen:Insbesondere ist es superglobal : eine integrierte Variable, die von PHP ausgefüllt wird und in allen Bereichen verfügbar ist (Sie können sie innerhalb einer Funktion ohne das globale Schlüsselwort verwenden).
Da die Variable möglicherweise nicht vorhanden ist, können (und sollten) Sie sicherstellen, dass Ihr Code keine Benachrichtigungen auslöst mit:
Alternativ, wenn Sie manuelle Index überprüft überspringen wollen und vielleicht weitere Validierungen hinzufügen können Sie die verwenden Filtererweiterung:
Zu guter Letzt können Sie den Null-Koaleszenz-Operator (verfügbar seit PHP / 7.0 ) verwenden, um fehlende Parameter zu behandeln:
quelle
localhost
und diese Lösung funktioniert nicht.http://localhost/station?type=2
echo $_GET['type'];
istnull
parse_str(parse_url($actual_link)['query'], $params);
. Weitere Informationen stackoverflow.com/a/11480852/4458531Bitte posten Sie Ihren Code,
oder
tun Arbeit ...
quelle
Um sicherzustellen, dass Sie immer auf der sicheren Seite sind, ohne alle Arten von unerwünschter Codeeinfügung zu erhalten, verwenden Sie FILTER:
Lesen Sie mehr über die php.net-Funktion filter_input oder lesen Sie die Beschreibung der verschiedenen Filter
quelle
Benutze das:
Oder verwenden Sie einfach:
quelle
Die akzeptierte Antwort ist gut. Aber wenn Sie ein Szenario wie dieses haben:
Sie können den benannten Anker wie folgt als Abfragezeichenfolge behandeln:
Greifen Sie dann folgendermaßen darauf zu:
quelle
Ich bekam nichts für irgendetwas
$_GET["..."]
(zprint_r($_GET)
. B. gab ein leeres Array),$_SERVER['REQUEST_URI']
zeigte aber, dass Sachen da sein sollten. Am Ende stellte sich heraus, dass ich nur auf die Webseite kam, weil mein .htaccess sie dort umleitete (mein 404-Handler war dieselbe .php-Datei, und ich hatte beim Testen einen Tippfehler im Browser gemacht).Das einfache Ändern des Namens bedeutete, dass der gleiche PHP-Code funktionierte, sobald die 404-Umleitung nicht mehr aktiv war!
So gibt es Möglichkeiten
$_GET
, kann nichts zurück , auch wenn der PHP - Code korrekt.quelle
Array ([0] => link = www.google.com)
quelle
Wer nichts zurückbekommt, muss das Ergebnis wohl nur in HTML-Tags einfügen.
So was:
quelle
Wie Alvaro sagte, ist $ _GET keine Funktion, sondern ein Array, das die Parameter enthält. Sie können also ein Element aus diesem Array mit abrufen
Erwartete OP:
quelle