Avaleht
uus teema   vasta Tarkvara »  WWW »  HTML väljundi kuvamine tekstikastis?; NB! inf tähemärgitabelitest märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
mine lehele 1, 2  järgmine
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Vananematu
HV veteran
Vananematu

liitunud: 28.09.2003




sõnum 05.02.2009 23:56:53 HTML väljundi kuvamine tekstikastis?; NB! inf tähemärgitabelitest vasta tsitaadiga

Lihtne sisuhaldussüsteem.

MYSQL andmebaasist võetakse html kood ning kuvatakse tekstikastis. Seda saab muuta, ja uuesti andmebaasi teele saata, kuskohast see teise, kasutajate lehe poolt üles korjatakse ning otse HTML väljundiks veebilehele paisatakse.

Kõik on väga kena ja ilus, kui vaid haldusliideses vaene tellija HTML koodi mõistaks.

Ma ei oska isegi märksõnadega kirjutada, mida ma küsima peaks onu guugel käest.

Oskab keegi abistada?

Poolel teel võiks mõne sõnaga lausuda ka sellisest juhtumist, kus html vormis $_POST[] täidetakse ehk siis submit nuppu vajutatakse, kuid tekstikasti ei väljundata muudatust enne, kui suvalist linki lehe ulatuses vajutada ning tagasi pöörduda tekstikasti sektsiooni. Muudetavat veebilehte vaadates saab aru, et andmebaasis muudeti kohe kirje õigeks, kuid sisuhaldussüsteemi tekstikastis ei kuvata seda peale "Muuda"($_POST[]) vajutamist.


viimati muutis Vananematu 07.02.2009 19:44:00, muudetud 1 kord
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 06.02.2009 00:00:31 vasta tsitaadiga

märksõna: fckeditor
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
iceincube
HV veteran
iceincube

liitunud: 18.11.2005




sõnum 06.02.2009 00:01:08 vasta tsitaadiga

WYSIWYG editor (WhatYouSeeIsWhatYouGet)

Fck
tinyMc
rte editor
enda hetke lemmik nicEditor -> http://www.nicedit.com/
Kommentaarid: 39 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 37
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 06.02.2009 00:20:35 vasta tsitaadiga

http://geniisoft.com/showcase.nsf/WebEditors
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Speedee
HV kasutaja
Speedee

liitunud: 23.04.2003




sõnum 06.02.2009 11:29:39 vasta tsitaadiga

Kunagi kasutasin FCKeditor'i, nüüd olen jäänud TinyMCE peale. Peaks olema parim js WYSIWYG editor. Lihtne seada oma vajaduste järgi ja kui vaja saab ka modida. Dok on olemas ja foorumist saab ka abi.
Kommentaarid: 13 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Vananematu
HV veteran
Vananematu

liitunud: 28.09.2003




sõnum 06.02.2009 21:13:07 vasta tsitaadiga

Tänud kõigile variante pakkumast! Katsetan neist nii mõndagi.

Tegelikult küsiks lisaks, et kas PHP keelega ei olegi html väljundi kuvamine tekstikastis võimalik?

