Syndikace diskusí

Školení, která pořádám

Inspirován popisem chyb blogů jsem doplnil syndikaci všech diskusí i diskusí jednotlivých článků (odkazy jsou pod textem článků). S myšlenkou syndikovat diskuse jsem si pohrával už delší dobu, ale nechtěl jsem odběratele unavovat spamem, který do diskusí chodil. Vypadá to, že tento problém se mi podařilo alespoň prozatím vyřešit, takže už není důvod syndikaci skrývat.

Protože nesnáším CAPTCHA (který obvykle vypadá jako zdeformovaný obrázek, jehož text musíte přepsat do formuláře), zkoušel jsem spam rozpoznat nějak jinak. Omezení rozsahu IP adres nefunguje, jména autorů roboty také mění, analyzovat obsah příspěvku se mi nechce. Roboty neodradilo ani rel="nofollow", které jsem zezačátku dával k odkazům v komentářích. Vytvořit skryté formulářové políčko JavaScriptem nebo přidání příspěvků rozdělit do dvou kroků by podle mě roboty odstínilo, ale zároveň asi i některé uživatele. Nakonec jsem komentářový spam prozatím vyřešil tak, že jsem do formuláře u vybraných článků doplnil druhé odesílací tlačítko „Jsem robot“ (navíc ve stylu skryté). Vzhledem k tomu, že roboti, kteří mě obšťastňují, odesílají všechna formulářová pole, tak je to prozatím vyřadilo.

<?php
echo "<input type='submit' name='robot' value='Jsem robot' style='display: none;' />\n";
echo "<input type='submit' value='Vložit příspěvek' />\n";
if (!isset($_POST["robot"])) {
    mysql_query("INSERT INTO diskuse (jmeno, zprava, vytvoreno) VALUES ('" . mysql_real_escape_string($_POST["jmeno"]) . "', '" . mysql_real_escape_string($_POST["zprava"]) . "', NOW())");
}
?>

Viz také Ochrana formulářů proti spamu.

Jakub Vrána, Ze zákulisí, 17.3.2006, diskuse: 67 (nové: 0)

Diskuse

Medhi:

Možná spásný nápad. Uvidíme, jak se projeví v praxi, doufám, že časem budeš informovat.

ikona dgx:

Ten nápad je rozhodně vtipný, poprskal jsem si klávesnici :-)

Jan Kuchař:

Já taky :-D Hned to vyzkouším na webu, protože spamy nechodí jedině když vypnu server. :(

Bohumír Bednařík (BoboCop):

Myslím, že tohle je jedno z nejelegantnějších řešení komentářového spamu, jaké jsem kdy viděl. Jednoduché, uživatele neobtěžující a přitom asi účinné.

ikona dgx:

bugreport: feed diskuzí odkazuje na neexistující stránky v podobě http://php.vrana.cz/:d2317

ikona Jakub Vrána OpenID:

Chyba bude pravděpodobně ve tvé čtečce. http://php.vrana.cz/:d2317 používám jako neměnný identifikátor objektu ve značce <id>, odkaz je v <link href="">. Podle mě to je v souladu s RFC. Pokud jsi jiného názoru, tak prosím o bližší vysvětlení.

Tibor:

"bezva finta" :-)
Základom všetkého je to príliš nerozširovať, lebo potom sa roboty prispôsobia...

Petr:

Jediné účinné řešení spamu v komentářích je právě automatická analýza obsahu. Normálního uživatele nijak neobtěžuje, na běžné spamovací roboty je smrtící. Mám to na www.priroda.cz už asi 14 dní a funguje naprosto 100% :-)

ikona Jakub Vrána OpenID:

A na čem je ta analýza založena? Využívá se třeba Spam Assassin nebo to je vlastní řešení? Ať tak nebo tak, všechny by nás zajímalo, jak konkrétně to máš realizované.

Petr:

Je to vlastní řešení, spočívající na analýze obsahu příspěvku. Ještě to chvíli budu testovat a pak ten princip zveřejním a pokud bude zájem umožním ho používat i na jiných serverech.
Ale zatím si ho v rámci možnosti nezaujatého testování (aby se ho někdo nesnažil speciálně 'oblafnout' ale aby kontroloval reálný spam) nechám pro sebe ;-)

