Pagina 1 di 1

[PHP] Visualizzare Info del Visitatore sul proprio sito

MessaggioInviato: mar lug 24, 2007 4:45 pm
da Fred
Una domanda a M@ttia: mi piace molto il box con le info del visitatore in alto a destra nel tuo sito, come faccio a metterlo anche nel mio sito? Se puoi, oltre al codice, vorrei che tu mi spiegassi anche come si ragiona per arrivare a quel codice. Grazie

P.S. : Ma come si integra uno script php in una pagina creata in php?

Edit:
Ho creato home in php e con questo codice
Codice: Seleziona tutto
echo $REMOTE_ADDR;

sono riuscito ad impostare la visualizzazione dell'IP. Purtroppo non riesco a fare nulla per quanto riguarda host e browser [uhm] , si limita a visualizzarmi il codice che ho inserito [uhm] [uhm] . Può dipendere dal fatto che ho un Database Mysql che fa 300queries/h?

MessaggioInviato: mar lug 24, 2007 4:54 pm
da M@ttia
Quello è un Box che creo io dinamicamente in PHP (l'immagine del tipo del cartello invece l'ho rubata ad un noto servizio [std]).

Nell'HTML della pagina ci metto:
Codice: Seleziona tutto
      <ul class="Elenco">
        <li><?php echo '<span class="u">IP</span>: '      . $IP; ?></li>
        <li><?php echo '<span class="u">Browser</span>: ' . $Browser; ?></li>
        <li><?php echo '<span class="u">Host</span>: '    . $Host; ?></li>
      </ul>

(span class e ul class sono definiti nel mio CSS, ma è solo x "grafica").

Mentre in uno script di PHP (io lo metto in un altro file perché poi contiene cose "generali" che caricano ogni pagina, ma puoi metterla nella pagina stessa se preferisci):

PHP:
Codice: Seleziona tutto
 // Per Determinare il Browser: ----------------------------------------------------------------------------------------

  if     (ereg("Firefox"   , getenv("HTTP_USER_AGENT"))) {$Browser = 'FireFox';       }
  else if(ereg("Opera"     , getenv("HTTP_USER_AGENT"))) {$Browser = 'Opera';         }
  else if(ereg("Safari"    , getenv("HTTP_USER_AGENT"))) {$Browser = "Safari";        }
  else if(ereg("Konqueror" , getenv("HTTP_USER_AGENT"))) {$Browser = "Konqueror";     }
  else if(ereg("WebTV"     , getenv("HTTP_USER_AGENT"))) {$Browser = "WebTV";         }
  else if(ereg("MSIE"      , getenv("HTTP_USER_AGENT"))) {$Browser = "IE ;(";         }
  else if(ereg("Lynx"      , getenv("HTTP_USER_AGENT"))) {$Browser = "Lynx";          }
  else if(ereg("Avant"     , getenv("HTTP_USER_AGENT"))) {$Browser = 'Avant Browser'; }
  else if(ereg("msnbot"    , getenv("HTTP_USER_AGENT"))) {$Browser = 'MSN Bot';       }
  else if(ereg("W3C"       , getenv("HTTP_USER_AGENT"))) {$Browser = 'W3C Validator'; }
  else if(ereg("Yahoo"     , getenv("HTTP_USER_AGENT"))) {$Browser = 'Yahoo Crawler'; }
  else if((ereg("Nav"      , getenv("HTTP_USER_AGENT"))) || (ereg("Gold" , getenv("HTTP_USER_AGENT"))) ||
         (ereg("X11"       , getenv("HTTP_USER_AGENT"))) || (ereg("Mozilla" , getenv("HTTP_USER_AGENT"))) ||
         (ereg("Netscape"  , getenv("HTTP_USER_AGENT"))) ) {$Browser = "Mozilla"; }
  else   {$Browser = getenv("HTTP_USER_AGENT");}


  // Per Determinare l'Host (ISP):  -------------------------------------------------------------------------------------

  $Host =''; $HostOrig = gethostbyaddr($REMOTE_ADDR);
  $PezziHost = explode("." , $HostOrig);
  $PezziHost = array_reverse($PezziHost);
  $Host = $PezziHost[1] . '.' . $PezziHost[0];

  // Per Determinare l'IP: ----------------------------------------------------------------------------------------------

   if($_SERVER['HTTP_X_FORWARDED_FOR'] != '') { $IP = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $IP = $REMOTE_ADDR; };



