[PHP] $_GET non preleva variabile nell’URL

paolofiorito

Nuovo Utente
26 Mar 2019
4
0
1
Mi scuso in anticipo per i termini impropri ma sono alle prime armi.
Ho creato una pagina che passa nell’URL la geolocalizzazione in due variabili (var1 e var2).
Quando tento di raccogliere le variabili con $_GET, in una pagina PHP per scriverle in un file “visite.txt” non vengono scritte e si verifica un
Undefined index (registrato su error_log.txt).
Tutte le altre vengono regolarmente scritte sul file txt compreso l’intero indirizzo URL che evidenzia le due variabili valorizzate dopo il ? e separate dalla &.
Ho finito i neuroni senza riuscire a capire... qualcuno può aiutarmi?
Questo è il codice della pagina PHP:
PHP:
<?php
$longi = $_GET["var1"];
$latid = $_GET["var2"];
$ip = $_SERVER['REMOTE_ADDR']?:($_SERVER['HTTP_X_FORWARDED_FOR']?:$_SERVER['HTTP_CLIENT_IP']);
$hostname = gethostbyaddr($ip );
$referer = $_SERVER['HTTP_REFERER'];
$browser = $_SERVER['HTTP_USER_AGENT'];
ini_set( 'date.timezone', 'Europe/Rome' );
$fp = fopen("visite.txt","a-");
fwrite($fp, "***");
fwrite($fp, $latid);
fwrite($fp, "*****");
fwrite($fp, $longi);
fwrite($fp, $ip );
fwrite($fp, " ");
fwrite($fp, $hostname );
fwrite($fp, " ");
fwrite($fp, $referer );
fwrite($fp, " ");
fwrite($fp, $browser );
fwrite($fp, $_GET['pagename']);
fwrite($fp, " ");
fwrite($fp, date('d M Y'));
fwrite($fp, " ");
fwrite($fp, date("H:i:s"));
fwrite($fp, "\r\n");
fclose($fp);
?>
 
Ultima modifica di un moderatore:
Racchiudi il tuo codice in questi due php /php con parentesi [] altrimenti sul forum si capisce poco
Per prendere la variabile get significa che nella barra delle url tu hai questo:
http://www.sito.it?var1=12345&var2=12345
se non hai questo non potrai mai prendere il valore di get:
Ad ogni modo da dove vuoi prenderla fai:

PHP:
if(isset($_GET['var1'] && isset($_GET['var2']))){
$var1 = $_GET['var1'];
$var2 = $_GET['var2']
}
 
@paolofiorito
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 
@paolofiorito
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
Grazie e scusate per non aver rispettato le regole. Sto provando il codice è vi aggiorno se riesco a risolvere.
 
Buongorno. Ho apportato alcune modifiche come suggerito ma il risultato non cambia.
Posto nuovamente il codice php modificato:
PHP:
<?php

    $var1 = "";
    $var2 = "";
    
if(isset($_GET['var1']) && isset($_GET['var2'])){
    $var1 = $_GET['var1'];
    $var2 = $_GET['var2'];
}else {
  '';
}
$ip = $_SERVER['REMOTE_ADDR']?:($_SERVER['HTTP_X_FORWARDED_FOR']?:$_SERVER['HTTP_CLIENT_IP']);
$hostname = gethostbyaddr($ip );
$referer = $_SERVER['HTTP_REFERER'];
$browser = $_SERVER['HTTP_USER_AGENT'];
ini_set( 'date.timezone', 'Europe/Rome' );
$fp = fopen("visite.txt","a-");
fwrite($fp, "***************************************");
fwrite($fp, " Latitudine: ");
fwrite($fp, $var1);
fwrite($fp, " Longitudine: ");
fwrite($fp, $var2);
fwrite($fp, " Indirizzo IP: ");
fwrite($fp, $ip );
fwrite($fp, " Host:  ");
fwrite($fp, $hostname );
fwrite($fp, " URL di provenienza: ");
fwrite($fp, $referer );
fwrite($fp, " Browser: ");
fwrite($fp, $browser );
fwrite($fp, " ");
fwrite($fp, date('d M Y'));
fwrite($fp, " ");
fwrite($fp, date("H:i:s"));
fwrite($fp, "\r\n");
fclose($fp);
?>

vsitando la pagina e premendo il risultato che ottengo sul fle visite.txt é il seguente:
Codice:
*************************************** Latitudine:  Longitudine:  Indirizzo IP: XXX.XXX.XX.XXX Host:  net-XXX-XXX-XX-XXX.cust.dsl.teletu.it URL di provenienza: https://www.miosito.it/test/index.htm?var1=99.5157376&var2=99.9364864 Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36 01 Apr 2019 15:51

come si vede dall'output, l'URL di provenienza contiene correttamente le variabili "var1" e "var2" che però GET non preleva.
Non risultano errori PHP (ho anche dichiarato le variabili "var1" e "var2" all'inizio per evitare ogni errore).

Ho pensato di raccogliere i valori gestendo con PHP la stringa dell'URL di provenienza ma prima di fare questo volevo capire come mai non riesco ad utilizzare GET.
Esiste la possibilità che qualche impostazione del server limiti GET?

Spero nell'aiuto di qualcuno. Grazie.
 

Discussioni simili