Šablony webových stránek a php skriptů

  • php skripty
  • šablony www
  • Změna vzhledu pomocí databáze

    Už dříve jsme si ukázali, jak jednoduše změnit(a zapamatovat) styl pomocí cookies. Podle mě přizpůsobení vzhledu pomocí cookies je dostačující. Databázi bych věnoval důležitější věci, ale jde to a mnozí z vás si skript budou schopni upravit k užitečnějším věcem, než je zapamatování vzhledu.

    Nebudu tu už vypisovat do příkladů, že na začátku každého skriptu, který se připojuje k databázi, se musíte k DB připojit. Tady zjistíte jak.

    Vytvoříme si v databázi tabulku

    <?php
    $sql = "CREATE TABLE vzhled (ip varchar (25) NOT NULL, styl varchar (7) NOT NULL, PRIMARY KEY (ip))";
    $dtz = mysql_query($sql) or die (mysql_error());
    
    ?>

    Máme dva sloupečky, "ip" a "styl". Do jednoho se sama uloží ip adresa návštěvníka a do druhého se uloží nějaké označení námi zvoleného vzhledu. Někdy sdílí více lidí stejnou IP, takže se stane, že zvolíte styl i ostatním. Což se u cookies stát nemůže;-).

    Shrnutí výhod a nevýhod ukládání IP do databáze a pomocí cookies jsem uvedl ve článku o Problému s jedinečností IP u ankety .

    Skript pro vložení vaší volby do databáze

    <a href="?volba=modra">Modré pozadí</a>
    
    <a href="?volba=zluta">Žluté pozadí</a>
    <a href="?volba=default">Defaultní styl pozadí</a>
    <?php
    $volba = $_GET['volba'];
    
    //načte z url adresy vaší volbu
    $ip = $_SERVER['REMOTE_ADDR'];
    //zjistí ip adresu návštěvníka
    
    $sql = "SELECT ip FROM vzhled WHERE ip='$ip'";
    $dtz = mysql_query($sql) or die (mysql_error());
    $vysledek = mysql_num_rows($dtz);
    
    /*vrátí počet řádků, na kolika je už vaše ip adresa, 
    měla by tam být buď jednou(teda vrátí 1), nebo by tam neměla být vůbec(vrátí 0)*/
    
    if ($vysledek == 0) {
    	$sql = "INSERT INTO vzhled (ip, styl) VALUES ('$ip', '$volba')";
    	/*Vložíte do DB informace jaký styl preferujete.*/
    	}
    	else{
    		$sql = "UPDATE vzhled SET  styl='$volba' WHERE ip='$ip'";
    		/*Tímto změníte v DB váši předchozí volbu, pokud jste už někdy dříve zvolili styl.*/
    
    		}
    $dtz = mysql_query($sql) or die (mysql_error());
    //odešlete informace na MySQL server
    ?>

    Tímto si stránka, nebo spíše databáze, zapamatuje vaši volbu a hned ji použije. Bude ji používat vždy, když stránku navštívíte.

    Vložení stylu do stránky

    Ještě musíme nějak stránku přesvědčit, aby opravdu daný styl zobrazila. Neznám nic jednoduššího, než změnit CSS styl. Je na vás jestli použijete dva css styly, jeden základní a druhý, který budete měnit a který bude třeba definovat jen barvy na stránce.

    <?php
    $ip = $_SERVER['REMOTE_ADDR'];
    
    $sql = "SELECT * FROM vzhled WHERE ip='$ip'";
    $dtz = mysql_query($sql) or die (mysql_error());
    $r = mysql_fetch_array($dtz);
    
    /*zjistíme podle ip adresy vámi dříve zvolený styl*/
    
    if (!empty($r[styl])) {
    	$vypis = "<link href=\"" . $r[styl] . ".css\" rel=\"stylesheet\" type=\"text/css\" />";
    	} else {
    		$vypis = "<link href=\"default.css\" rel=\"stylesheet\" type=\"text/css\" />";
    		}
    
    echo $vypis;
    /*tímhle jsme zajistili, že pokud přijde někdo s nenastaveným vzhledem, 
    tak se mu nastaví styl default.css*/
    ?>

    Příklad

    V podstatě máme hotovo. Ještě bych dodal, že do databáze pod sloupeček styl musíte ukládat přímo názvy souborů, jak se nazývají jednotlivé CSS styly, které máte na serveru a jejichž změnu nabízíte. Samozřejmě to není pravidlo, ale když to tak uděláte, zjednodušíte si skript.

    Maillist


    Přidáním mailu budete dostávat e-mailem nepravidelně informace o novinkách na tomto webu. Zrušit zasílání těchto informací je možné zde.

    Nově přidané stránky

    Tylova léta


    Obsah této stránky vyžaduje novější verzi aplikace Adobe Flash Player.

    Získat aplikaci Adobe Flash Player

    Autor: Otakar Hypš | výměna odkazů | mapa stránek | tisk | nahoru Reklama na auto | Burza učebnic GJKT | Hudební festival Tylova léta | fBrigády.cz - Brigády pro studenty CNW:Counter