Aktywne Wpisy
Mefedronka +1502
Mirki, w końcu jestem singielką. Mogę robić co chcę.
Potrzebuję 500 plusów, żeby rozpocząć szalony projekt.
Każdemu plusującemu prześlę na pw zdjęcia.
Będzie to z jedną, no... może dwiema takimi marchewkami jak się uda.
Raczej na wykopie nikt tego nie robił, więc jakiś powiew świeżości doświadczycie.
Plusy zbieram do godz. 18:00. (。◕‿‿◕。)
Kto mnie zna, ten wie, że dotrzymuję słowa i wysyłam zdjęcia na prośbę
Potrzebuję 500 plusów, żeby rozpocząć szalony projekt.
Każdemu plusującemu prześlę na pw zdjęcia.
Będzie to z jedną, no... może dwiema takimi marchewkami jak się uda.
Raczej na wykopie nikt tego nie robił, więc jakiś powiew świeżości doświadczycie.
Plusy zbieram do godz. 18:00. (。◕‿‿◕。)
Kto mnie zna, ten wie, że dotrzymuję słowa i wysyłam zdjęcia na prośbę
DzonySiara +220
W zmiennej trzymam kod funkcji, którą do tej pory mogłem utworzyć i uruchomić przy pomocy createfunction() (DEPRECATED od wersji PHP 7.2).
$body = 'return ["time" => microtime(), "args" => $args];';
$fn = create_function('$args', $body);
var_dump($fn('test'));
Oczywiście mogę zrobić funkcję anonimową, ale tam nie wiem jak definiować jej kod w sposób dynamiczny.
$fn = fn($args) => ['time' => microtime(), 'args' => $args];
var_dump($fn('test'));
Czy w grę wchodzi tylko eval/evil?
$body = 'return ["time" => microtime(), "args" => $args];';
$fn = fn($args) => eval($body);
var_dump($fn('test'));
#php
Co do evala - jest zly tylko, jezeli do niego w jakis sposob dociera cos, co przyszlo z niezaufanego zrodla, np. od uzytkownika, czy zewnetrznego api. Jezeli ten ulep, ktory produkujesz, nie
To co ma wykonać eval nie będzie pochodziło z niezaufanego źródła. Jego użycie realizuje w 100% moje potrzeby, ale szukam alternatywy.
Rozwiązanie z plikiem tymczasowym gdzieś mi wpadło, ale ilość dodatkowych operacji mnie zniechęciła (być może niesłusznie).
Ogólne założenie jest takie, że muszę udostępnić możliwość podania sposobu obliczania wartości na podstawie różnych zmiennych. Prosty przykład: definiuję zmienną $x i $y,
@wgasowski: Rak kontent jakich mało. Pozwolić nieprogramistycznym ludziom na wsadzanie kodu. Gorzej. Pozwolić hakerom na zrobienie spustoszenia na serwerze w momencie prostej luki XSS.
NIE IDŹ TĄ DROGĄ.
@wgasowski: https://symfony.com/doc/current/components/expression_language.html
A kto powiedział, że tacy ludzie będą z tego korzystać? :)
To jest bardzo interesujące. Dzięki!
@wgasowski: W takim razie powinienes stworzyc wlasny jezyk wyrazen, zgodny z jezykiem domenowym uzytkownikow, a nastepnie przygotowac parser, ktory przelozy te wyrazenia na odpowiadajacy im kod.
Jednakze zanim zaczniesz to robic, zerknij, czy nie powstal juz gotowiec do tego.
Co wiecej, nie jestem pewien, czy te wyrazenia opracowywalbym po stronie serwera - moze lepiej to zrobic w JSie na froncie, a na backendzie zapisac tylko wynik operacji?