Ning endiselt ei ole mul aimu, miks peale submit nupu vajutamist (actioniks $_SERVER['PHP_SELF']icon_wink.gif ei kajastu vastavas tekstikastis muudatused, vaid kuvatakse esmasel korral db-st saadud väärtused? Alles pärast menüüdes tuhnimist (refresh page) muudetakse ka tekstikasti sisu db-ga vastavaks.

Kolmas küsimus icon_smile.gif on mind samuti kummitanud - kuidas kasutaja viia ilma lingile klikkimast ühelt lehelt teisele? Näiteks juhul, kui koodis selgub mingi tõsiasi ning nüüd kuva kasutajale seda lehte..
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 06.02.2009 21:30:50 vasta tsitaadiga

tsitaat:
Ning endiselt ei ole mul aimu, miks peale submit nupu vajutamist (actioniks $_SERVER['PHP_SELF'] ei kajastu vastavas tekstikastis muudatused, vaid kuvatakse esmasel korral db-st saadud väärtused?

Sa pead panema mingi random väärtuse aadressribale, et browser arvaks, et on uus sisu ning loeks kogu lehe uuesti lahti ja ei annaks sulle vahemälust vana sisu. Midagi nii
<?php
echo '<a href="leht.php?dumb='.rand().'">Mine lehele</a>';
?>


Kolmas vastus
header('Location: http://www.neti.ee/');

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Vananematu
HV veteran
Vananematu

liitunud: 28.09.2003




sõnum 06.02.2009 21:55:13 vasta tsitaadiga

andrusny kirjutas:
Sa pead panema mingi random väärtuse aadressribale, et browser arvaks, et on uus sisu ning loeks kogu lehe uuesti lahti ja ei annaks sulle vahemälust vana sisu. Midagi nii
<?php
echo '<a href="leht.php?dumb='.rand().'">Mine lehele</a>';
?>


See on küllalt mõnus, kuid toimib, vaid lingile klikkides ju? Mul on aga vormis submit nupp (method="post" action="..PHP_SELF.."). Pärast seda veel ühele lingile vajutada lasta ei ole kõige dünaamilisem nagu.

andrusny kirjutas:

Kolmas vastus
header('Location: http://www.neti.ee/');


See on ka lahe funktsioon, kuid toimib vaid juhul, kui lehte nullist alustatakse. Kui aga lehe keskel tahad kedagi mujale saata. Konkreetne näide, et kui kolmas tekstiväli on täidetud ning siis submit vajutatud, saada kasutaja oma lehe ulatuses viiendale menüüle ja kolmandale alammenüüle, ilma linki kuvamata - ilma topelt klikke tegemata.
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 06.02.2009 22:18:04 vasta tsitaadiga

Aga milles küsimus?

echo '<form action="'.$_Server[PHP_SELF].'?dumb='.rand().'" method="post">';


siis jääb veel vähemalt kaks võimalust:

$query="http://www.neti.ee/";
echo '<META HTTP-EQUIV="REFRESH" CONTENT="0; URL='.$query.'">';


või kasutades JavaScripti:

echo '<script language="JavaScript">window.location = ("http://www.neti.ee/")</script>';


Kui mõtled aga sama lehe peal ilma lehte uuesti laadimata, näiteks, et paned lehe alla serva lingi ja kui klikid, siis kerib end ülesse tagasi, siis nii:

<a name="top">peal</a> (see on ankur, kuhu leht keritakse)
..... siin on palju teksti ja muu lehe sisu ......
<a href="#top">link to top</a>


see ei pea algusse minema, neid linke võid teha sisusse suvalisse kohta ja lähevad siis sinna

_________________


viimati muutis andrusny 06.02.2009 22:27:23, muudetud 1 kord
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 06.02.2009 22:20:56 vasta tsitaadiga

Ee, defaultina peaks php ise väljastama headereid mis ütlevad et lehti ei cacheks browserid just sellesama põhjuse pärast et alati näeks uusimat seisu.
Ehk on praegu probleem selles järjekorras milles sa asju teed ? Kui ennem selectid baasist sisu välja ja siis alles paned baasi uue sisu (html'i) ning väljastad ikkagi ennem baasist päritud asja, siis näedki valet sisu.

Võibolla on näidata linki kus see probleem on ? Või seda koodijuppi kus see pärimise salvestamise ja kuvamise loogika on ?

Selline valesti infoga tegelemise järjekord on väga tihe põhjus sellistele asjadele.

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Vananematu
HV veteran
Vananematu

liitunud: 28.09.2003




sõnum 06.02.2009 22:42:09 vasta tsitaadiga

Tänud andrusny. Su toodud võimalusi katsetan kindlasti. Javascriptiga pole tükk aega tegelenud, seega ei olegi nii agaralt selle poole vaadanud, kuid jah, seal avaneb uus maailm erinevate võimaluste osas.

inzinz, soovisid koodi näha? Ei tea kas leiad mingisuguse loogika järjekorra osas. Ma kopeerin siia vaid esimese teksti näitamise ning teksti muutmise loogika:

Spoiler Spoiler Spoiler


Ning mul on sama loogika baasil tekstikaste ühel lehel omajagu. Ehk siis vaid üks html vorm ühes failis ning php skript kasutab erinevatel etappidel ühte ja sama faili. Mul, kui php kirjutaja algajal, kulus selle süsteemi kokku panekuks omajagu aega, nii, et loogika vigu võib jätkuda küll.

See kood asub ütleme failis haldusmenyy_2_1. Sellel lehel on veel sessiooni kontrollimise osa ja muu nipet-näpet. Fail lastakse lehele switch kontrollstruktuuri kasutades ning require funktsiooni käivitades.
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 06.02.2009 23:48:26 vasta tsitaadiga

Nagu ma arvasingi, sul on loogika valepidi, sul on ju hetkel nii:
select tekst baasist
kuva vorm
kontrolli kas teksti uuendati
salvesta baasi

Sa ei saagi ju sellise järjekorra juures oodata et kümme rida hiljem tehtud kontroll mõjutab kümme rida ennem väljastatud infot, see et sa tahad et muutuks ei tähenda et maagiliselt ise muutubki icon_biggrin.gif.

Õige järjekord oleks nii:
kontrolli kas on postitatud
uuenda baasi
vali tekst baasist
kuva vormi


         
         ## $db_tekst on vormi sees olev muutuja, millele omistatakse db-st saadud tekst.
         ## $menyy_kirje_tekst on vormi sees olev muutuja, millele omistatakse db-st saadud tekst.
         $db_tekst=$db_tekst1;
         $menyy_kirje_tekst=$menyy_kirje[1];

         ##1///////////////////////////////////////////////////////////////////////////////

         ## Peamenyyl kuvatav tekst muudetakse tekstikastis (muuda.php)
         ## kui muutuja POST ruum on seatud - submit vajutatud vormi väljal.
         $sonum1=$_POST[$kast];
         $p4ring_muuda1="update mets_tekstid set tekst='".$sonum1."' where kirje='$menyy_kirje[1]'";
         if (isset($_POST[$kast])){
            $tulemus_muuda1=$mysqli->query($p4ring_muuda1);
            $db_tekst = $sonum1;
         }

         $kast="tekstikast1";
         require("materjal/lehed/muuda.php"); //html vorm


Antud koodijupis on korrektselt nüüd:
valib baasist
kontrollib kas uuendatakse
kui jah siis uuendab baasi ja kuvatava muutja sisu
kuvab vormi

Loogiliselt korrektne ja töötab ka icon_smile.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Vananematu
HV veteran
Vananematu

liitunud: 28.09.2003




sõnum 07.02.2009 13:29:08 vasta tsitaadiga

Aitäh inzinz. Ma liht. mõtlesin, kuna PHP kood korraga serveri mällu laetakse, siis ei ole ka vahet kus üks või teine koodisektsioon paikneb. Tundub, et siiski on vahe icon_smile.gif Õnneks oli vahetus kerge, piisas vaid vormimuutuja ning "require" rea asukoha muutmistest.

Kas keegi oskab ehk paar sõna tähemärgitabelitest lausuda? MYSQL dokumentatsioon on igasugu keerulisi ja lihtsamaid tähemärgi muutmise funktsioone täis. Et kui tahta otse tekstikastist ladinatähestikule omaseid täpitähti sisestada, siis mis tingimused peavad olema täidetud?

Praegu olen jõudnud nii kaugele, et iga uue tabeli loomisel lisan sql süntaksi lõppu "character set latin7 collate latin7_estonian_cs." Pealtnäha justkui toimiks db-st täpitähtede kuvamine html-i ning vormist db-sse ülekandmine uuesti. Ilma vaikimisi character set'i muutmist ei kuvanud ta täpitähti üldse. Kuid MYSQL dok. näeb veel ette tähetabelite valmist db-ga ühenduse võtmisel, transportimisel ja ma ei tea veel millistes situatsioonides, et asi "õige" oleks.


Oskab keegi praktikaga kokkuminevat juttu selgitada, millistel minimaalsetel kriteeriumidel täpitähtede kuvamine igas serveris ja veebilehitsejas peaks toimima?
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 07.02.2009 13:37:41 vasta tsitaadiga

1) Kasuta andmebaasis utf8 estonian'i
2) Andmebaasiga ühendumisel määra et tahad kasutada andmete ülekandmisel utf8't
Näide:
php:
  1. $db->Execute('SET NAMES "utf8"');
  2. $db->Execute('SET CHARACTER SET "utf8"');

3) Veebilehe alguses määra et lehe sisu on utf8's.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 07.02.2009 13:49:57 vasta tsitaadiga