rony:

takych veci uz bolo: mal som bayesianske filtre nad komentarmi a stalo ma to asi tolko, ze mi sice spameri nasypali komentare, a potom som sa musel nimi prehrabovat a mazat ich.

preferujem riesenia, kde spam nikdy nedorazi na moju stranku.

nieto este "analyzovat" ci to je alebo nie je :-)

jimboe:

taky si myslím

rony:

14 dni? ty srandujes clovece!!!! Jedine DLHODOBO ucinne riesenie je naozaj hodne chvalenia sa!!! snad si len zartoval :-)

ja sa o nejakej technologii dokazem vyjadrit po dlhotrvajucom testovani v praxi.

a preto mozem povedat, ze riesenie ake ma Spravodaj.madaj.net je dlhodobo tak ucinne, ze neregistrujem ANI pokusy o spam.

PRe autora riesenia: vtipny napad! hodny zamyslenia a mozno ho prevezmem :-) dakujem ;)

JK:

Musím říct, že tohle řešení je téměř geniální :)
Rozhodně nejlepší článek jaký tu kdy vyšel... Jen tak dál!

ikona MISHAK:

JK: No nejlepší článek byl nějaký předtím :-)

Řešení je dobré, ale už jsem ho někde viděl (nemusíte to brát vážně, ale je to tak), sám preferuji kontrolu vložených údajů :-)
Přes vygenerovanou stránku ve 2 krocích.
1. Zadání
2. Kontrola
2.a) Potvrdí a odešle
2.b) Vrátí se zpět
Stačí zkombinovat Session a Post a jde to, a uživatel je alespoň jistější, že to zadal správně resp. že stihl ještě opravit chyby.

Uznávám, že v jednoduchosti je síla (někdy i krása viz. blbé blondýny) a účinnost bude 100%, dokud někdo z nás "zasvěcených" nezačne psát SpamBoty :-)

ikona MISHAK:

Ještě k tomu nofollow seznam jej do nedávna (možná ještě i dnes) nepodporoval.

oneless:

Také třetí týden blokuju spam na základě poslaného textu s prozatimní 100% účinností, ale tohle řešení mě fakt dostalo, skládám poklonu ;)) Až něco proleze asi nejdřív přidám tohle místo vymýšlení něčeho sofistikovanějšího..

Petr Lněnička:

Taky nás spam donutil vymyslet něco podobného před pár měsíci, požíváme CSS skryté input políčko s labelem nevyplňovat (+ kontrolu validnosti e-mailu a že vložený e-mail nemá koncovku shodnou s doménou) a máme klid. Viz např. http://www.prumyslove-zony.cz/

Medhi:

Tak hned po uveřejnění tvého příspěvku jsem tuto metodu nasadil na fotoblog a bohužel mi dneska přišla pravidelná dávka spamu. Pokud jsem někde neudělal chybu, tak hlásím, že u mě nefunguje. Ještě to asi zkusím udělat jako políčko TEXT se jménem třeba URL, to by mohlo lákat k vyplnění.

Petr Lněnička:

Nasazení, kdyz už ti spam chodí, může být pozdě. Spamové roboty si najdou tvůj formulář zapamatujou si proměnné a pak ho jen používají, aniž by si všimli, že tam něco přibylo. Změň URL místo kontakt.php třeba na kontakt1.php a mělo by to pomoct.

maty:

menit URL neni asi uplne nejlepsi reseni vzhledem k vyhledavacum a bookmarkum a podobne. Osobne jsem problem resil tak, ze jsem pridal policko input type="hidden" a kontroluju pri zpracovani prispevku hodnotu teto promenne. Spamboti o teto zmene nevedi, takze ti stavajici maji smulu a pro nove mam pripraveny ten trik se skrytym tlacitkem. Doufam, ze to bude fungovat, aplikoval jsem to asi pred hodinou:)

anonym:

jsi herec?

ikona Jakub Vrána OpenID:

Ještě můžeš zkusit dát "robotí" tlačítko jako první. Formulář pak sice nepůjde odeslat klávesou Enter, ale pokud se jako poslední vyplňuje <textarea>, tak to moc uživatelů nepocítí.

klokan:

Dosáhne se i při přehození submitů (1. odeslat, 2. robot) stejné ochrany? - tím by totiž zmizel problém při odentrování formuláře...

kahi:

Jojo, pěkný nápad, nedávno jsem aplikoval něco podobného (v css skrytý text-input s popiskem "nevyplňovat"), ale o účinnosti nemohu dělat žádné závěry, chodilo tam jen pár spamů za den...

bahara:

Krásný případ toho, že geniální věci jsou věci jednoduché, ale přesto je vymyslí jen ti nejlepší. Supr nápad.

Petr:

Pokud se někdo chcete zapojit do testování nového typu antispamu v debatách viz http://php.vrana.cz/syndikace-diskusi.php#d-2326, tak mi napište testovani(a)perpetum.cz.

Podmínkou je ale že máte server v češtině a můžete si debatu upravit pro volání externí kontrolní funkce. Napište mi prosím zároveň, cca kolik máte denně nových příspěvků v debatě a kolik je z toho spam.

@ss@ssIn:

Ja mam mozno riesenie pritiahnuet za vlasy, ale:

prispevky do diskusie mozu pisat iba registrovany uzivatelia - kontorla emailom :) pre nekoho to moze byt otrava, ale ak bude spam, hned viem od koho => BAN :)

BTW: co si myslis o tomto:
Stranke(s formularom) by pri loade ukadal session (cookie, cokolvek) a pri vkladani do db by sa testovalo kedy bola starnaka otvorena naposledy a aka stranka (ak sa do diskusie na topic #10 pridava komentar zo stranky ktora je urcena na topic#2 a bola otvorena pred tyzdnom, asi to nebude ok ...)

ikona Jakub Vrána OpenID:

Některé roboty jsou pečlivé, takže pro odeslání příspěvku použijí aktuální formulář (nejprve si ho stáhnou).

Priwi:

Já to taky použil, ale spam mi začal chodit.. Nevim, jestli jsem to neudělal špatně, ale prostě mi to nepomáhá...

Bobík:

Opravdu geniální ochrana.
Narazil jsem na tuto fintu:
Při generování formuláře se do hiddenu uloží aktuální čas. Po odeslání se porovná s aktuálním a jestli tam je rozdíl menší než 5 sekund, tak je to spam. Málo který uživatel dokáže něco napsat do 5 sekund.

Ike:

Je to hodne dobry, dal jsem to na web taky.

Petr Švec:

Dobrý nápad... bohužel už ho roboti znají, protože jsem ho zavedl a odstínilo mi to jen jednoho spammera :((( Takže to bude chtít CAPTCHA

pa3k:

Stretol sa niekto z Vás so spamom, ktorý by sa nesnažil zanechať odkaz? IMHO je pokus o vloženie odkazu jedna z podmienok, kedy môžem od prispievateľa očakávať, že by mohol tolerovať CAPTCHA overenie. Samozrejme pri príspevku bez pokusu o vloženie odkazu tam žiadna CAPTCHA nezavadzia. Osobne to riešim práve takto, samozrejme iné ochranné prvky pre skombinovanie vždy prídu vhod :) Napríklad tá 5 sekundová intolerancia, falošné tlačítko a podobne.

Keen:

Doufal jsem, ze mi tahle ochrana proti SPAMu pomuze, protoze taky nemam rad CAPTCHA, ale vubec nezabrala viz.

http://www.486games.net/game.php?id=18
http://www.486games.net/game.php?id=145

Karel_30150:

Keene, nechci ti do toho kecat, ale myslíš, že použít kód obrázku i jako jeho název je nejlepší nápad? ;-)

Honzajs:

Ja to delam tak ze vlozim povinny policko napr 2+2 a kdyz jako odpoved neni 4 tak to nepusti dal :) myslim si ze to zase tolik neobtezuje :)

Marek:

No trochu to obtezuje :-) ... navic si myslim ze vyhodnotit jednoduchy matematicky vyraz zvladne spambot celkem snadno. Kdyz uz bych toto reseni nasadil tak bych tu otazku 2+2 zobrazil jako obrazek nebo ji napsal nejak originalne slovy , například "součet dvojky a pětky = " ... ale vazne si myslim ze to obtezuje.

ikona Kamokery:

