Přepínač stylů – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přepínač stylů – PHP – Fórum – Programujte.comPřepínač stylů – PHP – Fórum – Programujte.com

 

Jarda0
Stálý člen
28. 7. 2006   #1
-
0
-

Chtěl jsem si udělat přepínač stylů podle návodu tady na programujte.com.

Normal, soubor load_style.php :
?

<?php 

/* ----- load_style ma jednoduchou úlohu, uložiš premennou style do cookies a následne navrátiš uživatela na stránku, z ktorej sa k sůboru preklikol------ */

if (!$kde_domov) $kde_domov = $http_referer;
// to sme si zistili odkial to k nám user priplachtil

$cesticka = $_get['style'];
// hodnotou premennej cesticka bude hodnota premennej style predanej linkom...

setcookie ("style_switch", $cesticka, time()+36002430,'/');
//nastavíme cookies

header("location: $kde_domov");
//a presmerujeme uživateĺa tam, odkial sa vzal ;)

?>



pak mezi head tagy do hlavního souboru dám:

?
<?php 

/* ----- úloha je načítať premenné cesticka z cookies s názvom style_switch a následne ju spracovať pre určenie cesty k zvolenému css sůboru ------ */

$cesticka = $_cookie['style_switch'];
//hodnotu cookies premietneme do premennej cesticka

if (!$cesticka){$style = "styl.css";}
// v prípade, že neexistuje premenná cesticka, nastaví nám skript predvolený dizajn, tu je to ten zeleny
else if ($cesticka == "styl.css"){$style = "styl.css";}
else if ($cesticka == "styl2.css"){$style = "styl2.css";}
//v prípade, že cesticka existuje, nahradíme jej možné hodnoty za cesty k css sůborom v premennej style

echo "<link href='".$style."' rel='stylesheet' type='text/css' media='screen' />";
//a samotné vygenerované html tag pre načítanie zvoleného dizajnu ;)
?>


a pak samotné odkazy na styly:

[url]<a href="load_style.php?style=styl.css" >Smile styl</a>
<a href="load_style.php?style=styl2.css" >Dark styl</a>[/url]

po kliknutí na odkaz zmény stylu se otevře stránka třeba domena.cz/load_style.php?style=styl.css

a styl se nezmění, jen tam je tato bíla stránka, nevite někdo co s tim? :((

Nahlásit jako SPAM
IP: ...–
Hehe :D
Ondrej Jur??ek
~ Moderátor
0
Stálý člen
28. 7. 2006   #2
-
0
-

Ako sa pozeram na ten kod, tak v subore load_style.php hned v prvom riadku je premenna $http_referer prazdna! Tym padom ta nikam nepresmeruje.

Nahlásit jako SPAM
IP: ...–
Jarda0
Stálý člen
28. 7. 2006   #3
-
0
-

Tak jsem to spravil, ale teď to vypisuje chybu:
Parse error: parse error in /3w/xf.cz/a/acaci/a/load_style.php on line 4

Nahlásit jako SPAM
IP: ...–
Hehe :D
Ondrej Juríček
~ Moderátor
0
Stálý člen
29. 7. 2006   #4
-
0
-

Bohuzial, ak nenapises presne, co si tam dopisal, tak neviem kde mas chybu.

Jednoducho to napisem este raz (to by malo fungovat):

load_style.php



<?php
$style = $_GET['style'];
setcookie ("style_switch", $style, time() + 36002430, '/');

$ref = $_SERVER["HTTP_REFERER"];
header("location: $ref");
?>


index.php (medzi head tagy)


<?php
$style = $_COOKIE['style_switch'];
if (!$style) {
$style = "style";
}

echo "<link href='./".$style.".css' rel='stylesheet' type='text/css' media='screen' />";
?>


index.php (medzi body tagy)


<div><a href="./load_style.php?style=style" title="Green">Green style</a></div>
<div><a href="./load_style.php?style=style2" title="Red">Red style</a></div>


no a samozrejme mat vytvorene subory style.css a style2.css

Nahlásit jako SPAM
IP: ...–
Jarda0
Stálý člen
29. 7. 2006   #5
-
0
-

ta tvá verze mi nešla, php moc neumím, jsem laik, takže výpis souborů

load_style.php
?

<?php 

$style = $_GET['style'];
setcookie ("style_switch", $style, time() + 36002430, '/');

$ref = $_SERVER["HTTP_REFERER"];
header("location: $ref");
?>
?

mezi tagy head
?
<?php 

$cesticka = $_cookie['style_switch'];
if (!$cesticka){$style = "styl.css";}
else if ($cesticka == "styl.css"){$style = "styl.css";}
else if ($cesticka == "styl2.css"){$style = "styl2.css";}
echo "<link href='".$style."' rel='stylesheet' type='text/css' media='screen' />";
?>
?

odkazy
?[url]<div><a href="load_style.php?style=styl.css" title="Green">Green style</a></div>
<div><a href="load_style.php?style=styl2.css" title="Red">Red style</a></div>[/url]?



Tak teď se tam ta chyba snad najde

Nahlásit jako SPAM
IP: ...–
Hehe :D
Ondrej Juríček
~ Moderátor
0
Stálý člen
29. 7. 2006   #6
-
0
-

superglobalne sa pisu velkym pr.: $_COOKIE (ze by tam bola chyba?!?!)

Nahlásit jako SPAM
IP: ...–
Jarda0
Stálý člen
29. 7. 2006   #7
-
0
-

Jéé, už to funguje, moc děkuji


Poté prosím asi Cura, aby opravil ten článek, díky moc

Nahlásit jako SPAM
IP: ...–
Hehe :D
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Přepínač, výběr hodnot — založil WarpfireW

Zmena stylu — založil mzth

Prekryti globalniho stylu — založil Honza Sova

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý