Pagina 1 di 3
Rilevamento browser
Inviato: 07/11/2011, 15:56
da lenders
C'è una mod che permette che quando un utente usa IE,Opera,chrome o altri browser che gli esce una scritta che gli avvisa che il forum è solo ottimizzato per firefox?Io sono riuscito a fare una cosa cosi solo per IE:
http://i39.tinypic.com/nfo0g4.jpg
Re: Rilevamento browser
Inviato: 07/11/2011, 16:09
da Micogian
Basta una semplice ricerca su Google "individuare browser".
Ho trovato questo:
Codice: Seleziona tutto
function GetBrowser(){
$browser = array("Internet Explorer" => "MSIE",
"FireFox" => "Firefox",
"Lynx" => "Lynx",
"Opera" => "Opera",
"WebTV" => "WebTV",
"Konqueror" => "Konqueror",
"Bot" => "bot|Google|slurp|scooter|spider|infoseek",
"Netscape" => "Nav|Gold|x11|Netscape",
);
foreach($browser as $chiave => $valore){
if(eregi($valore, $_SERVER["HTTP_USER_AGENT"])){
return $chiave;
}
}
return "Altro";
}
echo GetBrowser();
Re: Rilevamento browser
Inviato: 07/11/2011, 16:14
da lenders
Illuminami,come funziona?Io ho usato un code cosi:
Re: Rilevamento browser
Inviato: 07/11/2011, 16:38
da Micogian
Qui stiamo parlando di PHP.
Fai un semplice file, ad esempio "browser.php" e ci metti il codice postato (mancano i tag)
Codice: Seleziona tutto
<?php
function GetBrowser(){
$browser = array("Internet Explorer" => "MSIE",
"FireFox" => "Firefox",
"Lynx" => "Lynx",
"Opera" => "Opera",
"WebTV" => "WebTV",
"Konqueror" => "Konqueror",
"Bot" => "bot|Google|slurp|scooter|spider|infoseek",
"Netscape" => "Nav|Gold|x11|Netscape",
);
foreach($browser as $chiave => $valore){
if(eregi($valore, $_SERVER["HTTP_USER_AGENT"])){
return $chiave;
}
}
return "Altro";
}
echo GetBrowser();
?>
Se lanci l'url browser.php avrai come risultato il tuo browser.
Ora si tratta di renderlo utilizzabile dal template.
Inserisci la function da qualche parte, es. il file functions.php oppure in index.php, visto che dovrebbe controllare quando apri l'indice.
Si potrebbe anche lasciare come file esterno e nell'index inserire la riga
Devi togliere però la riga
echo GetBrowser();
e sostituirla con
Codice: Seleziona tutto
$template->assign_var(array('BROWSER_COR', GetBrowser()));
Nel template usi la variabile BROWSER_COR:
Codice: Seleziona tutto
<!-- IF BROWSER_COR <> 'FireFox' -->Messaggio<!-- ENDIF -->
Così, a spanne.
Re: Rilevamento browser
Inviato: 07/11/2011, 16:53
da lenders
Ho inserito questo
sotto a:
Codice: Seleziona tutto
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Ma mi da l'errore
Codice: Seleziona tutto
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ')' in C:\xampp\htdocs\graphicforum\browser.php on line 22
Re: Rilevamento browser
Inviato: 07/11/2011, 17:18
da Micogian
Dovrebbe andare così:
Codice: Seleziona tutto
<?php
function GetBrowser()
{
$browser = array(
"Internet Explorer" => "MSIE",
"FireFox" => "Firefox",
"Lynx" => "Lynx",
"Opera" => "Opera",
"WebTV" => "WebTV",
"Konqueror" => "Konqueror",
"Bot" => "bot|Google|slurp|scooter|spider|infoseek",
"Netscape" => "Nav|Gold|x11|Netscape",
);
foreach($browser as $chiave => $valore)
{
if(eregi($valore, $_SERVER["HTTP_USER_AGENT"])){
return $chiave;
}
}
return "Altro";
}
$template->assign_var(array('BROWSER_COR', GetBrowser()));
?>
L'unico dubbio è la posizione, eventualmente sposta l'include in fondo, prima di
// Output page
Re: Rilevamento browser
Inviato: 07/11/2011, 17:26
da lenders
Questo si è risolto,adesso resta il fatto che quando inserisco il code nel template me lo visualizza su tutti i browser e non solo quello che ho scelto,ad esempio opera:
Codice: Seleziona tutto
<!-- IF BROWSER_COR <> 'Opera' --><div style="text-align:center;"><div style="margin-bottom: 10px; background: #b2ccff; padding: 6px; height:auto; border: 2px solid #80aaff; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px;"><span style="font-size: 150%; line-height: 116%;"><span style="font-family:Arial Black;">
<img width="48" height="48" alt="" style="float:left; padding-right:10px;" src="./images/ie.png">
Attenzione!<br />Rilevato uso di Internet Explorer,al momento vi sono problemi che impedicono il corretto funzionamento del forum.<br />Si raccomanda per un uso fluido e senza problemi di usare <a href="http://www.mozilla.org/it/firefox/new/" target="_new"><span style="color:blue;">Mozilla Firefox</a></span>.
</span></a>.</span></span></div></div><!-- ENDIF -->
Re: Rilevamento browser
Inviato: 07/11/2011, 17:35
da Micogian
Ma guarda che "<>" vuol dire "diverso da..."
Infatti io avevo inserito
che stava a significare "se hai un browser diverso da Firefox ...."
Per mettere "uguale a" devi fare così:
Re: Rilevamento browser
Inviato: 07/11/2011, 17:57
da lenders
Allora sono io che non ho capito na mazza.Io per farlo visualizzare solo su IE ho usato questo code:
Mentre se adesso voglio farlo visualizzare solo su opera ho usato questo code:
E non me lo visualizza perchè?
Re: Rilevamento browser
Inviato: 07/11/2011, 23:11
da Micogian
A parte che da come avevi posto il problema sembrava che il Browser corretto fosse Firefox, quindi la cosa più semplice da fare era quella di visualizzare il messaggio a tutti quelli che non hanno Firefox.
Se usi il primo codice che ho postato, quello con l'echo, ti fornisce il nome del tuo browser.
Cambia Browser e vedi cosa ti ritorna. Mi sembra elementare.
E ricordati anche che la function fornisce il nome solo ai browser indicati, altrimenti ritorna "Altri".