HTML entity - špatné kódování – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

HTML entity - špatné kódování – PHP – Fórum – Programujte.comHTML entity - špatné kódování – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Matěj Andrle+1
Grafoman
4. 6. 2014   #1
-
0
-

Dobrý den,
v MySQL mám porovnávání UTF-8 bin. Začal jsem používat PHP funkci na převod textu do HTML entit, abych se zbavil problému příspěvků s HTML tagy. Jenže výsledný efekt za to nestojí. Uložila se mi sotva polovina požadovaného obsahu - a navíc:

Jontovà - TinyText - užito 25 charů - zde mnohem méně...

Praha - Malà - TinyText - užito bylo 22 charů - zde jen 1/4

Dobrý den - Text - užito 250 charů - zůstal jen první řádek a ani ten ne celý...

Kde je chyba? (Před změnou z obyčejného textu do entit vše šlapalo.)
Děkuji.

Nahlásit jako SPAM
IP: 78.136.143.–
Reklama
Reklama
Řešení
peter
~ Anonymní uživatel
2528 příspěvků
4. 6. 2014   #2
-
+1
-
Zajímavé
Kit +
Vyřešeno Nejlepší odpověď

normal uklada 1 byte, 1 byte...
utf-8 uklada nekdy 1 byte, nekdy 2 byte
html entity ti to cele jeste rozsiri, napr '>' prekoduji na 4 znaky(byte) '>'

Pokud mas tedy delku pole 8 utf znaku a chces ulozit htmlentities('>>>'), tak po zpracovani php mas '>>>' 12 znaku, ktere se do 8 znakoveho policka nevejsou a ulozi se jen '>>'. A kdyz je to policko jen 7 znaku, tak se ulozi >&gt , coz nektery prohlizec zobrazi jako >> a jiny jako >, protoze druha entita neni uplna.
Takze entity tam vubec neres, pri vypisu pouzij htmlspecialchars(), ktery to prevede na html text. Entity se pouzivaji k necemu uplne jinemu.

Nahlásit jako SPAM
IP: 2001:718:2601:258:a871:4c...–
Kit+11
Guru
4. 6. 2014   #3
-
0
-

#1 Matěj Andrle
HTML entity do databáze nepatří. Použij UTF-8.

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Matěj Andrle+1
Grafoman
4. 6. 2014   #4
-
0
-

Spíše po vytažení použiji escape na <> - to musí stačit - ne?

Nahlásit jako SPAM
IP: 78.136.143.–
Kit+11
Guru
4. 6. 2014   #5
-
0
-

#4 Matěj Andrle
Však na to se používá funkce htmlspecialchars(). Do databáze se HTML neukládá a entity už vůbec ne.

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
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, 26 hostů

 

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