abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 19:22 | Nová verze

Ondřej Filip, výkonný ředitel sdružení CZ.NIC, oznámil vydání verze 2.0.0 open source routovacího démona BIRD (Wikipedie). Přehled novinek v diskusním listu a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 09:22 | Pozvánky

V Praze dnes probíhá Konference e-infrastruktury CESNET. Na programu je řada zajímavých přednášek. Sledovat je lze i online na stránce konference.

Ladislav Hagara | Komentářů: 1
9.12. 20:11 | Nová verze

Byl vydán Debian 9.3, tj. třetí opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.10, tj. desátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 0
9.12. 00:44 | Nová verze

Po 6 měsících vývoje od vydání verze 0.13.0 byla vydána verze 0.14.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 88 vývojářů. Přibylo 1 211 nových balíčků. Jejich aktuální počet je 6 668. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 4
8.12. 21:33 | Nová verze

Po půl roce vývoje od vydání verze 5.9 byla vydána nová stabilní verze 5.10 toolkitu Qt. Přehled novinek na wiki stránce. Současně byla vydána nová verze 4.5.0 integrovaného vývojového prostředí (IDE) Qt Creator nebo verze 1.10 nástroje pro překlad a sestavení programů ze zdrojových kódů Qbs.

Ladislav Hagara | Komentářů: 0
7.12. 11:11 | Komunita

Naprostá většina příjmů Mozilly pochází od výchozích webových vyhledávačů ve Firefoxu. Do konce listopadu 2014 měla Mozilla globální smlouvu se společností Google. Následně bylo místo jedné globální smlouvy uzavřeno několik smluv s konkrétními vyhledávači pro jednotlivé země. V USA byla podepsána pětiletá smlouva s vyhledávačem Yahoo. Dle příspěvku na blogu Mozilly podala společnost Yahoo na Mozillu žalobu ohledně porušení této

… více »
Ladislav Hagara | Komentářů: 0
7.12. 05:55 | Zajímavý článek

V Londýně probíhá konference věnovaná počítačové bezpečnosti Black Hat Europe 2017. Průběžně jsou zveřejňovány prezentace. Videozáznamy budou na YouTube zveřejněny o několik měsíců. Zveřejněna byla například prezentace (pdf) k přednášce "Jak se nabourat do vypnutého počítače, a nebo jak v Intel Management Engine spustit vlastní nepodepsaný kód". Dle oznámení na Twitteru, aktualizace vydaná společností Intel nevylučuje možnost útoku.

Ladislav Hagara | Komentářů: 5
7.12. 04:44 | Komunita

Virtualizační nástroj GNOME Boxy ve Fedoře 27 umožňuje jednoduše stáhnout a nainstalovat Red Hat Enterprise Linux, který je pro vývojáře zdarma. Vývojová verze GNOME Boxy již umožňuje jednoduše stáhnout a nainstalovat další linuxové distribuce. Ukázka na YouTube. Seznam distribucí a jejich verze, nastavení a cesty k ISO obrazům je udržován v knihovně a databázi libosinfo (GitLab).

Ladislav Hagara | Komentářů: 0
7.12. 03:33 | Nová verze