No spam taky obtezuje jek tebe tak uplne vsechny co si prohližeji jakoukoliv diskusi...
A pro uzivatele co ma zajem se diskuse zucastnit vplnit jedno policko navic je trsku obtezujici ale urcite bude mit pochopeni... A bude rat se se nemusi v diksusi brodit spamovyma odkazama na fresh porno :P

haXis:

A co třeba ošetřit referer url?

ikona Jakub Vrána OpenID:

To je bohužel nanic, roboti Referer posílají.

Gofry:

Neviem, ako na iných stránkach, ale keď do mojej diskusie dorazí spam, tak premenná $_SERVER[HTTP_REFERER] je síce vždy nastavená, ale na http://www.moja_domena.net, kdežto pri odosielaní skutočným človekom z originálneho formulára je nastavená na http://www.moja_domena.net/diskusia.php.

Zrejme by spammeri mohli zariadiť, aby to bolo pre spam tiež http://www.moja_domena.net/diskusia.php, ale príde mi divné, že to nerobia.

Hlada:

Taky bych mel jeden napad, ktery zatim funguje.
Ve formulari je skryte pole s hodnotou 'X'.
pri onSubmit se jeho hodnota pomoci javaScriptu zmeni na 'Y' a kontrola je na svete

Roboti, kteri mi posilali i 1500 prispevku denne se zatim JavaScript nenaucili a 99% uzivatelu ma JavaScript zapnuty.

Formular se opticky nezmeni. Uzivatel ani nepozna, ze se neco zmenilo (krome zmizeni spamu)

ikona Jakub Vrána OpenID:

Toto řešení ale odstíní i uživatele s vypnutým JavaScriptem. Těm je slušností zobrazit pole, které by měli vyplnit ručně. Pozítří vyjde článek, který tuto dnes už běžnou ochranu popíše.

ikona dgx:

> Pozítří vyjde článek, který tuto dnes už běžnou ochranu popíše.

...pokud ho však někdo jinde nedopíše dříve!

Ne, nebudu zlý :-) Kdo dlouho dopisuje rozepsané, sám sobě škodí.

Rishare:

Na relativne malych strankach gymnastickeho klubu www.stjmladi.com jsem se jednu dobu take potykal se spamem (cca 5-20 spamu denne). Zkusil jsem primitivni reseni, ackoliv jsem neveril, ze bude fungovat. A ejhle - funguje zatim na 100%

Princip je notoricky znamy. Mam kolonku, do ktere uzivatele nechavam opsat cislo, ktere je vygenerovane a predavane pres hidden. Protoze se mi ale nechtelo aplikovat captcha, tak jej proste generuji jako text v php :-D

Stale uzivatele bez promenne IP (vetsina) mam v seznamu a vyplnuji jim policko automaticky. Svete div se, ale tohle jednoduche reseni zatim dokonale funguje (ackoliv napsat bota na miru tomuto reseni by bylo trivialni)

<?php  $kontrolni = Rand()%(10).Rand()%(10).Rand()%(10); ?>
    <td><strong>Kontroln&iacute; k&oacute;d:</strong></td>
    <td><input type="text" name="zadal" value="<?php if ($known_ip[$_SERVER['REMOTE_ADDR']]) { echo $kontrolni; } ?>"> &nbsp;k&oacute;d: <span id="nadpis"><?php echo $kontrolni; ?></span>
        <input type="Hidden" name="kontrolni" value="<?php echo $kontrolni ?>"></td>

Jelikoz chci uzivatele obtezovat co nejmene, zvazuji dalsi krok - Stalym uzivatelum s promennou IP zaslu cookie s kontrolnim retezcem a podle nej pak php rozpozna staleho uzivatele (pripadne pokazde jeho novou IP prida do seznamu znamych IP, jelikoz jsem empiricky vybadal, ze se uzivatelum meni IP max. v rozsahu desitek)

Číňan:

Jo a další účinný způsob je použít číňana :-) http://potize.inos.cz/kniha.php

ikona náhradní autodíl:

@Číňan: a co lidi ze zahraničí, kteří nemají nainstalovanou češtinu?

zdendas:

