Vi è mai capitato di entrare in siti che vi permettono di scegliere vari "modelli" di formattazione (riguardo a colore di sfondo, di scrollbar, di testo, e cose del genere)? A me personalmente sì e devo ammettere che benchè sia una cosa nn indispensabile può pemettere una maggiore interazione tra il sito e l'utente.
Allora cosa vogliamo noi che succeda? Esattamente questo: che nel nostro sito ci sia una pagina che permetta all'utente di scegliere uno "stile" e mantenerlo per tutto il tempo che l'utente lo visita (anche dopo giorni). La soluzione al problema è molto semplice, ci basta conoscere bene i CSS (cascading style sheet o fogli di stile) ed i cookie (piccoli file di txt che si memorizzano nel PC del visitatore e tengono nota di particolari cose a noi care).
Capito ciò che è necessario, bisogna spiegare ora qual'è il funzionamento degli script usati.
File 1.css
Allora come abbiamo detto, alla base di tutto, ci deve essere una buona programmazione del sito sfruttando l'ausilio dei fogli di stile (CSS), vediamone uno (non sto qui a spiegare cosa sia, in quanto spero abbiate visitato il link da me sopra consigliato)
codice:
a:link { text-decoration: none; color: #00FFFF; font-family: Verdana;
font-size: 10 pt; font-weight: bold }
a:visited { text-decoration: none; color: #00FF00; font-family: Verdana;
font-size: 10 pt; font-weight: bold }
a:hover { text-decoration: underline; color: #FFFFFF; font-family: Verdana;
font-size: 10 pt; font-weight: bold }
.title { font-family: Verdana; font-size: 10 pt; color:
#FFFFFF; font-weight: bold }
.testo { font-family: Verdana; font-size: 10 pt; color:
#FF0000; font-weight: normal }
body {
background-color:#000000;
scrollbar-face-color: #FFFFFF;
scrollbar-highlight-color: #FF00FF;
scrollbar-3dlight-color: #606C88;
scrollbar-darkshadow-color: #606C88;
scrollbar-shadow-color: #000000;
scrollbar-arrow-color: #606C88;
scrollbar-track-color: #FF0000;}
Realizzato il css numero 1 (1.CSS), si passerà a realizzare gli altri CSS necessari, avendo cura di numerarli in maniera progressiva.
File sceglistile.php
Ora vi starete chiedendo, arrivati a questo punto: "Ma una volta che ho 10 css come faccio a far scegliere ad ogni utente il suo e farglielo mantenere per un periodo di tempo determinato?". Ed è qui che viene il bello, infatti ora vedremo quant'è necessario il PHP e i Cookie.
Allora la prima cosa che avremmo cura di fare sarà la cosidetta amministrazione (che poi amministarzione è un parolone perchè è solo una misera scelta da un select).
Apriamo quindi il nostro Editor PHP preferito e scriviamo quanto segue:
Codice PHP:
<? if ($controllo){
setcookie ('cssnum', $num, time()+1800, '/', '', 0 );
echo"Ti è stato inviato un cookie su cui è tenuta nota del css da te scelto,
cioè il numero $num.
<a href=\"vedi.php\">Clicca qui</a> per vedere la pagina, con il nuovo CSS.
Dopo ritorna qui e rieffettua una nuova selezione in modo da
vedere i cambiamenti";}
?>
<form method=POST action=<?echo"$PHP_SELF"?>>
<select size=1 name=num>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select><input type=submit value=OK name=controllo>
Ma vediamo bene come funziona questo script.
Allora:
codice:
<input type=submit value=OK name=controllo>
come potete ben vedere abbiamo deciso di chiamare il form, controllo.
Anche se questa può sembrarvi una cosa banale, ha molta importanza, infatti se fate riferimento al file di sopra al prmo rigo vediamo scritto:
Codice PHP:
if($controllo){//CONTROLLI}
questo if ci permette di verificare se il form è stato già inviato (cliccando su OK), e nel caso affermativo setta un cookie:
Codice PHP:
setcookie ('cssnum', $num, time()+1800, '/', '', 0 );
dove la variabile si chiama cssnum, il valore è uguale a $num (che neanche a farlo apposta è il nome del select) e ha come durata 30 minuti (1800/60=30).
A questo punto, come avrete potuto ben capire, se nel select ho cliccato su 1, nel cookie avrò il valore 1 e così via.
Per il resto è sufficiente dire che dobbiamo avere tante scelte quanti sono i numeri dei CSS quindi se ne ho 2 avrò:
codice:
<option>1</option>
<option>2</option>
se ne ho 3:
codice:
<option>1</option>
<option>2</option>
<option>3</option>
e così via.
File vedistile.php
Ora siamo a conoscenza che nel computer c'è un cookie che ha come valore il numero scelto dal select, come abbiamo detto prima, le scelte nel select devono essere uguali al numero dei CSS esistenti quindi:
se ho scelto 1 nel select, la mia navigazione dovrà continuare con il CSS n°1 (1.CSS).
Ora si pone l'interrogativo: "Come fare a richiamare il CSS che è nel cookie e non sempre lo stesso?". Semplice anzichè mettere un richiamo fisso al css, del tipo:
Codice PHP:
echo"<link rel=stylesheet type=text/css href=css/1.CSS>";
ne metteremo uno che al posto del nome, abbia una variabile che corrisponde al numero inserito nel cookie.
Questo è lo script completo:
Codice PHP:
<?
if(!isset($cssnum)){$cssnum = 1;}
if(isset($cssnum)) {
echo"<link rel=stylesheet type=text/css href=css/$cssnum.CSS>";
$esempio="In questa pagina è stato caricato il CSS numero $cssnum
potete notare la differenza guardando lo sfondo, le scrollbar laterali
il testo e il link nelle pagine";
echo"<font class=title>$esempio</font>
";
echo"<font class=testo>$esempio</font>
";
echo"<a href=\"http://www.php.net\">$esempio</a>";}
?>
Allora, analizziamo un attimo il codice:
Codice PHP:
if(!isset($cssnum)){$cssnum = 1;}
Con questa riga di codice si esegue un operazione molto semplice, cioè:
se il cookie nn è settato, quindi nn esiste, rendi $cssnum uguale a 1 (in questo modo il file 1.css diventa lo stile di default, cioè quello che verrà usato nel caso in cui nessun altro stile è stato scelto).
Alla seconda riga:
Codice PHP:
if(isset($cssnum)) {
echo"<link rel=stylesheet type=text/css href=css/$cssnum.CSS>";}
Se invece il cookie è settato, richiama il css $num.css, (dove ricordiamo che $num è il numero settato nel cookie che dipende dal numero scelto nel select).
Per il resto nn c'è nient'altro da spiegare, e con la speranza che questo mini-tutorial vi possa essere utile per il futuro vi saluto
PS: Se voi altri li avete fatti a notte inoltrata io l'ho fatto con 38.5 di febbre, quindi nn linciatemi se ho sbagliato qualcosa.
Inoltre ecco i link per vedere gli esempi:
sceglistile.php
vedistile.php