Zadejte hledaný výraz...

Vkládání procesního kodu do webu uživatelem

Jan Kuthan
verified
rating uzivatele
(48 hodnocení)
11. 10. 2016 08:04:09
Zdravím,
chci se optat po zkušenostech a tipech v řešení následující činnosti.
Mám web (php/mysql), kde jsou načítány určité proměnné a uživatel by měl být na základě těchto proměnných schopný definovat si proměnné další např. výpočtem.
Příklad: uživatel ví, že má k dispozici proměnou A a B, chce si definovat C jako jejich součet.
V uživatelském prostředí by byla pravděpodobně textarea, kam by měl zadat vzorec.
Např. právě A+B (ale vzorce mohou být mnohem mnohem složitější, závorky, všechny operandy vč. porovnání atd.)
Vznikne tedy jakýsi pseudojazyk, který se musí následně zprocesovat. Otázky které pro mě vznikají jsou:
  • jak tento vzorec ukládat
  • jak do vzorce bezpečně doplňovat proměnné, co jsou k dispozici
  • jak jej vůbec zprocesovat (rád bych se vyhnul strašákům jako jsou eval() )
  • a v neposlední řadě, jak jej validovat při ukládání
Celé by to šlo napsat od píky, díval jsem se na principy a v nástinu se mi zdá, že by to šlo do jisté míry řešit přes polskou logiku (info), ale nerad bych vymýšlel kolo a byl bych raději, kdybych použil již hotové řešení - není tolik času na to to psát a ladit.
Dokázal by mi někdo poradit než se do toho pustím? Díky! :)
------------------------------------------------------------------------------------
Poznámka: jedno z řešeních na které koukám je v odpovědi zde http://stackoverflow.com/questions/1015242/how-to-evaluate-formula-passed-as-string-in-php
Poznámka2: také bych možná uvažoval o použití evalu v kombinaci s Runkit_Sandboxem http://php.net/manual/en/runkit.sandbox.php
+ validace http://www.php.net/manual/en/function.runkit-lint.php
11. 10. 2016 08:04:09
https://webtrh.cz/diskuse/vkladani-procesniho-kodu-do-webu-uzivatelem#reply1229368
Vladimír Smitka
verified
rating uzivatele
(4 hodnocení)
11. 10. 2016 09:40:34
Udělal bych si ně jaký výzkum existujících knihoven pro parsování matemetickch výrazů:
https://libraries.io/search?keywords=math+parser&languages=PHP
Google mi vyhodil i nějakou komerční knihovnu: http://www.mathparsers.com/math-parser-for-php/
Dále bych zvažoval zda nepoužít Wolfram Alpha API: http://products.wolframalpha.com/api/, nebo projít podmínky použití http://www.sympygamma.com/, případně se podívat po dalších alternativách.
11. 10. 2016 09:40:34
https://webtrh.cz/diskuse/vkladani-procesniho-kodu-do-webu-uzivatelem#reply1229367
Jan Kuthan
verified
rating uzivatele
(48 hodnocení)
11. 10. 2016 10:05:55
Napsal smitka;1330825
Udělal bych si ně jaký výzkum existujících knihoven pro parsování matemetickch výrazů:
https://libraries.io/search?keywords=math+parser&languages=PHP
Google mi vyhodil i nějakou komerční knihovnu: http://www.mathparsers.com/math-parser-for-php/
Dále bych zvažoval zda nepoužít Wolfram Alpha API: http://products.wolframalpha.com/api/, nebo projít podmínky použití http://www.sympygamma.com/, případně se podívat po dalších alternativách.
Úžasné, ta komerční splňuje vše. Prozkoumám licenci a asi koupím. Díky!
11. 10. 2016 10:05:55
https://webtrh.cz/diskuse/vkladani-procesniho-kodu-do-webu-uzivatelem#reply1229366
Pro odpověď se přihlašte.
Přihlásit