Lidi zkuste se podívat na http://spamslayer.pevnina.cz/ jedná se o systém, který pomocí databáze blokovaných slov a ip adres likviduje spam se zhruba 97% účinností. Mometálně je verze 1.4 a chystá se další výrazné vylepšení.
Celý systém je pro kohokoliv zdarma.

PS: instalace je v pohodě, ale lidi bez znalosti php s ní asi budou trochu bojovat

Onecar:

Když jsem se dneska ráno rozhodoval, co mám se spamem dělat, Jakubovo řešení pro mne byla jasná volby. Díky.

Had:

hm...taky jsem to nejdřív řešil přes kontrolu náhodnýho řetězce, co uživatel opsal, ale teď to jeden bot obešel a navíc asi to odpuzuje lidi.

vzpomněl jsem si, že tady u tebe na webu sem taky něco takovýho četl a rozhosně to tam dám. je to snad nejlepší způsob, co jsem o tom četl.

Pilda:

Super nápad, jenom bych doplnil dvě věci

1) Je bezpodmínečně nutné, aby skrytý odesílací tlačítko (jsem robot) bylo před tim pravym odesílacím, jinak to bude odesílat tim prvnim a to je to pravé.

2) Někteří roboti si pamatují jména inputů a vyplňují je automaticky, takže pokud mají zaindexovaný formulář bez toho tlačítka "Jsem robot", tak to budou posílat bez něj. Řešení je, přejmenovat nějaký jiný důležitý input.

MiK:

Dobrý den,
víte co nechápu. Když každý operátor, provider atd. monitoruje každý protokol, každý bit, jak je možný, že nedokáže zjistit, odkud je spam odesílán. I kdyby to bylo z "tramtárie" tak se to snad musí dát dohledat a pak odsoudit hooodně natvrdo a oni by si to ostatní rozmysleli!!!
Zakázal bych anonimní PROXY servery, popř. je evidoval a nakázal jím vést protokoly atd. no prostě apeluji na vládu všech zemí - PROBUĎTE SE!!!
Nejlepší je prevence :)

ikona Jakub Vrána OpenID:

Spam se často posílá z tzv. zombie - počítačů normálních lidí převzatých hackery. Zdroj spamu se tedy neustále mění, takže nejde snadno zablokovat.

Jan Kuchař:

Tohle se stalo jedné kámošce, počítač jí popřád posílal emaily na adresy které nikdy neviděla a nikdo nevěděl jak se toho zbavit... :(

ikona D-VO:

Taky mi do návštěvní knihy psali spam-choboti, zhruba 2× denně. Začal jsem si zapisovat jejich IP adresy, a zajistil jsem dohromady asi 30 adres (vždy asi 10 se lišilo jen koncovým trojčíslím). Tak jsem je zakázal (nebyly to žádné české IP), a spamování ustalo. Po roce jsem zakázané IP zase uvolnil, a zatím v pohodě (klepu na dřevo).

Jinak CAPTCHA pomocí opisování textu z obrázku je kravina na n-tou, pokud není nabídnuta alternativní možnost, protože:
1) ne všechny prohlížeče obrázky zobrazují,
2) ne všichni lidé obrázky vidí.

Je mi jasné, že to je třeba jen 1 % přístupů, ale i tak. Mně osobně to taky dost obtěžuje, přestože problém s obrázky nemám. Ale pokud to vysloveně nepotřebudu, tak takovou stránku hned zavírám.

Velice to komplikuje přístup například lidem s vadou zraku, kteří používají hlasovou čtečku, a kterým internet a počítače vůbec úžasně pomáhají. Zažil jsem to na vlastní oči, a v tu chvíli bych tomu co to vymyslel vlastnoručně vypíchal oči, ať si svůj formulář s obrázkem zkusí poslepu vyplnit!

kozotoč:

nedávno jsem četl článek nějakého "machra" o dokonalém CAPTCHA, který byl psaný dvěma barvami a obsahoval instrukci, co má uživatel udělat (něco spočíst, něco opsat, ..., a týkalo se to vždy jedné z těch dvou barev, vypsané slovně) a jako lahůdka byly ty instrukce schválně včetně překlepů. z takové stránky bych vysmah' i já.

Joshis:

"Ne vsichni uzivatele obrazek vidi"

Znas reCAPTCHA? Ta ma k obrazku alternativu - wav soubor (precte se ti text a ty ho mas prepsat)

