Aktuálná verzia
Najnovšie mody
Najnovšie vzhlady
Uživatelský panel



Registrácia Zabudnuté heslo
Reklama
Partneri podpory
Secit.sk

Sťahuj Zdarma MP3, hry a iné.

Optimalizace pro vyhledávače

Tvorba web stránok

LED svietidlá a osvetlenie

Světový výrobce Betafence již 150 let vyrábějící ploty, pletiva a oplocení. Kvalitá plotů je zaručena přímo výrobcem.

Reklama
Štatistiky prístupov
BeNdOo Online
Nemo_O Online
neuro_dnb <5 min.
miskith <5 min.
CyberCZ <5 min.
castelL 00:07:35
_RoJo_ 00:10:45
Marian-11 00:18:35
feri_crosby 00:19:20
danwow 00:20:55
Registrovaní členovia: 2,530
Administrátori a moderátori online:
Nastavenie kódovania, diakritiky (Windows-1250)
Kódovanie, alebo diakritika.


Na webe sa stále stretávame s problémom správneho zobrazovania diakritiky pre slovenský alebo český jazyk. Toto zabezpečuje tzv. kódovanie jazyka a jeho správnym nastavením sa budeme zaoberať v tomto článku.

A. Predovšetkým sa musíte rozhodnúť aké kódovanie použiť.

Diakritiku podporujú tieto najbežnejšie používané kódovania:
1. UTF - 8
v MySQL: utf8, základné nastavenie: utf8_unicode_ci alebo utf8_general_ci

2. Windows - 1250
v MySQL: cp1250, základné nastavenie: cp1250_general_ci

3. ISO8859-2
v MySQL: latin2, základné nastavenie: latin2_general_ci

Vo väčšine prípadov sa zaobídeme v MySQL so základným nastavením. Môžem doporučiť UTF-8 alebo prípadne aj Windows-1250. Kódovanie ISO8859-2 je menej používané.


B. Základný popis nastavenia.

Kde všade je nutné nastaviť kódovanie?
Predpoklad správneho nastavenia je rovnaké nastavenie kódovania vo všetkých spomenutých prípadoch.
a). V hlavičke HTML dokumentu

b). Všetky súbory uložíme v tom istom kódovaní (*.html, *.php, *.sql, *.js, ...)
- doporučujem taký editor, ktorý tieto nastavenia umožňuje ( PSPad, Notepad++, a pod. )

c). V PHP skripte ( pre MySQL spojenie )
- v php skripte, v časti kde definujeme pripojenie k databáze

d). V MySQL databáze ( doporučujem používať nástroj PhpMyAdmin )
- v phpmyadmine nastavenie Overenie MySQL spojenia
- v phpmyadmine nastavenie Zotriedenie pri vytváraní DB
- v jednotlivých tabuľkách (DB) a jeho položkách Zotriedenie


C. Príklad nastavenia kódovania pre WINDOWS-1250:

1. V hlavičke (HEAD) HTML súboru sa nastaví CHARSET na WINDOWS-1250 takto:
Code
<meta http-equiv='Content-Type' content='text/html; charset=windows-1250'>




Pre PHP-FUSION sa toto kódovanie nastaví v locale/Slovak/global.php napr. takto:
Code
// Locale Settings
setlocale(LC_TIME, "sk","SK"); // Linux Server (Windows may differ)
$locale['charset'] = "Windows-1250";
$locale['xml_lang'] = "sk";
$locale['tinymce'] = "sk";
$locale['phpmailer'] = "sk";




2. V PHP skripte sa nastaví kódovanie pre Spojenie s mysql takto:
Code
$db_spoj = @mysql_connect($host, $user, $pass);
@mysql_query("set names cp1250",$db_spoj);




Pre PHP-FUSION sa toto kódovanie nastaví v súbore maincore.php napr. takto:
Code
function dbconnect($db_host, $db_user, $db_pass, $db_name) {
$db_connect = @mysql_connect($db_host, $db_user, $db_pass);
@mysql_query("set names cp1250",$db_connect); //<- toto je vložený riadok
$db_select = @mysql_select_db($db_name);
if (!$db_connect) {
die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><strong>Unable to establish connection to MySQL</strong><br>".mysql_errno()." : ".mysql_error()."</div>");
} elseif (!$db_select) { die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><strong>Unable to select MySQL database</strong><br>".mysql_errno()." : ".mysql_error()."</div>");
}
}





3. V PhpMyAdmine ( ver. 2.10.3 )pri vytváraní databáze nastavujeme kódovanie takto:
www.php-fusion.sk/images/articles/dbsql_1250.png

