- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Bloccare stile selezionato
-
Bloccare stile selezionato
Ciao, in questo mio sito: http://deriu.altervista.org/ , c'è la possibilità dal menu di destra di poter cambiare la grafica alla pagina, però vorrei sapere come si fa una volta cambiata per tenerla fissa come per il sito di http://it.yahoo.com/.
Grazie.
-
Per fare usare ad ogni utente sempre lo stesso stile devi usare i cookie. Ne memorizzi uno sul pc dell'utente per ricordarti lo stile che preferisce e al caricamento della pagina fai un controllo sul cookie per vedere se ne usa uno diverso da quello standard.
Se fai il caricamento del cookie in ogni pagina del sito la modifica sarà personalizzata per ogni utente a prescindere dalla posizione del sito in cui si trova.
-
Ti sposto in Scripting
-
Shad, mi puoi dire come si fa?
-
Questo è con php http://atomsurfer.altervista.org/xhtml_e_css/cambiare_css_php.php
-
Shad ho provato a seguire quel tutorial, ma non mi cambio nulla, vedi un po:
-
Adesso non ho tempo, appena ho un attimo gli do un'occhiata.
Intanto magari postami il sorgente delle pagine php che hai creato.
-
Bè il codice è uguale a quello richiesto, comunque il codice della pagina stili è:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Documento senza titolo</title> <? $CSS=$_COOKIE['stile']; echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"www.microveicoli.altervista.org/"; if (!$CSS){ echo "base.css\""; }else{ echo $CSS.".css\""; } echo " />"; ?> </head> <body> <form action="setcookie.php" method="get"> <p> <select name="set"> <option value="default" selected="selected">base</option> <option value="altro">altro</option> </select> <input type="submit" value="Invio" /> </p> </form> <p>fsgdfiohigdhpgpopofpojopj</p> <table width="444" height="251" border="1"> <tr> <td>yuituy</td> <td>oièiè</td> <td> </td> </tr> <tr> <td>yip</td> <td>ièpè</td> <td> </td> </tr> <tr> <td> </td> <td> </td> <td>opèop+</td> </tr> <tr> <td> </td> <td> </td> <td>io+o+</td> </tr> </table> <p> </p> </body> </html>
Poi il codice della pagina setcookie.php (per salvare i cookie):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Documento senza titolo</title> </head> <body> <? $stile = $_GET['set']; $referer = $_SERVER['HTTP_REFERER']; header("Location: $referer"); setcookie("stile", $stile, time()+43200, '/'); header("Location: $referer"); ?> </body> </html>
Poi ho creato due fogli css, quello "base" e quello "altro", se vuoi ti posto pure i codici css che ho utilizzato per prova.
-
Emh, è passato qualche giorno, nessuno che mi può almeno guardare se il codice è corretto??
-
A me sembra che questa pagina che ci hai mostrato funzioni:
http://microveicoli.altervista.org/stili.php
Nell'HTML della pagina, effettivamente carica lo stile che viene selezionato, e se lo ricorda anche se chiudo la finesta e carico nuovamente il sito... non si vedono cambiamenti di sorta sulla grafica della tabella ma quello dipende dai css.
-
Sei sicuro che funzioni?
(Io uso firefox, forse è per quello che non fa), comunque il css base dovrebbe fare il testo bianco, invece rimane nero, è per quello che non credo funzioni, ora provo ad inserire pure sfondi diversi per testare.
-
nel stile base, ho aggiunto: background-color: #C1CCDD;
P.S. ora provo con IE se funziona, forse è il browser.
-
Allora... quello che intendevo è che la tabella non cambia assolutamente (rimane identica) ma se prendo l'html della pagina mi dà i due css a seconda di quale ho scelto...
questo me lo dà quando metto altro (anche se chiudo il browser e lo riapro e funziona anche con firefox)
<link rel="stylesheet" type="text/css" href="www.microveicoli.altervista.org/altro.css" />
Questo me lo da quando seleziono base (sempre con tutti i browser e anche se chiudo e riapro dopo aver selezionato una volta l'opzione)<link rel="stylesheet" type="text/css" href="www.microveicoli.altervista.org/base.css" />
Credo che ci siano dei problemi nel CSS per questo non vedi differenze di sorta... ora faccio dei controlli poi ti posto il risultato
-
TROVATO... l'indirizzo del css non l'hai messo assoluto...
devi fare href="http://www.microveicoli.altervista.org/base.css "
ALtrimenti lui lo considera un indirizzo relativo... prova così funziona!
-
Ho modificato i link del form, se sono quelli che erano da modificare, ma nulla.
-
Rimetti i "value" della select come erano prima, quello che devi cambiare è qui:
<? $CSS=$_COOKIE['stile']; echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"**http://**www.microveicoli.altervista.org/"; if (!$CSS){ echo "base.css\""; }else{ echo $CSS.".css\""; } echo " />"; ?>
fai una prova e dimmi come viene
-
Ok, ti ringrazio, come puoi vedere funziona, ora lo testo su una pagina completa che ho fatto e poi ti faccio sapere, anche se per ora funziona tutto bene:
http://microveicoli.altervista.org/stili.php
Ciao e grazie ;).
-
Figurati! Anzi grazie a te ho cominciato a dare un occhiata al php che non lo avevo mai usato!!! Chissa che non mi decida ad impararlo