Pagina 1 di 1

Impostare messaggio per utenti con IE

MessaggioInviato: sab mar 15, 2008 6:17 pm
da Fred
Salve a tutti, avrei bisogno di capire come posso far comparire un messaggio ai soli utenti che utilizzano IE per visitare il mio sito. Io nella mia homepage ho già lo script php per capire il browser usato e ho intuito che devo usare un IF del tipo
Codice: Seleziona tutto
if MSIE<script>alert('messaggio')</script>
ma non so se è corretto e comunque dove posizionarlo.
Un ringraziamento a tutti quelli che risponderanno
P.S.:mi è venuta un'altra idea, se modificassi in questo script:
Codice: Seleziona tutto
else if(ereg("MSIE"      , getenv("HTTP_USER_AGENT"))) {$Browser = "IE ;(";         }
aggiungendo da qualche parte un "and" e lo script sopra postato?

MessaggioInviato: dom mar 16, 2008 2:10 am
da gialloporpora
Senza usare nessuno script esterno (che è utile se vuoi sniffare l'esatto user agent e OS), se è solo per visualizzare un ad agli IE like:


Codice: Seleziona tutto

<?php
if (preg_match('#MSIE [a-z0-9.]+#i',$_SERVER['HTTP_USER_AGENT'])) {
?>
<div class="browser-ie">
quanto messo qui (HTML) viene visualizzato da browser IE o compatibili (Avant, Maxthon, e robaccia simile)
Questo è più bello:
<a href="http://www.spreadfirefox.com/node&amp;id=201822&amp;t=215"><img border="0" alt="Firefox 2" title="Firefox 2" src="http://sfx-images.mozilla.org/affiliates/Buttons/firefox2/firefox-spread-btn-4.png"/></a>
</div>
<?} ?>
<div>
questo codice HTML viene mostrato a tutti
</div>



non lo ho provato ma sono quasi sicuro che non ho fatto errori [bleh]

Comunque dovrebbe funzionare anche il commenting in HTML
http://www.quirksmode.org/css/condcom.html


Ciao

Il codice HTMl te lo cambi come vuoi, li c'è il mio banner personale di spreadfirefox (quindi ci dovrei anche guadagnare punti [:)] )

MessaggioInviato: lun mar 17, 2008 11:46 am
da Fred
Ok, grazie, il tuo codice funziona! Una sola curiosità:
Codice: Seleziona tutto
'#MSIE [a-z0-9.]+#i'
Che fa?
Codice: Seleziona tutto
[a-z0-9.]+#i
A che serve?
Grazie di tutto

MessaggioInviato: lun mar 17, 2008 2:06 pm
da gialloporpora
Fred ha scritto:Ok, grazie, il tuo codice funziona! Una sola curiosità:
Codice: Seleziona tutto
'#MSIE [a-z0-9.]+#i'
Che fa?
Codice: Seleziona tutto
[a-z0-9.]+#i
A che serve?
Grazie di tutto


si, è una regex
http://it.wikipedia.org/wiki/Regex

tradotto:
se l'user agent contiene il pattern fra # # allora è IE, la parte:
[a-z0-9]+ serve per trovare la versione, nel tuo caso la puoi togliere, non cambia nulla, il flag "i" vuol dire ignorecase (es msie = MSIE = mSiE" ...), in realtà è quasi sempre in maiuscolo, ma non si sa mai....

Ciao

MessaggioInviato: lun mar 17, 2008 2:12 pm
da Fred
Ok, grazie per la delucidazione.

MessaggioInviato: lun mar 17, 2008 9:47 pm
da Fred
Un'ultima cosa: io ho creato lo script
Codice: Seleziona tutto
<?php
if (preg_match('#MSIE [a-z0-9.]+#i',$_SERVER['HTTP_USER_AGENT'])) {
?>
<div class="browser-ie">
<script>alert('testo')</script>
</div>
<?} ?>

Il fatto è che io al posto di testo ho link ed immagini ma nel popup mi viene visualizzato il codice (<a href="blablabla.html">testo linkato</a>).
Come posso fare?
Grazie a tutti!

MessaggioInviato: lun mar 17, 2008 9:55 pm
da gialloporpora
Non puoi mettere in un alert del codice HTML.
Se vuoi puoi aprire un popup e nel popup si puoi usare codice HTML, vedi la documentazione javascript:
http://flash.html.it/guide/lezione/2921 ... una-popup/

Però, se usi Javascript per mostrare il popup, è eccessivo usare PHP per fare il detect del browser, forse è meglio fai tutto via javascript.
Ciao

MessaggioInviato: lun mar 17, 2008 10:31 pm
da gialloporpora
Una cosa del genere funziona solo con Javascript, però è possibile che vecchi IE non vengano trovati da questo codice:

Codice: Seleziona tutto
<script type="text/javascript">
re= new RegExp("msie","i");
if (navigator.userAgent.search(re) != -1) alert('ciao maledetto  IE');
</script>


Ah, se Javascript è disattivato, ovviamente, non funziona.

Ciao

MessaggioInviato: mar mar 18, 2008 7:16 am
da ste_95
Perché non fare tutto in PHP? La rilevazione del browser la lasci così com'è, ma per stampare a video usi la funzione echo.

MessaggioInviato: mar mar 18, 2008 11:00 am
da gialloporpora
ste_95 ha scritto:Perché non fare tutto in PHP? La rilevazione del browser la lasci così com'è, ma per stampare a video usi la funzione echo.


perché Fred vuole aprire un popup, anche secondo me è meglio un messaggio nella pagina.

echo non serve, basta inserire l'HTML all'interno del ciclo if e chiuderlo poi (come sopra), così si risparmiano un sacco di insulti vari per inserire i " ' negli echo.
Ciao

MessaggioInviato: mar mar 18, 2008 1:23 pm
da Fred
gialloporpora ha scritto:Una cosa del genere funziona solo con Javascript, però è possibile che vecchi IE non vengano trovati da questo codice:

Codice: Seleziona tutto
<script type="text/javascript">
re= new RegExp("msie","i");
if (navigator.userAgent.search(re) != -1) alert('ciao maledetto  IE');
</script>


Ah, se Javascript è disattivato, ovviamente, non funziona.

Ciao

Ma qualcuno ha ancora IE vecchi? Voglio dire, se si aggiorna automaticamente con il sistema operativo tutti dovrebbero avere almeno la 6... anche se gli javascript non mi piacciono. Allora pensavo, anziché mettere un popup è possibile reindirizzare gli utenti IE su un'altra pagina?
Grazie dell'aiuto che mi state dando

MessaggioInviato: mar mar 18, 2008 3:00 pm
da gialloporpora
Una roba del genere ?

Codice: Seleziona tutto
<? if (preg_match('#msie#i',$_SERVER['HTTP_USER_AGENT'])) header("location:http://sito.com "); ?>


comunque io te la sconsiglierei, così facendo chi usa IE il tuo sito proprio non lo vede, a meno che non risolvi impostando un qualche cookie......
Ciao

MessaggioInviato: mer mar 19, 2008 11:42 pm
da Fred
Mmm la preclusione totale del sito no. Penso che rinuncerò a linkare il testo... d'altroned un copia-incolla non ha mai ucciso nessuno [;)] . Grazie a tutti per l'aiuto che mi avete dato. [ciao]