Ottieni il parametro URL in PHP

Sto cercando di passare un URL come parametro url in php ma quando cerco di get questo parametro non ottengo nulla

Sto usando il seguente module URL:

http://localhost/dispatch.php?link=www.google.com 

Sto cercando di farcela:

 $_GET['link']; 

Ma nulla è tornato. Qual è il problema?

$_GET non è una function o un costrutto linguistico, è solo una variabile (una matrix). Provare:

 <?php echo $_GET['link']; 

In particolare, è un superglobale : una variabile integrata popolata da PHP ed è disponibile in tutti gli ambiti (è ansible utilizzarla all'interno di una function senza la parola chiave globale ).

Poiché la variabile potrebbe non esistere, potresti (e dovresti) assicurarti che il tuo codice non attivi avvisi con:

 <?php if (isset($_GET['link'])) { echo $_GET['link']; } else { // Fallback behaviour goes here } 

In alternativa, se si desidera ignorare i controlli dell'indice manuale e magari aggiungere ulteriori convalide, è ansible utilizzare l'estensione del filter :

 <?php echo filter_input(INPUT_GET, 'link', FILTER_SANITIZE_URL); 

Per favore pubblica il tuo codice,

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

o

 <?php echo $_REQUEST['link']; ?> 

lavora …

Per assicurarti di essere sempre al sicuro, senza get tutti i tipi di inserimento di codice indesiderato, utilizza FILTRI:

 echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING); 

Maggiori informazioni sulla function php.net filter_input , o controllare la descrizione dei diversi filtri

Usa questo. Ho eseguito questo in dispatch.php.

 $parameter = $_SERVER['QUERY_STRING']; echo $parameter; or Just use echo $_GET['link']; 

La risposta accettata è buona. Ma se hai uno scenario come questo:

 http://www.mydomain.me/index.php?state=California.php#Berkeley 

Puoi trattare l'ancora nominato come una string di query come questa:

 http://www.mydomain.me/index.php?state=California.php&city=Berkeley 

Quindi, accedervi in ​​questo modo:

 $Url = $_GET['state']."#".$_GET['city']; 

Non ricevevo nulla per $_GET["..."] (ad esempio print_r($_GET) dato un arrays vuoto), tuttavia $_SERVER['REQUEST_URI'] mostrato che le cose dovrebbero essere lì. Alla fine si è scoperto che stavo solo andando alla pagina web perché il mio .htaccess lo stava reindirizzando lì (il mio 404 gestore era lo stesso file .php, e avevo fatto un refuso nel browser durante il test).

Cambiare semplicemente il nome significava che lo stesso codice PHP funzionava una volta che il reindirizzamento 404 non stava dando il calcio!

Quindi ci sono modi in cui $_GET può restituire nulla anche se il codice php può essere corretto.

  $Query_String = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] ); var_dump($Query_String) 

Array ([0] => link = http://www.google.com)

Chi non ottiene nulla indietro, penso che deve solo racchiudere il risultato in tag html,

Come questo:

 <html> <head></head> <body> <?php echo $_GET['link']; ?> <body> </html>