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

cPanel full backup i charset

[es] :: MySQL :: cPanel full backup i charset

[ Pregleda: 2324 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stankons
Stanko Milošev
ise Gmbh, Deutschland
Bonn

Član broj: 99408
Poruke: 231
*.trinet.si.

ICQ: 147767352
Sajt: www.milosev.com


Profil

icon cPanel full backup i charset20.10.2009. u 08:44 - pre 176 meseci
Ne znam da li pripada ovoj temi, ali ne znam gde bih pitao.

preko cPanel - a sam napravio full backup, sql koji je kreiran sadrži neke čudne znake, na primer:

"neće važiti"

postalo je:

"ne?„â€?e va?…Â?iti"

Da li možda neko prepoznaje šta je ovo? Kako da pretvorim nazad u "neće važiti"? Da li neko bar zna u kom charset - u je ovo?

Hvala.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: cPanel full backup i charset20.10.2009. u 11:12 - pre 176 meseci
pogledaj pocetak fajla, da li negde imas "set names ..." ... mysqldump to stavlja, ne znam kako cpanel pravi bekap....

elem, ako nista od toga ne pomogne, daj iz nekog hex editora daj dve reci posto ovi upitnici i ove tacke nisu ni ? ni . vec nesto drugo ..

ono sto meni ovde najvise lici je da je ovo utf8 ali da je tebi u bazi smece. sta to znaci ..

ako na primer imes tabelu

Code:

create table t1 (id int auto_increment primary key, smece char(30) character set utf8) engine=myisam;


mysql ce u atributu smece cuvati znake kao utf8. e sad, zamisli da imas php stranu koja izgleda ovako:

Code:

<?php
  $conn=mysql_connect('localhost', 'user', 'pass') or die('bedaj');
  mysql_select_db('test') or die('bedak');
  mysql_query('INSERT INTO t1 (smece) VALUES ('.mysql_real_escape_string($_POST['smece'], $conn).')', $conn);
  mysql_close($conn);
  echo ' u bazu sam upisao smece ';
?>


dakle sada sa neke forme na nekom html-u koji je utf8 u kojoj imas tekst polje "smece" u koje upises "neće važiti" desava se kada izvrsis onaj query gore sledece:

1. kreira se konekcija sa default vrednostima. default client character set za php je LATIN1 sto znaci da mysql od tebe ocekuje jednobajtna slova.
2. ti pokupis utf8 vrednost $_POST[smece] sto je niz bajtova { 'n', 'e', 0xC4, 0x87, 'e', ' ', 'v', 'a', 0xC5, 0xBE, 'i', 't', 'i'" }
3. sada taj niz bajtova posaljes mysql-u i on to sada snimi kao utf8, tj sada se u mysql-u u tom polju nalazi string od 13 karaktera i to zauzima 39 bajtova.

ti sada kada radis bekap te tabele iz aplikacije koja ima ideju kako se na bazu kaci, zakacis se na mysql sa pravilnim utf8 enkodingom i zatrazis taj string, mysql ti ga posalje karakter po karakter kao utf8
{ 'n', 'e', 0xC3, 0x84, 0xE2, 0x80, 0xA1, 'e', ' ', 'v', 'a', 0xC3, 0x85, 0xC2, 0xBE, 'i', 't', 'i'" }

E sad uporedi ovo sto sam ja sada preracunao sa ovim sto si ti dobio nazad ...

kako da sprecis da ti se ovo vise ne desava -> SET NAMES UTF8 ...
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: cPanel full backup i charset20.10.2009. u 11:31 - pre 176 meseci
da, zaboravih da ti odgovorim na "kako da vratim" ... ako taj mysqldump sa tim smecem vratis nazad takav kakav je na mysql imasces u bazi isto smece koje si imao kada si uradio bekap. I dalje ce ti web prikazivati to kao "validan tekst" iako to nije validan tekst (prikazuje se validno zato sto se ti opet okacis kao latin1, mysql izvrsi konverziju utf8 karaktera u latin1 karaktere, ti te latin1 karaktere posaljes web browseru koji ih istumaci kao utf8 zato sto u hederu html-a kazes da saljes utf8 - tako se smece prikaze kao validan string, ali je u bazi i dalje smece)
 
Odgovor na temu

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

Član broj: 37813
Poruke: 1123
*.b92.net.

Sajt: www.gvozden.info


+68 Profil

icon Re: cPanel full backup i charset20.10.2009. u 13:23 - pre 176 meseci
mozda je stos samo u tome sto on tu datoteku nije otvorio sa utf-8 editorom?

nepoznanica je kako je to upisano u bazi... sta se vidi u nekom programu koji komunicira sa bazom (termina, navica, phpmyadmin...)?

stoji sve ovo sto je rekao bogdan, ali mi se cini da nemamo dovoljno podataka. Sibni deo tog dump-a...

 
Odgovor na temu

stankons
Stanko Milošev
ise Gmbh, Deutschland
Bonn

Član broj: 99408
Poruke: 231
*.trinet.si.

ICQ: 147767352
Sajt: www.milosev.com


Profil

icon Re: cPanel full backup i charset20.10.2009. u 13:36 - pre 176 meseci
Trenutno ga nemam ovde, pošto sam na poslu, reč je o wordpress backup - u, možete videti na šta liči na www.milosev.com/blog

Otvorio sam sql upit u ultraedit - u, pokušavao sam da snimim na razne načine, ali ne ide. Svakako dobio sam ideju, pošto sam radio replace, ali slova ž i š se poklapaju, samo nisam gledao heksadecimalni zapis, pokušaću preko njega da radim search / replace.

Inače, reč je o tome da mi je sajt bio haknut, imao sam ne rupe nego rupčage, i kad sam malo trolovao - ne namerno, na temi PHP na es - u, ode sajt u tri lepe :-|

Osoba koja je haknula, otvorila je čak i facebook nalog sa e - mail adresom sa mog domena, navodno je stavio da je rođen 1998, znači ima samo 11 godina? Ako je to istina, onda svaka čast :)

Javiću se još, ako ne upali što ste napisali ovde, :)

Hvala.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: cPanel full backup i charset20.10.2009. u 13:47 - pre 176 meseci
agvozden, nema nista nepoznato u tome kako mysql cuva interno stvari. a ako ispratis moj post pazljivo videces da to sto je dobio nazad, moze samo na taj nacin da dobije nazad - dakle da upise u bazu utf karakter kroz latin1 konekciju i da ga onda pokupi nazad kroz utf8 konekciju. Dobijes tacno ono sto je on copy/paste iz dumpa...


stankons, ja sam daaaaaaaaaaaaaavno prestao da se bavim sigurnosti, tako da o tome stvarno necu da komentarise. dodatno je zabod sigurnost samog wordpress-a, eno ga moj blog sa wordpress-om, mogu ja do prekosutra da budzim server, ako wordpress ima rolju, ja mogu samo da cekam update pa da ga updateujem na vreme, nista drugo. da prolazim sada kroz source i trazim rupu - brze cu da ga napisem iz pocetka... tako da - iskreno - uopste se ne tangiram .. napravim bekap svakih par dana, ako neko hakne, sta ja da mu radim, vratim bekap i teram dalje ... uopste se ne tangiram

ocigledno da taj wp ne radi set names utf8 kada se konektuje .. isto kao sto ni ne napravi da su tabele utf8 sam po sebi nego su latin1 .. ja vidim da ovaj moj radi kao kako treba (uradi set names i tabele su utf8) al dal sam to sve ja siljio i dobudzivao il je tako bilo - da me ubijes ...

sve u svemu ovo ako vrnes u bazu, i nastavis da se konektujes kao latin1, i dalje ces da vidis sve podatke kao sto si video i ranije. ako vrnes ovo nazad pa dodas set names u wp - videces smece. najbolje resenje bi bilo da "popravis podatke", upises normalno u bazu i sredis wp .. samo je to i najkomplikovanije. ja sam pravio pre jedno 4 godine program koji je sredjivao damp fajl, al trazio sam ga vec 3 puta po dvd-ovima i odustao, a mrzi me ultra da ga pisem opet
 
Odgovor na temu

[es] :: MySQL :: cPanel full backup i charset

[ Pregleda: 2324 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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