Vytváranie tabuliek z pohľadu kódovania.
Kódovanie v tabuľke sa nastavuje pomocou DEFAULT CHARSET a COLLATE

Príklad:
Code
CREATE TABLE IF NOT EXISTS `moja_tabulka` (
`menu_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`menu_name` varchar(100) NOT NULL DEFAULT '',
`menu_location` tinyint(3) unsigned NOT NULL DEFAULT '0',
`menu_order` tinyint(3) unsigned NOT NULL DEFAULT '0',
`menu_class` varchar(255) NOT NULL DEFAULT '0',
`menu_pages` text NOT NULL,
`menu_path` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`menu_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_general_ci AUTO_INCREMENT=1 ;




Ako takúto tabuľku vložíme do databázy:
www.php-fusion.sk/images/articles/db-sql_1250.png

stlačíme Vykonaj, tak sa nám riadne vytvorí
www.php-fusion.sk/images/articles/db-sql2_1250.png

a pri kontrole štruktúry:
www.php-fusion.sk/images/articles/strukt.png

zistíme, že niektorým poliam (podľa typu) sa priradilo prednastavené kódovanie príslušnej databázy do ktorej sme tú tabuľku vkladali.
www.php-fusion.sk/images/articles/strukt1_1250.png

Sú to tie polia, kde sa automaticky predpokladá výskyt záznamu s diakritikou.

A ako sa vytvárajú tabuľky pre PHP-FUSION?
Pri spustení inštalácie sa spustí setup.php kde sú zadané všetky úvodné tabuľky aj s prednastaveným obsahom.

Príklad jednej tabuľky:
Code
$result = dbquery("DROP TABLE IF EXISTS ".$db_prefix."admin");
$result = dbquery("CREATE TABLE ".$db_prefix."admin (
admin_id TINYINT(2) UNSIGNED NOT NULL AUTO_INCREMENT,
admin_rights CHAR(2) NOT NULL DEFAULT '',
admin_image VARCHAR(50) NOT NULL DEFAULT '',
admin_title VARCHAR(50) NOT NULL DEFAULT '',
admin_link VARCHAR(100) NOT NULL DEFAULT 'reserved',
admin_page TINYINT(1) UNSIGNED NOT NULL DEFAULT '1',
PRIMARY KEY (admin_id)
) TYPE=MyISAM;");




Všimnite si, že tu nie je zadaná hodnota DEFAULT CHARSET ani COLLATE. To preto, že pred inštaláciou musíme vytvoriť vlastnú databázu, kde nastavujeme kódovanie. A toto nastavenie sa prenáša ako DEFAULT-né aj do novoinštalovaných tabuliek, podobne ako je to popisované v predošlom príklade.

A na záver môžeme vykonať kontrolu správneho nastavenia kódovania celej databázy a u jednotlivých tabuliek.

Kontrola nastavenia databázy:
www.php-fusion.sk/images/articles/dbkon_1250.png

Kontrola nastavenia tabuliek:
www.php-fusion.sk/images/articles/dbtab_1250.png


D. Súhrn - nastavenia pre inštaláciu PHP-FUSION:
1. Zvolíme si typ kódovania.
2. Stiahneme si inštalačný balík PHP-FUSION a slovenský preklad vo zvolenom kódovaní.
3. Ak nie je k dispozícii PHP-FUSION a slovenský preklad vo zvolenom kódovaní, musíme skontrolovať všetky súbory a uložiť ich vo zvolenom kódovaní.
4. Túto kontrolu pre istotu urobíme aj v prípade, ak je PHP-FUSION a slovenský preklad vo zvolenom kódovaní k dispozícii.
5. Naviac ešte musíme skontrolovať a prípadne upraviť v slovenskom preklade kódovanie v súbore global.php podľa horeuvedeného návodu. Ďalej skontrolujeme a prípadne upravíme súbor maincore.php(Spojenie s mysql) podľa horeuvedeného návodu.
6. Pri vytváraní databázy nastavíme kódovanie podľa horeuvedeného návodu.
7. Teraz už môžete zahájiť samotnú inštaláciu PHP-FUSION. Ďalej sa riaďte priloženým návodom k inštalácii PHP-FUSION.

Autor: sepko
Web: www.sepeter.sk
Komentáre
#1 | torysan15 dňa 05.12.2009 12:25:23
Ďakujem pomohlo my to preože ked som presunul web tak sa mi úplne dosrala diakritika a ukazovalo mi otázniky.. Síce teraz by som musel celý web prepisovať keby som chcel aby mi to išlo naplno, ale necham to radšej už tak xD
Pridať komentár
Pre pridanie komentára musíte byť prihlásený.