CAPTCHA sice otravuje, ale podle me to je docela rozumny reseni treba v kombinaci s cookie, ktera si pamatuje, ze uz jsi jednou pres CAPTCHu prosel...

kozotoč:

Milé,
ale všechno to stojí a padá na tom, že spamboti posílají všechna submit-políčka. oproti javascriptové verzi je to ale elegantnější řešení.

kozotoč:

napadlo mě ještě...
jak vypadá post odeslaný robotem, když hlavní tlačítko je typu <input name="obrazek" type="image">? když to odešle uživatel, dostanu proměnné obrazek.x a obrazek.y, ale když to odešle robot (přes sockets, předpokládám), vycucá si x a y z prstu? Nestálo by to za zkoušku?

ikona pravopysk:

Ještě co se týká SPAMu,
podívejte se například na

http://www1173640515703.reporterweb.com/

když si výše zmíněný (nebo jiný, vygenerovaný) odkaz dáte na stránky, tak (prý) spamboti, kteří sosají emaily, a kteří na ni přejdou, se dostanou do nekonečné smyčky, odkazující ... na emaily SPAMisty samotných! Už to dlouhou dobu běží, ale napadlo mě to sem dát teprve teď.

Více viz odkaz

bmf:

Toto má ale jednu pihu na kráse - doména první a druhé úrovně je vždy reportweb.com, na což se boti mohou přizpůsobit. NICMÉNĚ...

...to se může změnit.
V souvislosti s tím mě totiž napadá, že by šlo (například Jakubovým způsobem, stejně jako jinými) ne pouze nevložit SPAM-příspěvky, ale před zahozením v nich prozkoumat linky, na které odkazují, a ty vložit do databáze. Každý vývojář by si mohl napsat svého SPAM ASSASINa (tak se to myslím jmenuje u toho reportweb.com), čímž by odpadla nevýhoda konstantní domény. Vývojáři by si pak tato data mohli vyměňovat, doplňovat je (čili vytvořit něco jako SPAM-360°RING).

Prosím, prosím! - napište mi, do jaké míry by to podle vás bylo realizovatelné, popř. jestli by do toho rovnou někdo šel! díky

bmf:

pardon - 'jsem rádio Jerevan: jednak asi AntiSPAM-ring a ne SPAM-RING :-), druhak se to jmenuje SpamPoison a ne Spam Assasin a třeťak těch domén je víc. Ale přesto je jich omezený počet a vytvoření ringu platí.

Michal Aichinger:

I mě doběhly spamy v příspěvcích. Zkoušel jsem skrytý odesílací čudlík a testovat zda byl použit - nepomohlo.
Zkusil jsem testovat čas, tedy pokud byl form odeslán do 10s od načtení stránky, tak je spam - nepomohlo.

Čím teď bojuji:
Vykilloval jsem všechny HTML tagy, stejně tam nemají co dělat.
Omezil jsem délku příspěvku na 1000 znaku a jsem ochoten to zkrátit i na polovinu - delší je spam.
Každý příspěvek v kterém je více než 4x použito http, považuji za spam (nemam web o internetu)
Nalezl jsem asi 20 slov, ktere když se vyskytnou je to spam. Zkusim je hodit do dalšího příspěvku.

Michal Aichinger:

Ty slova jsou:
steroid
viagra
phentermine
[url=   <-jedno z nejdulezitejsich, nepouzivam BB forum, tim padem tohle je vzdy spam
pussy
lesbian
tramadol
cialis
xanax
Great place to visit!
Great website
stock trading

bmf:

hmm.. ještě bych doplnil "penis enlargement" :-) ... :-/ ... :-(

ale stále to není 100%. když ti někdo ze zahraničí napíše, že máš "great website" a za tím podnětnou delší zprávu, tak ho budeš považovat za spamera.
to už je asi lepší udělat kompromis a třeba označit takové příspěvky jako ty, které mohou "killnout" obyčejní uživatelé, co říkáte?

Michal Aichinger:

Mno jde vzdy o slova pro konkretni web. Napr. mame komentare pod clanky a ty jsou vzdy pouze v cestine, proto si muzu tohle dovolit.

Diskuse je zrušena z důvodu spamu.

avatar © 2005-2024 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.