Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Vananematu
HV veteran

liitunud: 28.09.2003
|
12.02.2009 11:40:49
|
|
|
Ütleme nii, et avastasin php-s ühe ääretult olulise funktsiooni tähemärgitabelite valdkonnas. Õigemini funktsioon on ise tuntud nagu kurat, kuid üks parameeter on kahe silma vahele jäänud.
Ma ei tea, ma olen kõik toimingud teinud - UTF 8-ks kõik ümber kodeerinud, seadnud, isegi klaviatuur on üks suur UTF-8, kuid naljakal kombel asi ikka ei toiminud saate aru!!! Ma tean, et kõik töötas mingi aeg, kui samuti kõik UTF-8 kodeeringus, ka failid, olid. Kuid kunagi ma ei teadnud mis põhjusel täpitähed korda sai.
Kuid muretsemiseks pole põhjust, leidsin ühe võimaliku lahenduse, mis peaks aitama ka suvalise andmebaasi kodeeringu või db ühenduse puhul - nimelt funktsioon htmlentities(); - kõigile teada tuntud, kuid mina olen alati kahe silma vahele jätnud sellise funktsiooni valikuliselt edastatavad parameetri nagu $charset.
Lisades funktsiooni kõige olulisema parameetri "string $charset" muutujaks "UTF-8" konverditakse kõik ä-d ja ö-d ja muud krõnksud vastavasse html kooditabelisse, mis tähendab, et isegi kui db on mingis muus tähemärgi süsteemis toetatakse ikkagi semikoolon ja & märke, mis täpitähtede tõlgendamiseks HTML lehtedel kasutatakse.
Arvatavasti kui kõik kodeeringud on korras, ei pea seda htmlentities funki kasutama, kuid tagavaraplaanina tundub asi toimivat.
Mina muutsin tekstikastist db-sse saatmise rida järgnevaks:
$kiri=htmlentities($_POST[$kast], ENT_QUOTES, "UTF-8"); |
EDIT:
Ma saan aru, milleks see funk mõeldud on, kuid db-sse salvestamiseks täpitähtedele vastavaid HTML märgendeid on ülikasulik. Palju koodilugemist jääb tegemata, kuna põmst on vaja vaid et db ; & ning üldisi täpita tähti toetaks. HTML-is kuvatakse ikka vastavad märgid õigesti.
viimati muutis Vananematu 12.02.2009 11:48:40, muudetud 3 korda |
|
Kommentaarid: 31 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
28 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004

|
12.02.2009 11:41:47
|
|
|
Pigem on see kasulik paharettide vastu, kus näiteks isik soovib enda kasutajanimeks mingit html elementi panna, et sinu lehe kood sellega ära rikkuda.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
12.02.2009 13:46:30
|
|
|
Siin on nüüd pikalt jahutud, et ei saa andmebaasi täpitähti ja neid sealt uuesti kätte. Olen baasi kül suht vähe kasutanud (ütleme 4 kohas +loclhost) kuidkuna ma sellele tähelepanu kunagi ei pööranud, siis text väljadele salvestatud tekstist on alati tulnud öüäõ kenasti välja ilma mingite kodeeringute seadmisteta. Tabelid on enamuses tehtud sellise päringuga:
$paring="CREATE TABLE MFsisu (
id int(11) NOT NULL auto_increment,
lehenimi text NOT NULL,
lehesisu text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;";
|
Siit siis küsimus, kui tõenäoline üldse on, et meil siin eesti teenusepakkujate andmebaasides byDefault selline kodeering peal, et täpikaid ei kuvata. (Localhostis läks mul andmebaas ka byDefault peale, mingeid seadeid ei ole muudetud) Kas see mul lihtsalt tohutu vedamine, et siiani kõik toiminud on?
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
inzinz
HV kasutaja
liitunud: 26.01.2005
|
12.02.2009 22:59:18
|
|
|
By default on latin1 peal, see on siis inglise tähestik + mõningad täpitähed. Kui aga keegi tahab sulle sinna vene keeles midagi panna siis läheb asi keerukaks. Esiteks kui latin1 kodeeringuga üritada muude charsettide asju salvestada, konverdib browser enne postitamist kujule y ja kui sa sinna omakorda veel htmlentities või htmlspecialchars peale peaned, siis lõpptulemus jääb kole, kuna kuvatakse tähemärgi asemel reaalselt välja y
Pluss kogu see info võtab baasis palju rohkem ruumi ja endal php koodis raskem nende asjadega maadelda.
Kui sul leht ainult eesti keeles ja imelikke märke sisse ei satu siis enamjaolt probleeme ei teki...
Sessuhtes maitse asi, aga utf-8 universaalsem ja kui kõik asjad korralikult ära seadistad alguses siis ei pea enam kunagi muretsema et mingi tähemärgi jama tekiks.
_________________ Upload.ee - eestimaine failiupload |
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
Vananematu
HV veteran

liitunud: 28.09.2003
|
20.02.2009 14:16:08
|
|
|
Tulles tagasi WYSIWYG editoride juurde, siis kas ülevalpool mainitutest mõni ka korralikku XHTML koodi väljastab? Katsetan nicEditori, mis tunbub piisavalt kiire ja väikesemahuline olema, kuid väljastab vana html süntaksit nagu <br> mitte <br /> jne.. Sellega seoses ei saa kuidagi lehte läbi xhtml kontrolli viia.
|
|
Kommentaarid: 31 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
28 |
|
tagasi üles |
|
 |
Speedee
HV kasutaja

liitunud: 23.04.2003
|
20.02.2009 15:17:20
|
|
|
Jah, tinyMCE väljastab valideeruvat html koodi, ka strict dtd oma. Sellega saab ka korrastada vigast html koodi mingi piirini.
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
 |
Renka
HV Guru

liitunud: 01.04.2002
|
20.02.2009 15:27:02
|
|
|
Speedee, küsimus oli XHTMLi kohta mitte HTMLi
_________________ There is no place like 127.0.0.1 |
|
Kommentaarid: 71 loe/lisa |
Kasutajad arvavad: |
   |
:: |
2 :: |
1 :: |
61 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004

|
20.02.2009 16:13:56
|
|
|
Xhtml transitionali peaks väljstama, strictiga ei lähe mitmed asjad kokku.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
Speedee
HV kasutaja

liitunud: 23.04.2003
|
20.02.2009 16:18:51
|
|
|
Ma mõtlesingi XHTMLi. Kes ikka enam tavalist htmli kirjutab/kasutab.
Mul pole nagu stricti valideerumisega probleeme olnud.
|
|
Kommentaarid: 13 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
13 |
|
tagasi üles |
|
 |
|