Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zasto PHP unosi HTML entities u MySQL umesto cirilice?

[es] :: PHP :: Zasto PHP unosi HTML entities u MySQL umesto cirilice?

[ Pregleda: 3819 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Prtinac
Beograd

Član broj: 25596
Poruke: 99
80.93.247.*



Profil

icon Zasto PHP unosi HTML entities u MySQL umesto cirilice?30.04.2006. u 22:38 - pre 218 meseci
Kada ubacujem cirilicni tekst u bazu preko skripte, on se automatski konvertuje u HTML entities ш ili sta vec. Zasto je to tako i kako to da iskljucim? Kako to da iskljucim na sajtu hostovanom kod provajdera?
 
Odgovor na temu

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.243.*

Sajt: ohridnews.com


Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 01:38 - pre 218 meseci
Ako ti je encoding utf8, postavi
mysql_query("set names utf8");
 
Odgovor na temu

Prtinac
Beograd

Član broj: 25596
Poruke: 99
80.93.247.*



Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 10:05 - pre 218 meseci
Na zalost ni SET NAMES ne funkcionise (probao sam sa nekoliko character sets).
I dalje se unose HTML entities рм itd. umesto cirilicnih slova. Kada na isti nacin (cirilicnom tastaturom) unosim u PhpMyAdmin, sve funkcionise kako treba.

Moja test skripta:
-----------------
<?php
$db = mysql_connect("localhost","root","") or printf(mysql_error());
mysql_select_db("test",$db) or printf(mysql_error());

if (isset($_REQUEST["insertinto"])) {
$q = "insert into test1 values (null,'$_REQUEST[insertinto]')";
$r = mysql_query($q) or printf(mysql_error());
}

?>

<form action="test.php" method="post">
<input type="text" name="insertinto" />
<input type="submit" />
</form>
-----------------

Unosi glupe HTML entities umesto pravih cirilicnih karaktera i zbog toga ne mogu da pretrazujem bazu kako treba. Ni sa set names ne funkcionise.

[Ovu poruku je menjao Prtinac dana 01.05.2006. u 11:16 GMT+1]
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 10:40 - pre 218 meseci
Problem je na klijent strani, a ne PHP-u.

Verovatno ti strana na kojoj se nalazi FORM za unos teksta nije utf-8, pa browser automatski pretvara cirilicne karaktere u HTML entities. Stavi na starnu gde je form:

Code:

<meta http-equiv="content-type" content="text/html; charset=UTF-8">


Never trust an operating system you don't have sources for.
 
Odgovor na temu

Prtinac
Beograd

Član broj: 25596
Poruke: 99
80.93.247.*



Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 12:31 - pre 218 meseci
Citat:
bzero: Problem je na klijent strani, a ne PHP-u.

Verovatno ti strana na kojoj se nalazi FORM za unos teksta nije utf-8, pa browser automatski pretvara cirilicne karaktere u HTML entities. Stavi na starnu gde je form:

Code:

<meta http-equiv="content-type" content="text/html; charset=UTF-8">





Na zalost, ni sa ovim ne funkcionise. Isti slucaj... :-(
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 12:57 - pre 218 meseci
Probaj da postavis charset iz PHP-a:

Code:

<?php
header('Content-Type: text/html; charset=UTF-8');
?>


a ako i to ne radi, posalji link do problematicne strane.
Never trust an operating system you don't have sources for.
 
Odgovor na temu

Prtinac
Beograd

Član broj: 25596
Poruke: 99
80.93.247.*



Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 13:23 - pre 218 meseci
Sa headerom se u bazu ubacuje nesto ovako...
Åëåìåíò



A skripta mi je inace na lokalnom serveru, ali evo je u potpunosti:
Code:

<?php
header('Content-Type: text/html; charset=UTF-8');

$db = mysql_connect("localhost","root","") or printf(mysql_error());
mysql_select_db("test",$db) or printf(mysql_error());

if (isset($_REQUEST["insertinto"])) {
    $q = "insert into test1 values (null,\"$_REQUEST[insertinto]\")";
    $r = mysql_query($q) or printf(mysql_error());
}
?>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>

    <body>
        <form action="test.php" method="post">
            <input type="text" name="insertinto" />
            <input type="submit" />
        </form>
    </body>
</html>


A table u bazi ne moze biti jednostavniji:
Code:

CREATE TABLE `test1` (
  `id` int(11) NOT NULL auto_increment,
  `tekst` text,
  PRIMARY KEY  (`id`)
)
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 13:28 - pre 218 meseci
Citat:

Sa headerom se u bazu ubacuje nesto ovako...
Åëåìåíò


Pa onda je valjda sad u redu, ne ubacuje vise HTML entites nego "sirovi" utf-8, koliko se secam to je i bio problem?
Never trust an operating system you don't have sources for.
 
Odgovor na temu

flylord
Ilić Aleksandar
Simplicity d.o.o.
Nis/Uzice

Član broj: 2954
Poruke: 3859
..nis1-nis.customer.sbb.co.yu.

ICQ: 4849714


+68 Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 14:06 - pre 218 meseci
aj napisi sve relevantne podatke:

1) koji je encoding html strane sa koje unosis podatke
2) daj nam ovde strukturu tabele (izvuci preko phpMyAdmin-a dump tabele)
3) ne bas mnogo relevantno, ali bi bilo dobro da vidimo i phpinfo() izlaz sa tog servera
 
