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 14:33 | Zajímavý projekt

Blender Animation Studio zveřejnilo první epizodu z připravovaného animovaného seriálu The Daily Dweebs o domácím mazlíčkovi jménem Dixey. Ke zhlédnutí také ve 3D s rozlišením 8K.

Ladislav Hagara | Komentářů: 0
včera 12:34 | Komunita

Aktualizovanou počítačovou hru Warhammer 40,000: Dawn of War III v ceně 39,99 eur běžící také na Linuxu lze o víkendu na Steamu hrát zdarma a případně ještě v pondělí koupit s 50% slevou. Do soboty 19:00 lze na Humble Bundle získat zdarma Steam klíč k počítačové hře Sid Meier's Civilization® III v ceně 4,99 eur běžící také ve Wine.

Ladislav Hagara | Komentářů: 0
včera 00:22 | Nasazení Linuxu

Společnost Samsung oznámila, že skrze dokovací stanici DeX a aplikaci Linux on Galaxy bude možno na Samsung Galaxy S8 a S8+ a Galaxy Note 8 provozovat Linux. Distribuce nebyly blíže upřesněny.

Phantom Alien | Komentářů: 10
19.10. 23:55 | Komunita

Společnost Purism na svém blogu oznámila, že její notebooky Librem jsou nově dodávány se zrušeným (neutralized and disabled) Intel Management Engine (ME). Aktualizací corebootu na již prodaných noteboocích lze Management Engine také zrušit. Více v podrobném článku.

Ladislav Hagara | Komentářů: 0
19.10. 21:44 | Nová verze

Organizace Apache Software Foundation (ASF) na svém blogu slaví páté výročí kancelářského balíku Apache OpenOffice jako jejího Top-Level projektu. Při této příležitosti byl vydán Apache OpenOffice 4.1.4 (AOO 4.1.4). Podrobnosti v poznámkách k vydání. Dlouhé čekání na novou verzi tak skončilo.

Ladislav Hagara | Komentářů: 6
19.10. 19:22 | Pozvánky

Již příští týden - 26. a 27. října se v Praze v hotelu Olšanka odehraje OpenWRT Summit. Na webu konference naleznete program a možnost zakoupení lístků - ty stojí 55 dolarů. Čtvrtek bude přednáškový a v pátek se budou odehrávat převážně workshopy a meetingy.

Miška | Komentářů: 1
19.10. 13:44 | Nová verze

Bylo vydáno Ubuntu 17.10 s kódovým názvem Artful Aardvark. Ke stažení jsou Ubuntu Desktop a Server, Ubuntu Cloud Images, Ubuntu Netboot, Kubuntu, Lubuntu a Lubuntu Alternate, Lubuntu Next, Ubuntu Budgie, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio a Xubuntu. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 22
19.10. 13:00 | Komunita

MojeFedora.cz informuje, že Fedora 27 dostane podporu pro AAC. Podpora multimediálních formátů je ve výchozí instalaci Fedory tradičně limitovaná kvůli softwarovým patentům, ale desktopový tým Red Hatu se ji i tak snaží v poslední době co nejvíce rozšířit. Už nějaký čas obsahuje kodeky pro MP3, H.264, AC3 a nyní byl přidán také kodek pro další velmi rozšířený zvukový formát – AAC.

Ladislav Hagara | Komentářů: 2
18.10. 23:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 145. brněnský sraz, který proběhne v pátek 20. října od 18:00 hodin v restauraci Time Out na adrese Novoměstská 2 v Řečkovicích. Jedná se o poslední sraz před konferencí OpenAlt 2017, jež proběhne o víkendu 4. a 5. listopadu 2017 na FIT VUT v Brně. Běží registrace účastníků.

Ladislav Hagara | Komentářů: 0
18.10. 21:44 | Nová verze

Byla vydána verze 5.2.0 multiplatformního virtualizačního nástroje Oracle VM VirtualBox. Jedná se o první stabilní verzi z nové větve 5.2. Z novinek lze zmínit například možnost exportování VM do Oracle Cloudu, bezobslužnou instalaci hostovaného systému nebo vylepšené GUI. Podrobnosti v seznamu změn. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 2
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (10%)
 (1%)
 (1%)
 (1%)
 (75%)
 (12%)
Celkem 145 hlasů
 Komentářů: 7, poslední 19.10. 23:06
    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.