Google Chrome 63 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 63.0.3239.84 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře. Opraveno bylo 37 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 12
6.12. 22:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 147. brněnský sraz, který proběhne v pátek 15. prosince od 18:00 hodin v restauraci Severka na rohu Tučkové a Zahradníkové.

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 952 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Dotaz: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK

    17.5.2012 16:46 adrinko | skóre: 22
    problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Přečteno: 396×
    Ahojte, prosim o pomoc, netusim preco dochadza k takemuto problemu:

    ked nacitam do ajaxu data zo statickeho skriptu index.html vsetko je ok. ale ked mi tie iste data vygeneruje dynamicky php vycitanim ich z db a naslednym echom, tak ajax nezbehne dobre, hlasi chybu (prehliadac).

    co je toto za hovadinu?

    priklad: index.html vypise "XXX" script.php vypise "XXX" ale vygeneruje to takto: echo $data[0]->var;

    viete niekto, v com je problem, preco data z php nie su dobre?

    Odpovědi

    Tarmaq avatar 17.5.2012 16:57 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    jakou chybu hlasi prohlizec? je urcite nultym prvkem pole $data instance nejake tridy?
    Don't panic!
    17.5.2012 17:20 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    áno, data je určite ok, lebo to vypíše vporiadku php (keď si otvoriím ten skript priamo v browseri). Prohlížeč IE píše syntax error line 281 character 163 v súbore ttm/canvas.1.03.jgz.

    17.5.2012 17:24 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    ešte prikladám ten súbor http://www.freefilehosting.net/canvas103
    Tarmaq avatar 17.5.2012 17:53 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    je velky problem ten soubor uploadnout primo sem?
    Don't panic!
    17.5.2012 17:38 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Určitě jsou to dva rozdílné výstupy lišící se nějakým netisknutelným znakem…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    17.5.2012 17:40 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    a viem to nejako zistiť, ktorý je ten netiskutelný znak?
    17.5.2012 18:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Jo, normálně si to stáhnout a pak se podívat/porovnat to třeba hex editorem.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    17.5.2012 17:50 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    neviem kde je problém, ale zistil som,že keď jednoducho vyechujem toto:
    $from ='05/17/2012 10:15:00';
      $to ='05/17/2012 10:30:00';
      $day ='5/17/2012';
    echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';
    tak to fičí ok, ale akonáhle pred to dám hocijakú funkciu, tak to ajax nespracuje, napr. toto (prepíšem na konci tie isté premenné čo v prvom skripte, ale aj tak to nejde dobre):
    $from= preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_from);
    $to  = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_to);
    $day = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->day);
    $from ='05/17/2012 10:15:00';
      $to ='05/17/2012 10:30:00';
      $day ='5/17/2012';
    echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';
    Tarmaq avatar 17.5.2012 17:58 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    hocijaku funkciu? ozaj? orly? neverim.. IMHO je problem nekde v poli $data
    Don't panic!
    17.5.2012 18:14 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    keby bol problém v $data, tak keď naplním znova manuálne tie isté premenné novými hodnotami (ako v ukážke kódu), tak by to malo fungovať, nie? ale mne to ani tak nefunguje.
    Tarmaq avatar 17.5.2012 18:41 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    presne tak, do promennych $from, $to, $date by se mely stejne priradit rucne definovane hodnoty, takze problem bude spise v tom, ze tam dojde k nejake notice/warning nebo tak neco, co pak rozbije ten vystup..
    Don't panic!
    17.5.2012 18:43 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    síce som neprišiel na to, čo tam blbne, ale prerobil som pole na iný tvar a ide to konečne super! diky za navedenie na správnu cestu!
    Array(
        [0] => array        (
                [id] => 24
                [time_from] => 05/17/2012 10:15:00
                [time_to] => 05/17/2012 11:30:00
                [day] => 05/17/2012
            )
     
    )
    17.5.2012 18:45 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    object vs. array?
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    17.5.2012 19:10 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    áno, presne. ale netuším, prečo to s obejct nefunguje.
    17.5.2012 22:24 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Asi to není všechno, co tady vidíme, a nebo prostě to tam generuje výstup, který je nám zde odpírán.
    Třeba tam vyletí nějaký notice či warning…
    Toto je to samé:
    <?php
    class Data{
      public $time_from = '05/17/2012 10:15:00';
      public $time_to ='05/17/2012 10:30:00';
      public $day ='05/17/2012';
    };
    
    $data = Array(0 => new Data());
    
    $from= preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_from);
    $to  = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->time_to);
    $day = preg_replace('/[\x00-\x1F\x80-\xFF]/', '',$data[0]->day);
    
    echo '{ "dtstart": "'.$from.'", "dtend": "'.$to.'", "day": "'.$day.'" },';
    
    jako byste přímo zapsal toto:
    { "dtstart": "05/17/2012 10:15:00", "dtend": "05/17/2012 10:30:00", "day": "05/17/2012" },
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    mess avatar 23.5.2012 15:20 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Tady vidím potenciální problém - čárka , na konci toho výpisu. Zkusil bych ji dát pryč, co to udělá.
    Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
    23.5.2012 15:31 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Jen jsem vysvětloval, že v tom není žádný rozdíl, jestli se to generuje a zavolá se nějaká fce, nebo se to vystřelí přímo - krom toho, že při generování tam můžou být chyby, které se snadno zjistí s vygenerovaného výstupu…
    Jak bylo zadání, tak jsem to tam opsal.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    17.5.2012 18:18 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    btw $data dava
    Array(
        [0] => stdClass Object
            (
                [id] => 24
                [time_from] => 05/17/2012 10:15:00
                [time_to] => 05/17/2012 11:30:00
                [day] => 05/17/2012
            )
     
    )
    v čom by tam mohol byť do kelu problém?
    17.5.2012 18:56 Kit
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Co to tam vyvádíš s tím echem? Snad se z toho nepokoušíš vyrobit JSON?
    echo json_encode(array("dtstart"=>$from,"dtend"=>$to,"day"=>$day));
    17.5.2012 19:05 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    problém s json_encode je ten, že mi z 05/17/2012 spraví 05\/17\/2012
    17.5.2012 19:14 Kit
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    To je snad dobře, ne? Alespoň je ten JSON korektní. To děláš pro Američany?
    18.5.2012 23:29 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    :D s tými Američanmi som sa pobavil. nie nie, nerobím to pre nich. je to taká nepodarený library, volá sa yui, ktorá berie len hetak naformátované veci a preto ak sa tam vyskytne spätné lomítko, tak to už nevie spracovať (teda vytiahnuť si dátumy korektne...)
    19.5.2012 00:42 DK
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    tak tam pridej replace do yui ne? :)
    19.5.2012 12:39 adrinko | skóre: 22
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    pravda, to by šlo.
    19.5.2012 12:58 Kit
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Pokud ten JSON budeš dávat do Javascriptu, stačí použít funkci eval(), která si s těmi zpětnými lomítky hravě poradí.
    19.5.2012 15:40 Filip Jirsák | skóre: 67 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    A s jiným podstrčeným kódem taky.
    19.5.2012 16:52 Kit
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Funkce json_encode() přidává uvozovky, podstrčený kód se tedy předá jako řetězec.
    xkucf03 avatar 23.5.2012 12:53 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    On spíš myslel, kdyby ze serveru přišel obecně nějaký závadný JSON (ve skutečnosti závadný skript), ale to není až takový problém, protože vlastnímu serveru bys měl věřit (a v případě MITM ti může podvrhnout cokoli jiného, takže už je to jedno).
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    xkucf03 avatar 23.5.2012 12:54 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Podle JSONLint validátoru je:
    {
        "dtstart": "05/17/201210: 15: 00",
        "dtend": "05/17/201210: 30: 00",
        "day": "05/17/2012"
    }
    v pořádku. Že by zase nějaká JSON obskurnost?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    Josef Kufner avatar 23.5.2012 15:07 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Ty zpětná lomítka před normální se tam přidávají, aby náhodou nevznikl uzavírací tag, který by mohl dělat někdy potíže. (Jo, je to úchylárna.)

    http://stackoverflow.com/questions/1580647/json-why-are-forward-slashes-escaped
    Hello world ! Segmentation fault (core dumped)
    xkucf03 avatar 23.5.2012 16:47 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Dík, to jsem nevěděl.

    Ale jinak OMG: od toho máme přece
    <![CDATA[
    …
    ]]>
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    Josef Kufner avatar 23.5.2012 18:53 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Tím jen převedeš problém na zákaz "]]>".
    Hello world ! Segmentation fault (core dumped)
    xkucf03 avatar 23.5.2012 19:27 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    No, hlavně odpovědnost za správné escapování nemá mít JSON (ani formát, ani knihovna), ale ten, kdo něco někam vkládá. A escapovat se bude pokaždé jinak podle toho, jestli vkládám do elementu bez CDATA, nebo do CDATA, nebo do atributu, nebo do .js souboru, nebo třeba do zdrojáku LaTeXu nebo jakéhokoli jiného formátu/prostředí… Připomíná mi to PHP Magic Quotes a podobné bastlení.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    23.5.2012 20:25 Kit
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    A proč? Když budu chtít uložit do JSONu binární data, tak nejsem povinen je nijak escapovat. json_encode() si s tím musí umět poradit tak, abych při json_decode() dostal identická data.

    Když ukládám data do DB, tak je také nesmím escapovat, abych je měl v DB přesně byte po bytu tak, jak je tam potřebuji mít.
    Josef Kufner avatar 23.5.2012 20:45 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Tak. A když pak vkládáš JSON do HTML, tak ho musíš taky escapovat.
    Hello world ! Segmentation fault (core dumped)
    23.5.2012 20:56 Kit
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Ne. Když vkládám JSON do HTML, tak nejprve json_decode() a pak htmlspecialchars(). V HTML nemá JSON co pohledávat.
    Josef Kufner avatar 23.5.2012 21:17 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Proč decode?
    Hello world ! Segmentation fault (core dumped)
    23.5.2012 21:35 Kit
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Abych dostal původní datový strom, který jsem si do JSONu uložil a mohl s ním dál pracovat.
    Josef Kufner avatar 23.5.2012 21:41 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    A v čem to pomůže jeho vložení do HTML?
    Hello world ! Segmentation fault (core dumped)
    23.5.2012 20:46 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    A zas jindy musím data escapovat, když je vkládám do db, abych je měl v DB přesně byte po bytu tak, jak je tam potřebuji mít.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    xkucf03 avatar 23.5.2012 21:00 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Protože můžu napsat třeba:
    <script>
      <?php
        echo json_encode(array("dtstart"=>"<![CDATA[","dtend"=>"05/17/2012 10:15:00"));
      ?>
    </script>
    nebo
    <script>
      <?php
        echo json_encode(array("dtstart"=>"<script>","dtend"=>"05/17/2012 10:15:00"));
      ?>
    </script>
    což mi rozbije výstup.

    Případně když budu vypisovat jinam (atribut, jiný formát), může se tam rozbít něco jiného. Proto je potřeba, aby escapoval ten, kdo ví*, kam se vypisuje. A tudíž je to polovičaté escapování ve funkci json_encode() nadbytečné a povede akorát ke zmatkům a chybám – stejně jako ty PHP Magic Quotes – programátoři se budou spoléhat na to, že můžou jen tak přilepit návratovou hodnotu funkce do výstupu a nebudou ji escapovat a špatně dopadnou.

    Ta funkce má i volby – trochu by pomohla JSON_HEX_TAG, která zneškodní ty < >, ale stále tam zbudou & a ty budou dělat neplechu (neexistující entity). Takže je potřeba přidat ještě JSON_HEX_AMP. A už to není tak jednoduché a možná tam jsou i další díry…

    Je to takový neunixový přístup, jedna funkce se toho snaží dělat příliš mnoho a nakonec to dělá blbě. Daleko lepší mi přijde to rozdělit – mít jednu spolehlivou funkci na generování JSONu a jinou spolehlivou funkci na escapování (pro různé výstupní formáty) a tyto dvě funkce zřetězit:
    $výstup = bezpečněEscapujProDanýVýstupníFormát(generujNějakáData($vstup));
    *) což může být programátor, který zavolá patřičnou funkci, nebo třeba nějaký inteligentní šablonovací systém, který zná kontext.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    Josef Kufner avatar 23.5.2012 21:09 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    <script>
      <?php
        echo htmlspecialchars(json_encode(array("dtstart"=>"&<![CDATA[","dtend"=>"05/17/2012 10:15:00")));
      ?>
    </script>
    Hello world ! Segmentation fault (core dumped)
    xkucf03 avatar 23.5.2012 21:23 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Ano, tak je to správně* – ostatně to jsem myslel tím bezpečněEscapujProDanýVýstupníFormát(). Jenže pak je nějaké přidávání zpětného lomítka před / zbytečnost a nemá tam co dělat – akorát to někoho svede k chybě.

    *) relativně – zase to zbytečně převádí " na &quot;, přestože uvozovky v textových uzlech (uvnitř elementů) klidně být můžou a je potřeba je převádět jen v atributech – a to ještě jen v těch, kde je hodnota zavřená do uvozovek – zatímco v <element atribut='nějaká "hodnota" s uvozovkami'/> klidně být můžou.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    Josef Kufner avatar 23.5.2012 21:40 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Ale v apostrofech uzavřené hodnoty zas nemohou obsahovat apostrof, takže to escapování uvozovek je celkem dobrý nápad. Ale jinak htmlspecialchars bere jako parametr příznak, zda uvozovky escapovat, či ne.
    Hello world ! Segmentation fault (core dumped)
    xkucf03 avatar 23.5.2012 21:46 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Koukám, že tam jsou příznaky na oboje – ENT_NOQUOTES a ENT_QUOTES – takže se dá dosáhnout celkem precizního výsledku, kdy se neescapuje to, co není potřeba:
    • apostrofy ani uvozovky uvnitř elementů
    • apostrofy uvnitř atributů zavřených do uvozovek
    • uvozovky uvnitř atributů zavřených do apostrofů
    ale výchozí chování je takové humpolácké.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    23.5.2012 21:30 Kit
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Specifikace formátu JSON připouští 2 možnosti ("/", "\/") a to není dobře. Na druhou stranu není možná dvojí interpretace. Shodneme se snad na tom, že při ukládání by nemělo být escapování pokud možno žádné, ale při výstupu je nutné escapovat podle kontextu, ve kterém je generován:
    • Javascript v HTML
    • čistý Javascript
    • čisté HTML
    • něco jiného
    Pokaždé je potřebné escapovat trochu jinak. Ve chvíli, kdy JSON vytváříme, však teoreticky nemusíme tušit, v jakém formátu bude uskutečněn výstup a proto jsou tyto zmatky.
    xkucf03 avatar 23.5.2012 21:42 xkucf03 | skóre: 46 | blog: xkucf03
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    V tom se shodneme.

    Nelíbí se mi to, když funkce na generování JSONu tam jako výchozí cpe ty \/, protože pak z toho bude mít někdo pocit, že nemusí escapovat a dojde k chybě. A když naopak escapovat bude, tak jsou tam ty \ nadbytečné – k chybě sice nedojde, ale proč je tam dávat?
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
    mess avatar 24.5.2012 15:38 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
    Rozbalit Rozbalit vše Re: problém so spracovaním dát ajaxom - z PHP zlé z HTML OK
    Ještě bych se zkusil podívat, jaké hlavičky posílá server, když servíruje to HTML a porovnal s tím, když servíruje PHP.
    Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.