Il codice lo integri, come nell'es. html sopra, fra i tag
Codice: Seleziona tutto
<?php  ...CODICE... ?>

[^]

MessaggioInviato: mar lug 24, 2007 5:13 pm
da M@ttia
Allora,

  • Crei home.php (non più home.html , poiché contiene codice)
  • Inizi subito (o comunque rel. in cima al codice, anche addirittura alla prima linea, prima dell'html se vuoi) con il mio secondo box qui sopra, fra i tag <?php ... '>, ovvero:

    Codice: Seleziona tutto
    <?php
    // Per Determinare il Browser:
    ...
    ...
    ...
       if($_SERVER['HTTP_X_FORWARDED_FOR'] != '') { $IP = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $IP = $REMOTE_ADDR; };
    ?>


  • Scrivi il tuo HTML normale, poi nel punto dove vuoi inserire le 3 Info, fai:

    Codice: Seleziona tutto
     <ul>
       <li><?php echo 'IP: '      . $IP;       ?> </li>
       <li><?php echo 'Browser: ' . $Browser;  ?> </li>
       <li><?php echo 'Host: '    . $Host;     ?> </li>
     </ul>


Il Database MySQL non viene nemmeno usato, quindi ovviamente non c'entra nulla...

MessaggioInviato: mar lug 24, 2007 6:01 pm
da Fred
Allora, è 1/2 ora che provo, fin quando inserisco il codice
Codice: Seleziona tutto
 <ul>
   <li><?php echo 'IP: '      . $IP;       ?> </li>
   <li><?php echo 'Browser: ' . $Browser;  ?> </li>
   <li><?php echo 'Host: '    . $Host;     ?> </li>
 </ul>

nella pagina in home.php è tutto ok. quello che evidentemente mi è poco chiaro è come utilizzare i codici che "compilano" le stringhe browser, ip e host. Che io provi ad includerli da file esterno od a scriverli nella pagina direttamente (che è quello che vorrei fare) poi non mi si compilano i campi quando accedo alla pag: mi rimangono i campi vuoti.

MessaggioInviato: mar lug 24, 2007 6:06 pm
da M@ttia
Dunque, il Box "lungo" in cima alla pagina dà un valore alle 3 variabili $IP, ecc. e sotto poi le stampa dove servono (Ovviamente è quindi importante che il blocco "lungo" vada prima che vengano stampate).

per provare se funzionano, all'inizio (blocco lungo di php), prima del ?> prova a scrivere:

echo $IP;

e vedi se lì lo stampa (sarà in cima alla pagina...).
(ev. mostrami il tuo codice).

MessaggioInviato: mar lug 24, 2007 6:08 pm
da eDog
Nella pagina home.html prima del codice che ti ha scritto M@ttia metti questo



Codice: Seleziona tutto
<?php include("home.php"); ?>

MessaggioInviato: mar lug 24, 2007 6:19 pm
da Fred
Grazie a tutti!!! Ci sono (anzi siamo [;)] ) riusciti! Ora capisco, mettevo il blocco grande sotto quello piccolo [acc2] . Comunque ora ho capito come funziona. Grazie nuovamente a tutti. [applauso+] [applauso+] [applauso+] [applauso+]

MessaggioInviato: mar lug 24, 2007 6:24 pm
da eDog
Fred ha scritto: mettevo il blocco grande sotto quello piccolo [acc2] ]


[acc2] [acc2]


Beh...sbagliando s'impara... [sh] [^]

MessaggioInviato: mar lug 24, 2007 6:57 pm
da M@ttia
M@ttia ha scritto:[list]
[*]Inizi subito (o comunque rel. in cima al codice, anche addirittura alla prima linea, prima dell'html se vuoi) con il mio secondo box qui sopra
[cry+]

(solitamente si fa in uno script php a parte, che si include nell'head...)