Mina ise kasutan utf-8 charsetti estonian collationiga, ehk siis tabeli create on miskit sellist:

CREATE TABLE `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
... muud väljad ...
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci;

Lisaks on vaja veel teha php koodi alguses:
header('Content-Type: text/html; charset=UTF-8');
Ning peale baasiga ühendamist on veel vaja teha mysql_set_charset('utf8');

Peale kõike seda toetab sinu leht kasvõi hiina ja jaapani märke. Oluline on just see et baasi tabelite charset klapiks sellega mis sa php koodi alguses headeris ütled ning lisaks et php mingit oma jama ei teeks, ütled mysql_set_charsetiga talle ette mis kodeeringus sul info baasist tuleb.

EDIT:
Dokumentatsiooni järgi on "SET NAMES charset" ja "SET CHARACTER SET charset" deprecated ehk et ei soovitata kasutada. Mysql baasi versioon peab olema vähemalt 5.0.7 ja PHP versioon vähemalt 5.2.3.
Arvestades et mysql versioon on juba ammu 5.1.x ning php on 5.2.8, siis igas normaalsemas hostingukohas peaks miinimumnõuded olema täidetud.

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 07.02.2009 14:49:51 vasta tsitaadiga

Mis artiklist sa selle "deprecated" info võtsid ?
5.1 alt ei leia ma kuidagi sellist infot.

Edit: php dokis on sinu välja toodud funktsiooni juures kirjas märge
tsitaat:
Note: This is the preferred way to change the charset. Using mysql_query() to execute SET NAMES .. is not reccomended.
, kuid puudub igasugune selgitus et miks.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 07.02.2009 15:27:58 vasta tsitaadiga

No esiteks selle jooksutamise peale teeb php mysql klient vastavad asjad kõik enda siseselt ära, sealsamas php doki lehel on allpool ka näide kus keegi jooksutab päringut:
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
kuna
"Neither SET character set 'utf8' or SET names 'utf8' worked properly"

Ja sealsamas on veel teisigi näiteid et "set names" ja "set character set" päringud ei anna soovitud tulemust kui samas mysql_set_charset töötab kenasti.
Kui mysql server on piisavalt uue versiooni peal ja php ka, siis igaljuhul on etem mysql_set_charset kasutada icon_wink.gif

EDIT:
Kogu selle utf8 asja juures tuleb meelde jätta et sa kõik erimärke sisaldavad failid salvestad utf8 kodeeringus (nii php, javascripti kui ka muud html failid).
Ning vahest on abiks ka see kui tekitad .htaccess faili kus sees on:
AddDefaultCharset UTF-8
Sellega apache ise ütleb enda poolt saadetavatele muudele html ja javascript failidele kaasa et nad on utf8 kodeeringus.

Esmapilgul tundub palju tööd, aga kui algus on korralikult tehtud, siis on endal hiljem kordades kergem

_________________
Upload.ee - eestimaine failiupload


viimati muutis inzinz 07.02.2009 15:36:36, muudetud 1 kord
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Vananematu
HV veteran
Vananematu

liitunud: 28.09.2003




sõnum 07.02.2009 15:38:41 vasta tsitaadiga

Tervist jällegi!

Üritan rohkem mysqli objektorienteeritud klassi kasutada, kus võimalik. Arvatavasti [ mysqli::set_charset ] meetod on võrdväärne [ mysql_set_charset() ] funktsiooniga.

mikk36, ma ei saanud aru sellest süntaksist :
$db->Execute('SET NAMES "utf8"');
Kas see on MySQLi_STMT klassi meetod? Kas ma ei võiks selle asemel kasutada näiteks [ mysqli::real_query ] meetodit? Kas alternatiive su poolt toodud meetodile ei ole?

inzinz , kas
header('Content-Type: text/html; charset=UTF-8');
rida on võrdväärne, kui ma html malli lisan rea:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
või peab su toodud rida kindlasti php skriptides, kus db-ga ühendust võetakse, olema?


Rääkides hostingu pakkujatest, siis mu käsutuses on mõned domeenid, kus php versiooniks 5.0.3 icon_rolleyes.gif . Katsu sa arvestada sellega, kus üritad ise võimalikult uuendusmeelne olla ja oma skriptid viimase süntaksi reeglite järgi kokku viia, kuid siis satuvad serverid, kus pead olemasolevad vebiprogrammid laiaulatuslikult ümber tegema..

Üheks selliseks hostingu pakkujaks, kus 5.0.3 php versioon, on virtuaal. Võimalik, et vaid minu kätte sattunud domeenid sellise php versiooniga..

Ehk siis sellises serveris peaks ka ju toimima [ mysql_set_charset() ] kuna mysql_..() funktsioonid on selles versioonis kasutuses.[/url]
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 07.02.2009 15:43:50 vasta tsitaadiga

See header ei ole võrdväärne meta tagiga, meta tagi soovitan lisada küll, aga väga palju browsereid kasutab kodeeringu tuvastamisel headerist tulevat charseti infot, mitte aga lehe peal olevat infot, kuna lehe sisselugemiseks on juba charseti teadmine vajalik.
Kui on header pluss meta tag, siis peaks kõik browserid olema kaetud 100%.

Virtuaal koha pealt ei teagi, kui nad on sinu hostingu pakkujad, siis küsi neilt kas on mingi kindel põhjus miks nii vana php versiooni kasutavad kui 5.2.8 on juba väljas.

Kui php on 5.0.3 siis mysql_set_charset ei tööta kuna selles versioonis pole veel seda funktsiooni sees, seega on sul ainus võimalus jooksutada miku antud päringuid mysql_query('set names utf8'); jne ning loota et sellest piisab, mingitel juhtudel sellest aga ei piisa ja siis on pehmelt öeldes jama majas. Seega pöidlad pihku icon_biggrin.gif

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Vananematu
HV veteran
Vananematu

liitunud: 28.09.2003




sõnum 07.02.2009 20:47:48 vasta tsitaadiga

Ohsa vana! Siin on nüüd korralikult kasulikku infi, mis te siia postitanud olete.

Nõndaks. Võtan kokku tähetabelite osa, parandage kui ma eksin:

1. PHP skriptis enne lehe laadimist:
header('Content-Type: text/html; charset=UTF-8');

2. Meta tagis html lehel:
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

3. PHP skriptis pärast DB-ga ühendumist (ka vanemate PHP versioonidega) :
##charset valik
   $sql1="set names 'utf8'";
   $sql2="set character set 'utf8'";
   $k4sk1=mysql_query($sql1, $db_yhendus);
   $k4sk2=mysql_query($sql2, $db_yhendus);

4. Tabelite loomisel kasutada vastavalt MYSQL süntaksile DB lõpus "character set utf8 collate utf8_estonian_ci;"

Tegin vastavad toimingu läbi, kuid täpitähtedega on nüüd veel suurem jama, kui enne. Kohati on korras, kohati mitte.. Niisiis, on mul kuskil viga.

Katsetasin "meta tag" sildiga ning leidsin, et charset=ISO-8859-1, charset=ISO-8859-4 ja charset=ISO-8859-13 väärtustega täpitähed töötavad lehtedel, kus on otse koodis täpitähed. Andmebaasidesse minevad täpitähed muutuvad küsimärkideks, kui neid ISO 8859 standardeid katsetasin. Arvatavasti kuna db charset oli utf8.
Selle ajal kui katsetasin meta siltidega, kommenteerisin välja "header('Content-Type: text/html; charset=UTF-8');" rea.

Tundub nagu 8859 standardeid tuntakse ära, kuid kui ma UTF-8 kirjutan meta tag'i on kohe küsimärgid täpitähtede asemel. Ehk siis kas UTF-8 on valesti kirjutatud standardite tuvastuse koha pealt või milles asi? Ei leidnud kiirelt miskit head lehte, kus character set kirjutamise reeglid oleksid, oskate võib-olla soovitada mõnda adekvaatset teabeallikat?

8859 standardid:
http://en.wikipedia.org/wiki/ISO_8859#The_Parts_of_ISO.2FIEC_8859

EDIT:

Ehk siis täiesti kokku võtvalt:

Kas UTF-8 -le leidub ISO standard? Just vaatasin, et ka HV foorumil on meta tagis ISO-8859-1. Mis standard sellele andmebaasides vasteks peaks kirjutama?
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
iceincube
HV veteran
iceincube

liitunud: 18.11.2005




sõnum 07.02.2009 21:11:54 vasta tsitaadiga

ma ei saa päris pihta mis katsetusi sa teed ja mida küsid, kuid,
nii salvestamisel kui näitamisel baasist peab juba olema mõlemal juhuls amad kodeeringud, et kindel olla.
Kui varem salvestatut hakkad välja kuvama siis vbla on jah katki midagi..

Ja otse faili kirjutatud tähed võivad olla katki kui sa pole salvestanud ka faili ennast utf8 formaadis. ( mis ditori kasutad- saad ikka valida kuskilt? )
Kommentaarid: 39 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 37
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 07.02.2009 21:27:59 vasta tsitaadiga

Üks point jäi sul läbi lugemata: sa pead ka omal kõik php html javascript jamuud failid salvestama utf-8 kodeeringuga!!!
Vali oma editoris save as, seal vaates peaks iga mõistlikum editor laskma valida ka charsetti (mis defaultib ascii peale tavaliselt ja sealt ka sinu täpitähe jamad kuna ascii täpitähe baite utf-8 kodeeringus ei eksisteeri ja browser kuvab mingit jama nende asemele).

Kui sul on kõik php html ja javascript failid utf-8 kodeeringus salvestatud, sinu php kood väljastab seda utf-8 headerit ning ka sinu baasi tabelid on utf-8 pluss teed seda "set names 'utf8'" siis peaks töötama kõik veatult, mul on igal pool kõik ok.

Seega veelkord: käi kõik failid üle, salvesta utf-8 charsetiga, lase ülesse, pane meta tagi uuesti utf-8 ja las php väljastab seda headerit. Kui valmis siis võid meile linki ka ehk näidata ? icon_biggrin.gif
Ja nagu iceincube ütles, varasemalt baasi salvestatud tekstiga võib olla probleeme, korrektselt kuvab ainult utf-8 charseti ajal salvestatud sisusid, seega edaspidi soojalt soovitan kogu see utf-8 asjandus saidi tegemise alguses ära teha, poole pealt charsette muutma hakata baasi tabeli väljade sisus on paras peavalu alati...

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
Vananematu
HV veteran
Vananematu

liitunud: 28.09.2003




sõnum 07.02.2009 21:41:54 vasta tsitaadiga

Mhmh. Nüüd sain veel targemaks. Ma arvan. et selles viga oligi. Miks te kohe ei öelnud, et editorid kõiges süüdi on icon_biggrin.gif Salvestamise osa libises silme eest mööda, mida eelnevalt kirjutasid inzinz icon_smile.gif

EditPlus2 kasutas standardina ANSI kodeerimist ja Crimson ASCII kodeerimist. Mõlemad editorid olid kasutuses ning jälg läks ka käest missugune editor milliseid faile puutunud oli. Ma näen nüüd, et asi on korras, kuna veebis sisestatud täpitähtede asemele ilmub andmebaasis vastavad html vasted, nagu ä on &auml; jne..

Lahe! Suured tänud kogu selle info eest. Lingini läheb aega, kuna töötan kohalikus võrgus andmebaasi ja php-ga. 5.0.3 serverisse ei ole veel jõudnud kolida arengujärgus lehte.
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 08.02.2009 03:24:32 vasta tsitaadiga

Vananematu kirjutas:
mikk36, ma ei saanud aru sellest süntaksist :
$db->Execute('SET NAMES "utf8"');
Kas see on MySQLi_STMT klassi meetod? Kas ma ei võiks selle asemel kasutada näiteks [ mysqli::real_query ] meetodit? Kas alternatiive su poolt toodud meetodile ei ole?
See on ADOdb klassile suunatud käsk (eelistan seda db abstraktsioonikihti, kuna toetab paljusid eri andmebaase, ise kasutanud nii MySQL, MS Access kui ka näiteks Paradoxiga ühendumiseks.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
inzinz
HV kasutaja

liitunud: 26.01.2005




sõnum 08.02.2009 14:53:23 vasta tsitaadiga

Testisin siin natuke neid set character set ja set names käske ja leidsin ka huvitava info: kui esmalt jooksutada set names utf8 ja peale seda alles set character set utf8, siis mingi totruse tõttu viskab connection_charseti tagasi defaulti peale, proovisin omal lokaalselt järgi ja tõepoolest:
peale set names oli character_set_connection ilusti utf8
peale set character set aga oli character_set_connection tagasi latin1

Kui aga teha järjekorras set character set utf8 ja siis set names utf8, siis oli kõik korras.
Arvatavasti sellest huvitavast käitumisest on ka tingitud kõik need veateated et vaatamata set names ja set character set kasutamisele ei saada asja tööle, põhjuseks siis see te reaalselt visatakse charset latin1 peale ja mysql seal teeb mingeid oma charset converte vahele.
Seega soovitan jälgida nende käskude järjekorda kuna nagu näha, vale järjekord keerab metsa seadistused...

_________________
Upload.ee - eestimaine failiupload
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  HTML väljundi kuvamine tekstikastis?; NB! inf tähemärgitabelitest mine lehele 1, 2  järgmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.