Autor | Zpráva | ||
---|---|---|---|
leprra Profil |
#1 · Zasláno: 21. 12. 2006, 11:05:50
Zdravím přítomné - mám prosbu o radu ohledně přepínače stylů
tvořím ho pomocí návodu na stránkách http://www.alistapart.com/articles/phpswitch/ to znamená 1. vytvořím cosi co si zapíše do cookies - můj vybranej styl ---------------------------------------------------------------------- -- switcher.php <?php setcookie ('sitestyle', $set, time()+31536000, '/', 'yourdomain.com', '0'); header("Location: $HTTP_REFERER"); ?> (((yourdomain.com = mojestranky.cz)))) 2. ve stránkách naklobu něco pro výběr žádaného stylu ----------------------------------------------------------------- <form action="switcher.php" method="post"> <select name="set"> <option value="default" selected>Default</option> <option value="red">Crazy Red</option> </select> <input type="submit" value="Change Style"> </form> (((tomu rozumím takto: vyberu styl >> pošle se to do switcher.php >> ten to zapise do cookies a ja musím mít na stránkách uložený soubory default.css / red.css / experiment.css - aby to mělo z čeho vybrat))) tohle všechno funguje protože kouknu do cookies a vidím tam zapsaný zvolený hodnoty 3. musím do hlavičky všech stránek umístit něco co detekuje ono cookies ----------------------------------------------------- <link rel="stylesheet" type="text/css" media="screen" title="User Defined Style" href="<?php echo (!$sitestyle)?'defaultstyle':$sitestyle ?>.css" /> no a tady bude asi nějaká zlá věc, neboť.. se mi stránky nenačtou ani s tím stylem default - zkrátka z?stávají bez stylu (nevím přesně co definuje to sitestyle - .. (zkoušela uložit jako css defaultstyle.css a taky nic) => mohl by mi někdo do situace vnésti trochu světla - zdá se že mi to nějako nemůže ten styl najít - mám ho danej hned vedle indexu.html dekuji moc-li Leprra |
||
krteczek Profil |
#2 · Zasláno: 21. 12. 2006, 11:15:40
jasně:-) register_globals... místo $sitestyle použij $_COOKIE['sitestyle'], mělo ba to fungovat
hm koukám že cookie asi bude nastavena, ale nebude v ní nic... skus dát echo $_COOKIE['sitestyle']; co to vypíše? Podle dosavadního předpokládám že nic :-( krteczek |
||
leprra Profil |
#3 · Zasláno: 21. 12. 2006, 11:37:49
- mno.. tak jsem přišla na to, že sem do souboru nenapsala .php - je tam <? ?> - tak to je jasný a funguje to
- a přepíná přesně podle návodu nicméně ja sem nechtěla u každě stránky příponu .php koukala sem že pixy - to děla tak, že má styl.php a stránky může mít v klidu pořád v html (http://www.pixy.cz/pixylophone/2003_11_archiv.html#1068200165 ) TEDY: když bych chtěla zachovat návod výše popsanej (http://www.alistapart.com/articles/phpswitch/ ) musím z každé stránky odkazovat na styl.php a do stranky styl.php - umístím něco co mi zjišťuje to cookies a najde podle toho styl => jde tam použít to od pixyho? - (nebo to jestě nějak zaonačit?) $css = $HTTP_COOKIE_VARS['Moje-CSS-Cookie']; if (!$css) $css = 'default.css'; header ("Location: $css"); die(); ?> diky za radu Leprra |
||
rabbit Profil |
#4 · Zasláno: 21. 12. 2006, 14:42:01
Moc se mi nechce věřit tomu, že má pixy všechny stránky statické a tedy opravdu ".html". Spíš bych to viděl na rewrite_mode.
Oddělení definice stylu do externího souboru má imho 2 funkce. První je oddělení obsahu od formy a druhou je snížení datové náročnosti. Tzn. soubor se styly se "kešuje", nestahuje se při každém načtení stránky ze serveru. Pokud však budeš řešit změnu stylů v externím css souboru "styl.php", nemůžeš ho "kešovat", musíš ho natahovat pokaždé. |
||
error414- Profil * |
#5 · Zasláno: 21. 12. 2006, 16:17:21
1.
$css = $HTTP_COOKIE_VARS['Moje-CSS-Cookie']; je zastaraly zapis pouzivej $_COOKIE 2. setcookie ('sitestyle', $set, time()+31536000, '/', 'yourdomain.com', '0'); header("Location: $HTTP_REFERER"); yourdomain.com misto tohodle patri domena na ktere to jede, nemusi byt vyplneno, a ta nula take bez secure je vychozi nastaveni. 3. Postup pro ladeni: stahni si rozsireni do FF na prohlizeni cookies, potom se podivej jestli cookies byl ulozena. A jakou ma hodnotu. Pokud je ulozena spravne zkontroluj jestli je pristupna v php scriptu. 4. header("Location: $HTTP_REFERER"); je slepe duverovani http protokolu ze nam klent posle svuj referer, napriklad kerio referer filtruje. Proto je lepsi v pripade absence refereru presmerovat na nejakou defaultni stranku header("Location: ".$target = isset($HTTP_REFERER) ? $HTTP_REFERER : "index.php"); |
||
Časová prodleva: 9 měsíců
|
|||
Palmik Profil * |
#6 · Zasláno: 18. 9. 2007, 18:05:59
Ahoj...
Snažil jsem se použít to samé, ale mám problém a to následující, všechno jde jak má, až na to, že se mi neukládají cookies. Když si cookie ručně vytvořím, tak to jde. Jinak ne. Předem děkuji za nápad... Jinak ... <link rel="stylesheet" type="text/css" media="screen" title="User Defined Style" href="<?php echo (!$_COOKIE['sitestyle'])?'default':$_COOKIE['sitestyle'] ?>.css" /> ... ... <li><a href="switcher.php?set=Dark">Dark</a></li> <li><a href="switcher.php?set=Light">Light</a></li> ... ... <?php setcookie ('sitestyle', $set, time()+31536000, '/', 'blah.com/bloch', '0'); header("Location: $HTTP_REFERER"); ?> ... |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0