Odgovor na temu

Prtinac
Beograd

Član broj: 25596
Poruke: 99
80.93.247.*



Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 16:10 - pre 218 meseci
Citat:
bzero: Pa onda je valjda sad u redu, ne ubacuje vise HTML entites nego "sirovi" utf-8, koliko se secam to je i bio problem?


Hocu da ubacuje cirilicu. Kao sto ubacuje kad preko polja u PHPMyAdmin unesem cirilicu on je tako unese i u bazu.
 
Odgovor na temu

Prtinac
Beograd

Član broj: 25596
Poruke: 99
80.93.247.*



Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 16:13 - pre 218 meseci
Citat:
flylord: aj napisi sve relevantne podatke:

1) koji je encoding html strane sa koje unosis podatke
2) daj nam ovde strukturu tabele (izvuci preko phpMyAdmin-a dump tabele)
3) ne bas mnogo relevantno, ali bi bilo dobro da vidimo i phpinfo() izlaz sa tog servera





Napisao sam info 1 i 2 u jednoj od prethodnih poruka. Sto se tice phpinfo(), bitno mi je da to funkcionise kako treba na serveru kod EUnet-a (ali nije jos postavljeno), tako da bilo kakvo konfigurisanje PHP-a ili Apache-a ne dolazi u obzir (stari dobri EUnet, samo sto ne moras da im saljes fax sa memorandumom firme da bi ti promenili chmod nekog direktorijuma).
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 16:41 - pre 218 meseci
Ne znam sta radi PHPMyAdmin, posto ga ne koristim, ali sustina je u ovome, ako imas HTML stranu, i enkoding te strane je utf-8, kada uneses cirilicu, submituje to, dobices u PHP-u string koji je utf-8 enkodiran. Ako stavis da je enkoding strane windows-1251, posle submitovanja PHP ce dobiti isti taj string, ali windows-1251 enkodiran. Ako je enkoding html strane iso-8859-1, kao sto je kod tebe izgleda bilo u startu, dobices HTML entities, jer browser ne moze u tom enkodingu da prikaze cirilicna slova.

Znaci u zavisnosti od encodinga na tvojoj HTML strani na kojoj unosis tekst, dobices posle submita ISTI string, ali RAZLICITO enkodiran. Ne znam sta ti podrazumevas pod cirilicom, ali:

абц
àáö
&#1072;&#1073;&#1094;

sva tri reda gore su "abc" (cirilicom), s tim sto je prvo utf-8 enkodirano, drugo windows-1251, a trece su entities. Ti naravno treba da odlucis sta ti treba i koji enkoding koristis.
Never trust an operating system you don't have sources for.
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 17:09 - pre 218 meseci
Citat:
Prtinac: Sa headerom se u bazu ubacuje nesto ovako...
Åëåìåíò


Uzgred budi receno, ovo sto si ti poslao Åëåìåíò - je rec "Element" (naravno cirilicom) u windows-1251 enkodingu.
Never trust an operating system you don't have sources for.
 
Odgovor na temu

Prtinac
Beograd

Član broj: 25596
Poruke: 99
80.93.247.*



Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?01.05.2006. u 17:18 - pre 218 meseci
Ok, kapiram da ne kapiram mnoge stvari u vezi tih kodnih strana.

U svakom slucaju, sada mi je u bazi tekst kao HTML entities, sto je ok, sta je tu je. Jedini problem je sto kada pretrazujem tu bazu po korisnickom upitu, moze da se trazi samo case sensitive tekst. Da li je to moguce nekako zaobici u MySQL-u? Ili moram ponovo da ubacujem sav tekst ali u nekom drugom encodingu da bi MySQL mogao da ga trazi case insensitive?
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?02.05.2006. u 09:37 - pre 218 meseci
Ne verujem da je moguce zaobici taj problem u MySQL-u. Inace, najvece problemi kod entities-a su upravo problemi sa pretrazivanjem, kao i cinjenica da zauzimaju nekoliko puta vise prostora, umesto 1 ili 2 bajta za jedno slovo, kod entitesa treba 6 ili 7 bajta.
Najcistije resenje, po meni, je da se postojeci sadrzaj prebaci u neki normalan enkoding, npr utf-8, ali da li je to i prihvatljivo u konkretnom slucaju, drugo je pitanje.
Never trust an operating system you don't have sources for.
 
Odgovor na temu

rademit

Član broj: 100280
Poruke: 1
85.222.171.*



Profil

icon Re: Zasto PHP unosi HTML entities u MySQL umesto cirilice?03.07.2006. u 14:18 - pre 216 meseci
Pređite na LINUX tamo to sve radi bez problema!

Never trust an operating system you don't have sources for.
 
Odgovor na temu

[es] :: PHP :: Zasto PHP unosi HTML entities u MySQL umesto cirilice?

[ Pregleda: 3819 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.