Ich versuche, eine URL als URL-Parameter in PHP zu übergeben, aber wenn ich versuche, diesen Parameter abzurufen, bekomme ich nichts
Ich verwende das folgende URL-Formular:
http://localhost/dispatch.php?link=www.google.com
Ich versuche es durchzubekommen:
$_GET['link'];
Aber es kam nichts zurück. Was ist das Problem?
Zeigen Sie Ihren vollständigen Code
– Pekka
4. Mai 2011 um 14:17 Uhr
tun var_dump des $_GET param, es sollte da sein
– Naftali
4. Mai 2011 um 14:18 Uhr
tut $_REQUEST['link'] Arbeit? Denken Sie auch an den Indexschlüssel link unterscheidet zwischen Groß- und Kleinschreibung, was in der URL steht.
– Dutchie432
4. Mai 2011 um 14:18 Uhr
Du versuchst nicht wirklich a $_GET aber postest du zufällig, oder?
– James
4. Mai 2011 um 14:22 Uhr
Und was war die Lösung dafür? Habe das gleiche Problem
– Benutzer
26. März 2012 um 9:58 Uhr
Alvaro González
$_GET ist keine Funktion oder kein Sprachkonstrukt – es ist nur eine Variable (ein Array). Versuchen:
<?php
echo $_GET['link'];
Insbesondere ist es ein superglobal: eine eingebaute Variable, die von PHP gefüllt wird und in allen Bereichen verfügbar ist (Sie können sie innerhalb einer Funktion ohne die global Stichwort).
Da die Variable möglicherweise nicht vorhanden ist, können (und sollten) Sie sicherstellen, dass Ihr Code keine Benachrichtigungen auslöst mit:
<?php
if (isset($_GET['link'])) {
echo $_GET['link'];
} else {
// Fallback behaviour goes here
}
Alternativ können Sie, wenn Sie manuelle Indexprüfungen überspringen und möglicherweise weitere Validierungen hinzufügen möchten, die verwenden Filter Verlängerung:
Zu guter Letzt können Sie die verwenden Null-Koaleszenzoperator (erhältlich seit PHP/7.0) um fehlende Parameter zu behandeln:
echo $_GET['link'] ?? 'Fallback value';
Wenn Sie wie ich damit nichts anfangen können, dann sollten Sie wissen, dass ‘link’ ein Name einer Variablen in der URL-Adresse ist! Also mit $_GET[‘link’]; Sie müssen die URL wie folgt eingeben: localhost/?link=test
– Feuern
20. April 2014 um 12:58 Uhr
Ich benutze WAMP auf localhost und diese Lösung funktioniert nicht. http://localhost/station?type=2echo $_GET['type']; ist null
– Neun Catto-Regeln
29. Mai 2019 um 21:58 Uhr
Schließlich habe ich verwendet parse_str(parse_url($actual_link)['query'], $params);. Weitere Informationen unter stackoverflow.com/a/11480852/4458531
– Neun Catto-Regeln
30. Mai 2019 um 8:29 Uhr
Sie sagen “$_GET ist keine Funktion oder kein Sprachkonstrukt – es ist nur eine Variable (ein Array)”, aber wir greifen nicht über den Index auf Werte zu, sondern Sie greifen über eine Zeichenfolge auf Werte zu. Ist das eher ein Wörterbuch als ein Array?
– ScottyBlades
26. Oktober 2019 um 22:53 Uhr
@ScottyBlades Ich spreche im Kontext von PHP-Datenstrukturen. In PHP, ein Reihe ist eine geordnete Liste von Schlüssel/Wert-Kombinationen. Das unterscheidet sich von dem, was andere Sprachen (zB C oder JavaScript) “Array” nennen.
Ich bekam nichts für alle $_GET["..."] (z.B print_r($_GET) gab ein leeres Array) noch $_SERVER['REQUEST_URI'] gezeigtes Zeug sollte da sein. Am Ende stellte sich heraus, dass ich nur auf die Webseite gelangte, weil mein .htaccess sie dorthin 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 derselbe PHP-Code funktionierte, als die 404-Umleitung nicht einsetzte!
Damit Es gibt Wege$_GET kann nichts zurückgeben, obwohl der PHP-Code korrekt sein kann.
Zeigen Sie Ihren vollständigen Code
– Pekka
4. Mai 2011 um 14:17 Uhr
tun
var_dump
des$_GET
param, es sollte da sein– Naftali
4. Mai 2011 um 14:18 Uhr
tut
$_REQUEST['link']
Arbeit? Denken Sie auch an den Indexschlüssellink
unterscheidet zwischen Groß- und Kleinschreibung, was in der URL steht.– Dutchie432
4. Mai 2011 um 14:18 Uhr
Du versuchst nicht wirklich a
$_GET
aber postest du zufällig, oder?– James
4. Mai 2011 um 14:22 Uhr
Und was war die Lösung dafür? Habe das gleiche Problem
– Benutzer
26. März 2012 um 9:58 Uhr