Ho trovato una soluzione, che non necessita di dicorrere a javascript, in modo da funzionare anche con chi ha su il lettore flash ma ha javascript disabilitato:
Inizio pagina: controllo che ci sia un cookie. Se non c'é, intanto piazzo una bella variabile cookie swf=no ed una variabile locare swf="".
Se c'é, la var locale si piglia il valore da cookie e non ci penso più.
-- home.php --
codice:
<?php
$swf="";
if (isset($_COOKIE)&& !empty($_COOKIE)){
$swf = isSet($HTTP_COOKIE_VARS["swf"]) ? $HTTP_COOKIE_VARS["swf"] : $swf;
}else{setcookie ("swf","no");};
Se la var locale swf é nulla, in una parte della pagina che mi aggrada piazzo un bel filmatino flash 1x1 pixel che, con un loadvariables mi apre la pagina detector.php
-- home.php --
codice:
<?php if ($swf ==""){ // SWF detector ?>
<div style="position:absolute">
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="1" HEIGHT="1" id="detector" ALIGN=""><PARAM NAME=movie VALUE="detector.swf"> <PARAM NAME=menu VALUE=false> <PARAM NAME=quality VALUE=low> <PARAM NAME=wmode VALUE=transparent> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="detector.swf" menu=false quality=low wmode=transparent bgcolor=#FFFFFF WIDTH="1" HEIGHT="1" NAME="detector" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED></OBJECT>
</div>
<? }; ?>
-- detector.swf --
codice:
loadVariablesNum("detector.php", 0);
Indovinate che c'é nella pagina detector.php? un bel cookie caldo caldo!
-- detector.php --
codice:
<?php setcookie ("swf","si"); ?>
A questo punto, dalla prossima apertura della pagina, il server sa già se ho il lettore flash o no.
Se poi si vuole stafare, si aggiunge un actionscript che sniffa anche la versione del lettore in possesso, e al posto di swf=si si avrà swf=6, swf=7 eccetera (prego chi sviluppa di postare il codice)
E' la soluzione migliore che ho trovato.
Il problema é che il server può gestire questa informazione solo dalla seconda apertura della pagina: nel caso si arrivi da link esterno (motore di ricerca) la prima pagina vista sarà senza animazione. Pazienza.
Qualcuno ha una soluzione migliore?