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 22:44 | Nová verze

    Programovací jazyk Python byl vydán v nové major verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | Zajímavý projekt

    BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.

    ❗Červivý Hřib krade❗ | Komentářů: 4
    včera 11:55 | Upozornění

    V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."

    Ladislav Hagara | Komentářů: 6
    včera 09:55 | IT novinky

    Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.

    Ladislav Hagara | Komentářů: 11
    včera 09:44 | IT novinky

    Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.

    Ladislav Hagara | Komentářů: 11
    včera 09:33 | Nová verze

    Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 2
    včera 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 1
    8.10. 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    8.10. 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 8
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2820 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    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: 786×
    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: 50 | 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-DK, Relational pipes
    xkucf03 avatar 23.5.2012 12:54 xkucf03 | skóre: 50 | 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-DK, Relational pipes
    Josef Kufner avatar 23.5.2012 15:07 Josef Kufner | skóre: 70
    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: 50 | 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-DK, Relational pipes
    Josef Kufner avatar 23.5.2012 18:53 Josef Kufner | skóre: 70
    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: 50 | 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-DK, Relational pipes
    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: 70
    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: 70
    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: 70
    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: 50 | 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-DK, Relational pipes
    Josef Kufner avatar 23.5.2012 21:09 Josef Kufner | skóre: 70
    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: 50 | 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-DK, Relational pipes
    Josef Kufner avatar 23.5.2012 21:40 Josef Kufner | skóre: 70
    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: 50 | 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-DK, Relational pipes
    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: 50 | 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-DK, Relational pipes
    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ákno • Nahoru

    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.