Discussione:
PHP su Netsons
(troppo vecchio per rispondere)
Greg
2016-08-27 07:01:35 UTC
Permalink
Raw Message
Ciao a tutti,
ho un codice php, che iniettato in ogni pagina crea un file di log con data ora di tutte le visite dei vari bot di
google.
Il problema è che questo codice fuziona solo fino alla versione 5.3 di php, se passo alle versioni superiori mi da un
errore di "variabile undefined" alla riga dove testo la variabile $Bot_G che non sia vuota. Per quanto abbia cercato,
non ho trovato che dalla 5.4 in poi bisogna definiere la variabile prima usarla. Quindi dove sta l'errore? E' possibile
che ci sia qualche opzione strana lato Netsons? Grazie in anticipo per ogni info. Sotto c'è il ocdice.


<?php
if (stristr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners')){$Bot_G='AdSense';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot-Image')){$Bot_G='GImage';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot-Mobile')){$Bot_G='GMobile';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot-News')){$Bot_G='GNews';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot-Video')){$Bot_G='GVideo';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$Bot_G='Ggbt';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'AdsBot-Google')){$Bot_G='GQuality';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Google')){$Bot_G='Google;}

if($Bot_G !=""){
$day = date("d.m.Y",time());
$time = date("H:i",time());
$ip = $_SERVER['REMOTE_ADDR'];
$pagina = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$file = "spider_gbt_log.txt";
$file_a = fopen($file, "a");
fwrite($file_a, "$day $time $ip $Bot_G - $pagina \r\n");
fclose($file_a);
}
?>
--
Greg
ciccio
2016-08-27 07:14:35 UTC
Permalink
Raw Message
Greg <***@alicie.com> ha scritto:

CUT
Post by Greg
Il problema è che questo codice fuziona solo fino alla versione 5.3 di
php, se passo alle versioni superiori mi da un
Post by Greg
errore di "variabile undefined" alla riga dove testo la variabile $Bot_G
che non sia vuota. Per quanto abbia cercato,
CUT
Post by Greg
if($Bot_G !=""){
Al posto del confronto hai provato a testare la variabile con un bel "isset"?

Per il PHP esiste il ng apposito cmq eh ;-)
Greg
2016-08-27 07:43:01 UTC
Permalink
Raw Message
Post by ciccio
CUT
Post by Greg
if($Bot_G !=""){
Al posto del confronto hai provato a testare la variabile con un bel "isset"?
No, piu tardi lo provo
Post by ciccio
Per il PHP esiste il ng apposito cmq eh ;-)
A dire il vero avevo cercato, senza vederlo, adesso ho cercato meglio e hai ragione tu: esiste, e già sottoscritto.
grazie
--
Greg
Alessandro Pellizzari
2016-08-27 13:50:44 UTC
Permalink
Raw Message
Per quanto abbia cercato, non ho trovato che dalla 5.4 in poi bisogna
definiere la variabile prima usarla. Quindi dove sta l'errore?
http://php.net/manual/en/function.error-reporting.php

"5.4.0 E_STRICT became part of E_ALL."

Puoi definire la variabile prima degli if, oppure usare

if (!empty($Bot_G)) ...

Bye.

Loading...