Jotkut ovat löytäneet alla olevasta tyylimoottorista aukon, jolla voi lisätä omaa dataa sivulle, mutta se tallentuu vain omiin evästeisiin. Alkuperäinen koodivinkki löytyy täältä.
<?php // Katsotaan onko saatu uusi tyyli, jolloin muuttuja saa arvon 1-5 ja asetetaan uusi eväste if (isset($_GET["style"])) { $expire = time()+60*60*24*30*12; // voimassa vuoden ellei muuteta tai poisteta setcookie("style",$_GET["style"],$expire); $style = $_GET["style"]; } // Tyylieväste löytyi, joten käytetään valittua tyyliä elseif (isset($_COOKIE["style"])) { $style = $_COOKIE["style"]; } // Tyylievästettä ei ole eikä tyyliä ole valittu, joten käytetään oletusta else { $style = "1"; } ?>
No tokihan siinä on aukko, jos tuota saatua muuttujaa $style käyttää suoraan tyyliin $style . ".css". Eli pistää vaikka sallitut tyylitiedostot taulukkoon ja vertailee sit että löytyykö kyseistä tyyliä sieltä. Jos löytyy, printataan kyseinen tyylitiedoston nimi ja jos ei löydy, näytetään vaikka joku oletustyyli. Tai jotenkin muuten, tuo on vaan yks tapa.
En oo oikeen haka tässä PHP:ssa ja jos olisin, olisin varmaan itekin löytänyt aukon. Voiko joku korjata koodia? Antaa vinkkejä?
Sen verran tuota vilkaisin, että tuo tyylinmuuttaminen osoiteriviltä sallii minkänumeroisen tyylin tahansa, vaikka valittavia tyylejä olisi vain viisi.
$_GET -muuttujan saa suoraan osoiteriviltä ilman tuota linkkiä tai alasvetovalikkoa.
Oliko sinulla jotain testi-sivua tästä?
http://www.mandariini.com/styleswitchercookie/ tuolla voi testata
Ainakin seuraavalla tavalla tekstiä saa sivulle. Kannattaa tehdä tuohon koodiin tuon $_GET-muuttujan arvolle tarkistus että käyttäjä ei voi antaa kuin sallitut arvot kuten Olga jo ehdotti
http://www.mandariini.com/styleswitchercookie/index.php?style=22.css%3C/style%3Emoi
Aihe on jo aika vanha, joten et voi enää vastata siihen.