เบเบตเปเปเบกเปเบเบเปเบฒเบชเบฑเปเบ haserl เบเบตเปเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเปเบ OnWorks เบเบนเปเปเบซเปเบเปเบฅเบดเบเบฒเบเปเบฎเบเบเบดเปเบเบเบฃเบตเปเบเบเปเบเปเบซเบเบถเปเบเปเบเบซเบผเบฒเบเบชเบฐเบเบฒเบเบตเปเบฎเบฑเบเบงเบฝเบเบญเบญเบเปเบฅเบเปเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเปเบ Ubuntu Online, Fedora Online, Windows online emulator เบซเบผเบท MAC OS online emulator
เปเบเบเบเบฒเบ:
NAME
haserl - เปเบเบเบเบฒเบเบเบฝเบ cgi เบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบเบฑเบเปเบงเป
เบชเบฐเบซเบผเบธเบเบชเบฑเบเบฅเบงเบก
#!/usr/bin/haserl [--shell=เปเบชเบฑเปเบเบเบฒเบ] [--upload-dir=dirspec] [--upload-handler=เบเบนเปเบเบฑเบเบเบฒเบ]
[--upload-limit=เบเปเบฒเบเบปเบเบเบญเบเปเบเบ] [--เบเบญเบกเบฎเบฑเบ-เบเบฑเบเปเบปเบ] [--เบเบญเบกเบฎเบฑเบ-เบเปเป] [--เบเบฝเบ] [--เบเบตเบเบฑเบ]
[ text ] [ <% shell script %> ] [ text ] ...
เบฅเบฒเบเบฅเบฐเบญเบฝเบ
Haserl เปเบเบฑเบ wrapper cgi เบเบฐเบซเบเบฒเบเบเปเบญเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเป "PHP" เบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบก cgi เปเบเบ, เปเบเปเปเบเป UNIX.
bash-like shell เบซเบผเบท Lua เปเบเบฑเบเบเบฒเบชเบฒเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบก. เบกเบฑเบเบกเบตเบเบฐเบซเบเบฒเบเบเปเบญเบเบซเบผเบฒเบ, เบชเบฐเบเบฑเปเบเบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเป
เปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฑเบ, เบซเบผเบทเบเปเบญเบเบเบตเปเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเปเบเบฑเปเบ PHP เปเบกเปเบเปเบซเบเปเปเบเบตเบเปเบ.
เบกเบฑเบเบฅเบงเบกเบชเบฒเบกเบฅเบฑเบเบชเบฐเบเบฐเปเบเบปเปเบฒเปเบเปเบเปเบเบทเปเบญเบเบเบฑเบ cgi เบเบฐเบซเบเบฒเบเบเปเบญเบ:
เบกเบฑเบเบงเบดเปเบเบฒเบฐเบเบฒเบเบฎเปเบญเบเบเป POST เปเบฅเบฐ GET, เบงเบฒเบ form-elements เปเบเบฑเบ name=value pairs เปเบเบปเปเบฒเปเบเปเบ
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบชเปเบฒเบฅเบฑเบ CGI script เบเบตเปเบเบฐเปเบเป. เบเบตเปโเปเบกเปเบโเบเปเบฒเบโเบเบทโเบเบฒเบโ uncgi เบซเปเป.
เบกเบฑเบเปเบเบตเบ shell, เปเบฅเบฐเปเบเบเปเปเบเบงเบฒเบกเบเบฑเบเบซเบกเบปเบเปเบเบปเปเบฒเปเบเปเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบตเปเบเบดเบกเปเบเป. เบเปเปเบเบงเบฒเบกเบเบฑเบเปเบปเบ
เบเบฒเบเปเบ <%... %> เปเบเบเบชเปเบฒเบเบเบทเบเบชเบปเปเบเบเปเบฒเบ verbatim เปเบเบซเบฒ shell. เบเบตเปเปเบกเปเบเบเบฒเบเบขเปเบฒเบ
เบเบทเบเบฑเบเบเบฒเบเบเบฝเบ PHP เบญเบฑเบเบชเบญเบ.
เบกเบฑเบโเบชเบฒโเบกเบฒเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบดเบโเบเบฑเปเบโเบเบฒเบโเปเบฅเบทเบญเบโเบเบตเปโเบเบฐโเบซเบผเบธเบโเบฅเบปเบโเบเบฒเบโเบญเบฐโเบเบธโเบเบฒเบโเบเบญเบโเบเบปเบโเบเบฑเบโเปเบเบปเปเบฒโเบเบญเบ script เปเบเปโ,
เปเบซเปเบกเบฑเบเบเบฒเบเบฅเบฑเบเบชเบฐเบเบฐเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบ suexec or cgiwrapper.
OPTIONS เบเบปเบเบชเบฐเบซเบผเบธเบ
เบเบตเปเปเบกเปเบเบชเบฐเบซเบผเบธเบเบเบญเบเบเบปเบงเปเบฅเบทเบญเบเปเบเบงเบเปเบฒเบชเบฑเปเบ. เบเบฐเบฅเบธเบเบฒเปเบเบดเปเบ OPTIONS เบเบฒเบเบชเปเบงเบเบเบฒเบเปเบเป
เบเบทเปเบเบฒเบเปเบฅเบทเบญเบเบเบฒเบงเบชเปเบฒเบฅเบฑเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบตเปเบชเบปเบกเบเบนเบ.
-a --เบเบญเบกเบฎเบฑเบ-เบเบฑเบเปเบปเบ
-n --เบเบญเบกเบฎเบฑเบ-เบเปเป
-d --debug
-s, --shell
-S, --silent
-U, --upload-dir
-u, --upload-limit
-H, --upload-handler
OPTIONS
--เบเบญเบกเบฎเบฑเบ-เบเบฑเบเปเบปเบ
เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเปเบเบฃเปเบเบฃเบกเบเบฐเบฎเบฑเบเปเบญเบปเบฒเบเปเปเบกเบนเบ POST เปเบกเบทเปเบญ REQUEST_METHOD เปเบกเปเบ POST เปเบฅเบฐ
เบเบญเบกเบฎเบฑเบเบเบฝเบเปเบเปเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเปเปเบกเบนเบ URL เปเบกเบทเปเบญ REQUEST_METHOD เปเบกเปเบ GET. เบเบฒเบเปเบฅเบทเบญเบเบเบตเป
เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบฑเบเบชเบญเบ POST เปเบฅเบฐเบเปเปเบกเบนเบ URL เปเบเปเบฎเบฑเบเบเบฒเบเบเบญเบกเบฎเบฑเบเปเบเบเบเปเปเบเปเบฒเบเบถเบเปเบเบดเบ REQUEST_METHOD.
เปเบกเบทเปเบญเบเบปเบงเปเบฅเบทเบญเบเบเบตเปเบเบทเบเบเบฑเปเบ, REQUEST_METHOD เบกเบตเบเบงเบฒเบกเบชเบณเบเบฑเบเบเบงเปเบฒ (เปเบเบฑเปเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบ
เปเบกเปเบ POST, FORM_variables เปเบกเปเบเปเบญเบปเบฒเบกเบฒเบเบฒเบเบเปเปเบกเบนเบ COOKIE, เบเปเปเบกเบนเบ GET, เปเบฅเบฐเบเปเปเบกเบนเบ POST, เปเบ
เบเปเบฒเบชเบฑเปเบเบเบฑเปเบ. เบเปเบฒเบงเบดเบเบตเบเบฒเบเปเบกเปเบ GET, FORM_variables เปเบกเปเบเปเบญเบปเบฒเบกเบฒเบเบฒเบเบเปเปเบกเบนเบ COOKIE, POST
เบเปเปโเบกเบนเบโ, เปเบฅเบฐโเปเบเปโเบฎเบฑเบโเบเปเปโเบกเบนเบโ.) เบเปเบฒโเปเบฅเบตเปเบกโเบเบปเปเบโเปเบกเปเบโเบเปเปโเปเบเปโเบฎเบฑเบโเปเบญเบปเบฒโเบงเบดโเบเบตโเบเบฒเบโเบเปเบญเบโเบเปเปโเบกเบนเบโเบเบฑเบโเบซเบกเบปเบ - เบเบฝเบโเปเบเปโเปเบเปโ
เบเปเปเบกเบนเบ COOKIE เปเบฅเบฐ REQUEST_METHOD.
--เบเบญเบกเบฎเบฑเบ-เบเปเป
เบเปเบฒเบเบทเบเบกเบญเบเปเบซเป, haserl เบเบฐเบเปเปเบงเบดเปเบเบฒเบฐเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบกเบฒเบเบเบฐเบเบฒเบเปเบเบฑเบเปเบเบทเปเบญเปเบ http เบเปเบญเบเบเบตเปเบเบฐเบเบฐเบกเบงเบเบเบปเบ
เบชเบฐเบเบฃเบดเบ. เบเบตเปเปเบกเปเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเปเบฒเปเบเบซเบฒ script haserl เบเบฒเบ script haserl เบญเบทเปเบ.
--debug
เปเบเบเบเบตเปเบเบฐเบเบฐเบเบดเบเบฑเบ script, เบเบดเบกเบญเบญเบ script เบเบตเปเบเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบ. เบเปเบฒ
เบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก 'REQUEST_METHOD' เบเบทเบเบเบฑเปเบ, เบเปเปเบกเบนเบเบเบทเบเบชเบปเปเบเบเบฑเบ
เบเบฐเปเบเบเปเบเบทเปเบญเปเบ/เบเปเปเบเบงเบฒเบกเบเบณเบกเบฐเบเบฒ. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เบชเบฐเบเบฃเบดเบเปเบเบฐเบเบฐเบเบทเบเบเบดเบกเปเบเบฑเบเบเบณเปเบงเบปเปเบฒ.
--shell=เปเบชเบฑเปเบเบเบฒเบ
เบฅเบฐเบเบธเปเบเบฑเบเปเบเบฐเบเบตเปเบเปเบฒเบเบเบท bash เบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเบฐเปเบเป. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบเบฑเบ "/ เบเบฑเบ / sh"
เปเบเบทเปเบญเบฅเบงเบกเปเบญเบปเบฒเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบญเบ shell เบขเปเบฒเปเบเป --shell=/ เบเบฑเบ / sh เบฎเบนเบเปเบเบ. เปเบเบเบเบตเปเบเบฐ, เปเบเป
เบฎเบนเบเปเบเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเปเปเบกเบต "=", เบเบทเบเบฑเบ --shell"/ bin / bash --norc" เปเบซเปเปเบเปเปเบเบงเปเบฒ
เบญเปเบฒเบเปเบเบดเบเบเปเปเบเบงเบฒเบกเบเบฒเบเปเบฅเบทเบญเบเปเบเบทเปเบญเบเบปเบเบเปเบญเบเบเบปเบงเบญเบฑเบเบชเบญเบเบเบดเปเบชเบเปเบเป.
เบเปเบฒเบฅเบงเบเบฅเบงเบกเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบ Lua, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, string "lua" เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเปเบเปเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบ
เบฅเบนเบงเบฒ เบก. เบชเบฐเบเบฃเบดเบเบเบตเปเบกเบตเบเบงเบฒเบกเบญเปเบญเบเปเบซเบงเบเบปเบงเบเบดเบกเบเปเบญเบเปเบซเบเป. เบเบปเบงเบขเปเบฒเบ: --shell=lua
เบเบฒเบเปเบฅเบทเบญเบเปเบกเปเบ "luac". เบเบตเปเปเบฎเบฑเบเปเบซเปเปเบเบทเปเบญเบเบงเบดเปเบเบฒเบฐ haserl เปเบฅเบฐ lua เบเบทเบเบเบดเบเบเบฒเบเปเบเปเบเบฒเบ,
เปเบฅเบฐ script เปเบกเปเบเบชเบปเบกเบกเบธเบเบงเปเบฒเปเบเบฑเบ chunk lua precompiled. เปเบเบดเปเบ LUAC เบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเปเบกเปเบเบตเบก
เบเปเปเบกเบนเบเบเปเบฒเบงเบชเบฒเบ.
--เบเบฝเบ
เบเบปเบเบเบฐเบเบดเปเบฅเปเบง Haserl เบเบดเบกเบเปเปเบเบงเบฒเบกเบเปเปเบกเบนเบเบเปเบฒเบงเบชเบฒเบเบเปเบฝเบงเบเบฑเบเปเบเบทเปเบญเบเปเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ. เบเบตเป
เบชเบฐเบเบฑเบเบเบฑเปเบเบเปเปเบเบงเบฒเบกเบชเบฐเปเบเบเบเปเปเบเบดเบเบเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเปเบเป haserl เบเปเปเปเบเปเบเบทเบเปเบเบชเบฐเบเบฒ.
--upload-dir=dirspec
เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบเบฑเบ "/ tmp". เปเบเบฅเปเบเบตเปเบญเบฑเบเปเบซเบฅเบเบเบฑเบเปเบปเบเปเบกเปเบเบชเปเบฒเบเบเปเบงเบเบเบทเปเปเบเบฅเปเบเบปเปเบงเบเบฒเบงเปเบเบญเบฑเบเบเบตเป
เบฅเบฐเบเบปเบ HASERL_xxx_path เบกเบตเบเบทเปเบเบญเบเปเบเบฅเปเบเบปเปเบงเบเบฒเบง. FORM_xxx_name
เบกเบตเบเบทเปเบเบปเปเบเบชเบฐเบเบฑเบเบเบญเบเปเบเบฅเป, เบเบฒเบกเบเบตเปเบฅเบนเบเบเปเบฒเบฅเบฐเบเบธเปเบงเป.
--upload-handler=เปเบชเบฑเปเบเบเบฒเบ
เปเบกเบทเปเบญเบฅเบฐเบเบธเปเบงเป, เบเบฒเบเบญเบฑเบเปเบซเบฅเบเปเบเบฅเปเบเบฐเบเบทเบเบเบฑเบเบเบฒเบเปเบเบเบเบปเบงเบเบฑเบเบเบฒเบเบเบตเป, เปเบเบเบเบตเปเบเบฐเบเบฝเบเปเบเบดเบ
เปเบเบฅโเปโเบเบปเปเบงโเบเบฒเบงโ. เบเปเบญเบเบฅเบฐเบเบธเปเบชเบฑเปเบเบเบฒเบเปเบเบฑเบก (เปเบชเบฑเปเบเบเบฒเบเบเปเปเปเบเปเบเบญเบเบซเบฒ), เปเบฅเบฐ
เบเบปเบงเบเบฑเบเบเบฒเบเบเบฒเบเบญเบฑเบเปเบซเบฅเบเปเบกเปเบเปเบซเปเบเบฒเบฅเบฒเบกเบดเปเบเบตเปเบเบงเบเบณเบชเบฑเปเบเบญเบฑเบเปเบถเปเบ: เบเบทเปเบเบญเบ FIFO on
เปเบเบดเปเบเปเบเบฅเปเบญเบฑเบเปเบซเบฅเบเบเบฐเบเบทเบเบชเบปเปเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, handler เบญเบฒเบเบเบฐเปเบเปเบฎเบฑเบ 3
เบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก: CONTENT_TYPE, เบเบทเปโเปเบญโเบเบฐโเบชเบฒเบ, เปเบฅเบฐ NAME. เปเบซเบผเบปเปเบฒเบเบตเปเบชเบฐเบเปเบญเบเปเบเบดเบ MIME
เบชเปเบงเบเบซเบปเบงเบเบฒเบเบเบฑเบเบงเบฒเบเปเบเบทเปเบญเบซเบฒเบชเบณเบฅเบฑเบเปเบเบทเปเบญเบซเบฒ. Haserl เบเบฐ fork handler เบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบปเบ
เปเบเบฅเปเบญเบฑเบเปเบซเบฅเบ, เปเบฅเบฐเบเบฐเบชเบปเปเบเปเบเบทเปเบญเปเบเบเบญเบเปเบเบฅเปเบญเบฑเบเปเบซเบฅเบเปเบเบเบฑเบ FIFO เบเบตเปเบเปเบฒเบเบปเบเปเบงเป.
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, Haserl เบเบฐเบเบดเบเบเบฑเปเบเบเบปเบเบเปเบงเบฒเบเบปเบงเบเบฑเบเบเบฒเบเบชเบดเปเบเบชเบธเบเบฅเบปเบ. เบงเบดเบเบตเบเบฒเบเบเบตเปเปเบกเปเบเบชเปเบฒเบฅเบฑเบเบเบนเปเบเปเบฝเบงเบเบฒเบ
เปเบเบปเปเบฒเบเบฑเปเบ.
--upload-limit=เบเปเบฒเบเบปเบเบเบญเบเปเบเบ
เบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเบฅเปเบเบตเปเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ mime เบชเบนเบเบชเบธเบ เบเปเบฒเบเบปเบเบเบญเบเปเบเบ KB เบเบฐเบเบทเบเบญเบฑเบเปเบซเบฅเบ. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบ 0KB (no
เบญเบฐเบเบธเบเบฒเบเปเบซเปเบญเบฑเบเปเบซเบฅเบ). เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ mime เปเบเบตเปเบก 33% เบเบฑเบเบเบฐเบซเบเบฒเบเบเบญเบเบเปเปเบกเบนเบ.
เบเบฒเบเบฅเบงเบก OF OPERATION
เปเบเบเบเบปเปเบงเปเบ, เปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเปเบเปเบฒเบเบปเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบซเบผเบฒเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเป fork or
เบงเบดเบเบตเบเบฒเบเบญเบทเปเบเปเบเบทเปเบญเปเบฅเปเบเบชเบฐเบเบดเบ CGI. เบเปเบฒ script เปเบเป haserl เบเบฒเบเบเบฒเบชเบฒ, เปเบเป
เบเปเปเปเบเบเบตเปเปเบเบตเบเบเบถเปเบ:
If haserl เบเบทเบเบเบดเบเบเบฑเปเบ suid root, เบเบฒเบเบเบฑเปเบ uid/gid เบเบทเบเบเบฑเปเบเปเบซเปเปเบเบปเปเบฒเบเบญเบเบชเบฐเบเบฃเบดเบ.
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเปเบเบทเบเบชเบฐเปเบเบเบชเปเบฒเบฅเบฑเบ HTTP_COOKIE, เปเบเบดเปเบเบญเบฒเบเบเบฐเบเบทเบเบเปเบฒเบเบปเบเปเบเบเปเบงเบฑเบ
เปเบเบตเบเปเบงเบต. เบเปเบฒเบกเบฑเบเบกเบตเบขเบนเป, เปเบเบทเปเบญเปเบเบเบตเปเบงเบดเปเบเบฒเบฐเปเบฅเปเบงเบเบฐเบเบทเบเบเบฑเบเปเบชเปเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเบญเบเบเบดเปเบ.
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเปเบเบทเบเบชเบฐเปเบเบเบชเปเบฒเบฅเบฑเบ REQUEST_METHOD, เปเบเบดเปเบเบเบทเบเบเปเบฒเบเบปเบเปเบเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเป.
เบญเบตเบเบเบฒเบกเบงเบดเบเบตเบเบฒเบเบฎเปเบญเบเบเป, เบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเบกเบฒเบเบเบฐเบเบฒเบเบเบฐเบเบทเบเบญเปเบฒเบ เปเบฅเบฐเบงเบดเปเบเบฒเบฐ. pared
เปเบเบทเปเบญเปเบเปเบกเปเบเบเบทเบเบเบฑเบเปเบชเปเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเบญเบเบเบดเปเบ.
script เปเบกเปเบ tokenized, parsing haserl เบเบฅเบฑเบญเบเบฅเบฐเบซเบฑเบเบเบฒเบเบเปเปเบเบงเบฒเบกเบเบดเบ. เบเปเปเบเบงเบฒเบกเบเบดเบเปเบกเปเบ
เบเปเบฝเบเปเบเบฑเบเบเปเปเบเบงเบฒเบก "echo", เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ tokens เบเบฑเบเบซเบกเบปเบเบเบทเบเบชเบปเปเบเปเบเบซเบฒ sub-shell.
haserl เบชเปเบญเบก เปเบฅเบฐเปเบเบฐเบเปเบญเบ (เปเบเบเบเบปเบเบเบฐเบเบด / เบเบฑเบ / sh) เปเบกเปเบโเปเบฅเบตเปเบกโเบเบปเปเบโ.
tokens เบเบฑเบเบซเบกเบปเบเบเบทเบเบชเบปเปเบเปเบเบซเบฒ STDIN เบเบญเบ sub-shell, เบเบตเปเบกเบตเบเปเปเบซเบเปเบฒ เบเบฒเบเบเปเบญเบเบเปเบฝเบง เบเปเบฒเบชเบฑเปเบ.
เปเบเปเบงเบฅเบฒเบเบตเป sub-shell เบชเบดเปเบเบชเบธเบเบฅเบปเบ, เปเบเป haserl เบเบฒเบเบเบฒเบชเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบชเบธเบเบเปเบฒเบเปเบฅเบฐ
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบชเบดเปเบเบชเบธเบเบฅเบปเบ.
CUSTOMER SIDE เบเบฑเบเปเบเบเปเบฒเปเบเบปเปเบฒ
เปเบเป haserl เบเบฒเบเบเบฒเบชเบฒเบเบฐเบเบญเบเบฅเบฐเบซเบฑเบเบเปเปเบกเบนเบเบเบตเปเบชเบปเปเบเบเปเบฒเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก HTTP_COOKIE, เปเบฅเบฐ
เบงเบดเบเบตเบเบฒเบ GET เบซเบผเบท POST เบเบฒเบเบฅเบนเบเบเปเบฒ, เปเบฅเบฐเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบงเบเบกเบฑเบเปเบเบฑเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป
เปเบเบปเปเบฒเปเบเบดเบเปเบเปเปเบเบ haserl. เบเบทเปโเบเบญเบโเบเบปเบงโเปเบโเบเบฒเบกโเบเบทเปโเบเบตเปโเปเบเปโเบฎเบฑเบโเปเบโเปเบซเบผเปเบโเบเปเปโเบกเบนเบโ,
เบเบปเบเปเบงเบฑเปเบเบเบณเบเบณเปเปเบฒ ( FORM_) เปเบกเปเบ prepended. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบฅเบนเบเบเปเบฒเบชเบปเปเบ "foo=bar",
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบเบเบปเบงเปเบ FORM_foo=เบเบฒเบเบฐเบเบฒเบเบเบงเบฒเบก.
เบชเปเบฒเบฅเบฑเบเบงเบดเบเบตเบเบฒเบ HTTP_COOKIE, เบเบปเบงเปเบเบเบฑเบเบเบทเบเปเบเบฑเบเปเบงเปเบเปเบงเบเบเปเบฒเบเปเบฒเบซเบเปเบฒ ( เบเบธเบเบเบต_) เปเบเบตเปเบก.
เบเบปเบงเบขเปเบฒเบ, เบเปเบฒ HTTP_COOKIE เบเบฐเบเบญเบเบกเบต "foo=bar", เบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบ
COOKIE_foo=เบเบฒเบเบฐเบเบฒเบเบเบงเบฒเบก.
เบชเปเบฒเบฅเบฑเบเบงเบดเบเบตเบเบฒเบ GET, เบเปเปเบกเบนเบเบเบตเปเบชเบปเปเบเปเบเบฎเบนเบเปเบเบ %xx เบเบทเบเปเบเปเบเบฑเบเบเบปเบงเบญเบฑเบเบชเบญเบเบเบตเปเปเบเบปเบฒเปเบเบปเปเบฒ
เปเบเบฑเบเบเบปเบงเปเบเบ, เปเบฅเบฐเบเบปเบงเปเบเบเบฑเบเบเบทเบเปเบเบฑเบเปเบงเปเบเปเบงเบเบเปเบฒเบเปเบฒเบซเบเปเบฒ ( GET_) เปเบเบตเปเบก. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒ
QUERY_STRING เบเบฐเบเบญเบเบกเบต "foo=bar", เบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบ GET_foo=เบเบฒเบเบฐเบเบฒเบเบเบงเบฒเบก.
เบชเปเบฒเบฅเบฑเบเบงเบดเบเบตเบเบฒเบ POST, เบเบปเบงเปเบเบเบฑเบเบเบทเบเปเบเบฑเบเปเบงเปเบเปเบงเบเบเปเบฒเบเปเบฒเบซเบเปเบฒ ( POST_) เปเบเบตเปเบก. เบชเปเบฒเบฅเบฑเบ
เบเบปเบงเบขเปเบฒเบ, เบเปเบฒ post stream เบเบฐเบเบญเบเบกเบต "foo=bar", เบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบ POST_foo=เบเบฒเบเบฐเบเบฒเบเบเบงเบฒเบก.
เบเบญเบเบเบฒเบเบเบตเป, เบชเปเบฒเบฅเบฑเบเบงเบดเบเบตเบเบฒเบ POST, เบเปเบฒเบเปเปเบกเบนเบเบเบทเบเบชเบปเปเบเปเบเบเปเบเป multipart/form-data เบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ, เปเบเป
เบเปเปเบกเบนเบเบเบทเบเบเบญเบเบฅเบฐเบซเบฑเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ. เปเบเบเบเบปเปเบงเปเบเปเบฅเปเบงเบญเบฑเบเบเบตเปเบเบทเบเปเบเปเปเบกเบทเปเบญเปเบเบฅเปเบเบทเบเบญเบฑเบเปเบซเบฅเบเบเบฒเบเปเบงเบฑเบ
เบฅเบนเบเบเปเบฒเบเบตเปเปเบเป .
เบซเบกเบฒเบโเปเบซเบโ เปเบกเบทเปเบญเปเบเบฅเปเบเบทเบเบญเบฑเบเปเบซเบฅเบเปเบเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเป, เบกเบฑเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบ upload-dir
เบฅเบฐเบเบปเบ. FORM_variable_name= เบกเบตเบเบทเปเบเบญเบเปเบเบฅเปเบเบตเปเบญเบฑเบเปเบซเบฅเบ (เปเบเบฑเบ
เปเบเปโเบฅเบฐโเบเบธโเปเบงเปโเปเบเบโเบฅเบนเบโเบเปเบฒโ.) HASERL_variable_path= เบกเบตเบเบทเปเบเบญเบเปเบเบฅเปเบขเบนเปเปเบ
upload-dir เบเบตเปเบเบทเปเบเบทเปเบญเบซเบฒเบเบตเปเบญเบฑเบเปเบซเบฅเบ. เปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบฅเบนเบเบเปเบฒเบเบตเปเปเบเบฑเบเบญเบฑเบเบเบฐเบฅเบฒเบเบเบฒเบ
เบเบฒเบเบเบทเปเบก upload-dir เปเบเปเบเบตเบเปเบงเบตเปเบงเบฑเบเบเบญเบเบเปเบฒเบ, เบเบฒเบเบญเบฑเบเปเบซเบฅเบเปเบเบฅเปเปเบกเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบฝเบเปเบเปเปเบเปเบงเบฅเบฒเบเบตเป
--upload-limit เบเบฒเบเปเบฅเบทเบญเบเปเบกเปเบเปเบเปเปเบเบทเปเบญเบฅเบฐเบเบธเบเบฐเปเบฒเบเบเบญเบเปเบเบฅเปเบเบตเปเบชเบฒเบกเบฒเบเบญเบฑเบเปเบซเบฅเบเปเบเป. Haserl
เบฅเบถเบเปเบเบฅเปเบเบปเปเบงเบเบฒเบงเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบกเบทเปเบญเบชเบฐเบเบฃเบดเบเบชเบณเปเบฅเบฑเบ. เปเบเบทเปเบญเบฎเบฑเบเบชเบฒ
เปเบเบฅเป, เบเปเบฒเบเบกเบฑเบเบซเบผเบทเบเปเบฝเบเบเบทเปเบกเบฑเบเบเบฒเบเบเปเบญเบเปเบเบชเบฐเบเบดเบ.
เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบทเปเปเบเบฅเปเบเบทเบเปเบเบฑเบเปเบงเปเปเบ HASERL_variable_path เบเบตเปเปเบกเปเบเบเปเบญเบเบงเปเบฒ FORM_,
GET_, เปเบฅเบฐเบเบปเบงเปเบ POST_ เปเบกเปเบเบชเบฒเบกเบฒเบเปเบเปเปเบเปเบเปเปเบเบเบฅเบนเบเบเปเบฒ, เปเบฅเบฐเบฅเบนเบเบเปเบฒเบเบตเปเปเบเบฑเบเบญเบฑเบเบเบฐเบฅเบฒเบเบชเบฒเบกเบฒเบ
เบเปเบฒเบเบปเบเบเบปเบงเปเบเบเบตเบชเบญเบเบเบตเปเบกเบตเบเบทเป variable_path=/ etc / passwd. เบฎเบธเปเบเบเปเบญเบเบซเบเปเบฒ
เบเปเปเปเบเปเปเบเบฑเบเบฎเบฑเบเบชเบฒ pathspec เปเบ HASERL namespace. To เบฎเบฑเบเบชเบฒ เบเบญเบเบซเบฅเบฑเบ
เบเบงเบฒเบกโเปเบเบปเปเบฒโเบเบฑเบโเปเบเปโ, เปเบเป เบเบทเป of เปเบเป เบเบปเปเบงเบเบฒเบง เปเบญเบเบฐเบชเบฒเบ is เบเบฑเบ เปเบเบฑเบเปเบงเป in FORM_variable= เปเบฅเบฐ
POST_variable=. เบเบตเป is เบเบดเบเบฒเบฅเบฐเบเบฒ เบเปเปเบเบญเบเปเบ เปเบฅเบฐ เบเบงเบ เบเปเป be เปเบเปเปเบฅเปเบง.
เบเปเบฒเบฅเบนเบเบเปเบฒเบชเบปเปเบเบเปเปเบกเบนเบ เบเบฑเบเบชเบญเบ เปเบเบเบงเบดเบเบตเบเบฒเบ POST เปเบฅเบฐ GET, เบเบฒเบเบเบฑเปเบ haserl เบเบฐเบงเบดเปเบเบฒเบฐเบเบฝเบเปเบเป
เบเปเปโเบกเบนเบโเบเบตเปโเบชเบญเบโเบเปเบญเบโเบเบฑเบโเบเบฑเบโ REQUEST_METHOD เบเบปเบงเปเบเบเบตเปเบเปเบฒเบเบปเบเปเบเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเป, เปเบงเบฑเปเบเปเบชเบเปเบเปเบงเปเบฒ
เบเบญเบกเบฎเบฑเบเบเบฑเบเปเบปเบ เบเบฒเบโเปเบฅเบทเบญเบโเปเบเปโเบเบทเบโเบเบฑเปเบโเปเบงเปโ. เบเบปเบงเบขเปเบฒเบ, เปเบเบเบเบญเบกเปเบญเบตเปเบเบงเปเบฒเบเปเบฒเบเบงเบดเบเบตเบเบฒเบ POST, เปเบเปเบกเบต a
URI เบเบญเบ some.cgi?foo=bar&otherdata=เบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบฐเบกเบตเบเบฒเบเปเบเบเบงเบดเปเบเบฒเบฐเบเปเปเบกเบนเบ POST, เปเบฅเบฐ เบเบน
เปเบฅเบฐ เบเปเปเบกเบนเบเบญเบทเปเบ เบเบปเบงเปเบเบเบทเบเบฅเบฐเปเบฅเบตเบ.
เบเปเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเปเบเปเบฒเบเบปเบ a HTTP_COOKIE เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบเปเบฝเบเปเบเบเปเบเป, เบเปเปเบกเบนเบเบเบธเบเบเบตเบเบทเบเบงเบดเปเบเบฒเบฐ.
เบเปเปเบกเบนเบเบเบธเบเบเบตเบเบทเบเบงเบดเปเบเบฒเบฐ เบเปเบญเบเบเบตเปเบเบฐ เบเปเปเบกเบนเบ GET เบซเบผเบท POST, เบเบฑเปเบเบเบฑเปเบเปเบเบเปเบฅเบฐเบเบตเบเบตเปเบกเบตเบชเบญเบเบเบปเบงเปเบเบเบญเบ
เบเบทเปเบเบฝเบงเบเบฑเบ, เบเปเปเบกเบนเบ GET เบซเบผเบท POST เบเบฐเบเบฝเบเบเบฑเบเบเปเปเบกเบนเบเบเบธเบเบเบต.
เปเบกเบทเปเบญเบซเบผเบฒเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบปเบงเปเบเบเบฝเบงเบเบฑเบเบเบทเบเบชเบปเปเบเบกเบฒเบเบฒเบเปเบซเบผเปเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, the
FORM_variable เบเบฐเบเบทเบเบเบฑเปเบเบเบฒเบกเบฅเปเบฒเบเบฑเบเบเบตเปเบเบปเบงเปเบเบเบทเบเบเบฐเบกเบงเบเบเบปเบ.
HTTP_COOKIE เบเบทเบเบเบฐเบกเบงเบเบเบปเบเบเปเบญเบเบชเบฐเปเปเบต, เบเบฒเบกเบเปเบงเบ REQUEST_METHOD. เบเปเบฒเบเบญเบกเบฎเบฑเบเบเบฑเบเบซเบกเบปเบ
เบเบฒเบโเปเบฅเบทเบญเบโเปเบเปโเบเบทเบโเบเบฑเปเบโเปเบงเปโ, เบซเบผเบฑเบโเบเบฒเบโเบเบฑเปเบ HTTP_COOKIE เปเบกเปเบโเบเบฒเบโเบเบธเบโเปเบเปเบโเบเปเบฒโเบญเบดเบโ, เบเบฐโเบเบดโเบเบฑเบโเบเบฒเบกโเปเบเบโเบงเบดโเบเบตโเบเบฒเบโเบเปเปโเปเบเปโ
เบเบณเบเบปเบเปเบเบ REQUEST_METHOD, เบเบดเบเบเบฒเบกเบเปเบงเบ REQUEST_METHOD. เบเบปเบงเบขเปเบฒเบเบชเบธเบเบเปเบฒเบเบเบญเบ
เบเบปเบงเปเบเบเบฐเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเปเบฒเบเบปเบ FORM_variable. เปเบซเปเบชเบฑเบเปเบเบเบงเปเบฒเบเบปเบงเปเบเปเบกเปเบเปเบเบเบเปเบฒเบเบซเบฒเบ
เบชเปเบฒเบเปเบเบฑเบ COOKIE_variable, GET_variable เปเบฅเบฐ POST_variable. เบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเปเบเปเบเบญเบ
เบเบทเปเบเบฑเบเบเปเบญเบเบเบฑเบเบเบฒเบเปเบเปเบฅเบฐเปเบซเบผเปเบ.
เปเบกเบทเปเบญเบซเบผเบฒเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบปเบงเปเบเบเบฝเบงเบเบฑเบเบเบทเบเบชเบปเปเบเบกเบฒเบเบฒเบเปเบซเบผเปเบเบเบฝเบงเบเบฑเบ, เบเบฝเบเปเบเปเบชเบธเบเบเปเบฒเบ
เบซเบเบถเปเบเปเบเปเบเบทเบเบเบฑเบเบเบถเบเปเบงเป. เปเบเบทเปเบญเบฎเบฑเบเบชเบฒเบชเปเบฒเปเบเบปเบฒเบเบฑเบเบซเบกเบปเบ (เบชเปเบฒเบฅเบฑเบเบซเบผเบฒเบเบเบฒเบเปเบฅเบทเบญเบ, เบเบปเบงเบขเปเบฒเบ), เปเบซเปเปเบเบตเปเบก "[]" เปเบชเปเบเปเบฒเบ
เบเบญเบเบเบทเปเบเบปเบงเปเบ. เบเบปเบเปเบเปเบฎเบฑเบเบเบฑเบเบซเบกเบปเบเบเบฐเบเบทเบเบชเบปเปเบเบเบทเบ, เปเบเบเบญเบญเบเปเบเบเปเบเบงเปเบซเบกเป. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
host=Enoch&host=Esther&host=เปเบขเบเบงเบ เบเบปเบเปเบเปเบฎเบฑเบเปเบ "FORM_host=Joshua".
host[]=Enoch&host[]Esther&host[]= Joshua เบเบปเบเปเบเปเบฎเบฑเบเปเบ "FORM_host=Enoch\nEsther\nJoshua"
LANGUAGE
เปเบเบเบชเปเบฒเบเบเบฒเบชเบฒเบเปเปเปเบเบเบตเปเบเบทเบเบฎเบฑเบเบฎเบนเปเปเบเบ haserl.
RUN
<% [เบชเบฐเบเบฃเบดเบเปเบเบฐ] %>
เบชเบดเปเบเปเบเปเบเปเบเบตเปเบเบดเบเบขเบนเปเปเบเบ <% %> tags เบเบทเบเบชเบปเปเบเปเบเบซเบฒ sub-shell เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. เบเปเปเบเบงเบฒเบก
เบเบทเบโเบชเบปเปเบโเบเปเบฒโเปเบงเบปเปเบฒโ.
INCLUDE
<% เปเบ pathspec %>
เบฎเบงเบกเปเบญเบปเบฒเบเบณเปเบงเบปเปเบฒเบเบญเบเปเบเบฅเปเบญเบทเปเบเบขเบนเปเปเบเบชเบฐเบเบฃเบดเบเบเบตเป. เปเบเบฅเปเปเบเปเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบชเบฐเบเบดเบ
เบเบทเบเบงเบดเปเบเบฒเบฐเปเบเปเบเบทเปเบญเบเบเบปเปเบ.
EVAL
<%= เบเบฒเบเบชเบฐเปเบเบเบญเบญเบ %>
เบเบดเบกเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบญเบเปเบเบฐ. เปเปเบฒเบเบฒเบ Syntactic เบชเปเบฒเบฅเบฑเบ "echo expr".
COMMENT
<%# เบเบณเปเบซเบฑเบ %>
เบเบฅเบฑเบญเบเบเบณเปเบซเบฑเบ. เบชเบดเปเบเปเบเปเบเปเปเบเบเบฅเบฑเบญเบเบเบณเปเบซเบฑเบเบเปเปเปเบเปเบเบทเบเบงเบดเปเบเบฒเบฐ. เบเบณเปเบซเบฑเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฑเบเปเบเป
เปเบฅเบฐเบชเบฒเบกเบฒเบเบเบฑเบเบเบธเบญเบปเบเบเบฐเบเบญเบ haserl เบญเบทเปเบเป.
เบเบปเบงเบขเปเบฒเบ
เบเปเบฒเปเบเบทเบญเบ
เบเบปเบงเบขเปเบฒเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบกเปเบเบเปเบฒเบเบเบฒเบเปเบเบทเปเบญเบชเบฐเปเบเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเป haserl. เปเบเบปเปเบฒเบเบงเบเบเบฐเปเบเบฑเบ
เบเบธเปเบเปเบเบตเบเบเบฑเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเปเบงเบฑเบ scripting เบเบทเปเบเบเบฒเบเบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเปเบเป haserl (เบซเบผเบท scripting เปเบ
เบเบฒเบชเบฒ) เปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบฒเบเบเบฐเบฅเบดเบ.
เบเปเบฒเบเบเบฒเบ เบเปเบฒเบชเบฑเปเบ
#!/usr/local/bin/haserl
เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: เบเปเปเบเบงเบฒเบก/เบเบณเบกเบฐเบเบฒ
<%# เบเบตเปเปเบกเปเบเบเบปเบงเบขเปเบฒเบ "env" script %>
<% env %>
เบเบดเบกเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบ เบเบฐเบกเบฒเบ เบเปเบฒเบชเบฑเปเบเปเบเบฑเบ mime เบเบฐเปเบเบ "เบเปเปเบเบงเบฒเบก / เบเปเบฒเบกเบฐเบเบฒ" เปเบญเบเบฐเบชเบฒเบ. เบเบตเปโเปเบกเปเบ
เปเบเป haserl เบชเบฐเบเบฑเบเบเบญเบเบเบปเปเบงเปเบ เบชเบดเปเบเบเบดเบก cgi.
เบฅเบญเบ เบเบฑเบ เบเบฒเบเปเบเบทเปเบญเบเปเบซเบง output
#!/usr/local/bin/haserl
เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: text/html
<% เบชเปเบฒเบฅเบฑเบ a เปเบเบชเบตเปเบเบเบชเบตเบเปเบฒเบชเบตเปเบซเบผเบทเบญเบ Cyan; เปเบฎเบฑเบ %>
"><% echo -n "$a" %>
<% เปเบฅเปเบงเป %>
เบชเบปเปเบเปเบญเบเบฐเบชเบฒเบ "text/html" เบเบฐเปเบเบ mime เปเบเบซเบฒเบฅเบนเบเบเปเบฒ, เบเปเบงเบเบเบฒเบเบฐเบฅเบฒเบ html เบเบฑเบ
เบญเบปเบเบเบฐเบเบญเบเบเบตเปเปเบชเปเบเปเบฒเบเบเปเบงเบเบชเบตเบเบทเปเบเบซเบผเบฑเบ.
เบเบฒเบเบเปเบฒเปเบเป Shell เบเปเบฒเบเบปเบเปเบงเป เบเบฐเบเบดเบเบฑเบเบซเบเปเบฒ.
#!/usr/local/bin/haserl
เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: text/html
<% # เบเบณเบเบปเบเบเบฑเบเบเบฑเบเบเบญเบเบเบนเปเปเบเป
table_element() {
เบชเบฝเบเบชเบฐเบเปเบญเบ " $1 "
}
%>
<% เบชเปเบฒเบฅเบฑเบ a เปเบเบชเบตเปเบเบเบชเบตเบเปเบฒเบชเบตเปเบซเบผเบทเบญเบ Cyan; เปเบฎเบฑเบ %>
<% table_element $a %>
<% เปเบฅเปเบงเป %>
เบเบทเบเบฑเบเบเบฑเบเบเปเบฒเบเปเบเบดเบ, เปเบเปเปเบเปเบเบฑเบเบเบฑเบ shell เปเบเบ html เบเบฑเบ.
เบเบปเบเปเบญเบ เบเบฒเบเบญเปเบฒเบเบญเบตเบ CGI เบเบฑเบ a เบฎเบนเบเปเบเบ
#!/usr/local/bin/haserl
เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: text/html
เปเบเบเบเบญเบกเบเบปเบงเบขเปเบฒเบ
" method="GET">
<% # เปเบฎเบฑเบเบเบฒเบเบเบงเบเบชเบญเบเบเบทเปเบเบเบฒเบเบเบฒเบเบขเปเบฒเบเบเบญเบ FORM_textfield
# เปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเบฒเบเปเบเบกเบเบตเปเบงเบฑเบเบเบปเปเบงเปเบ
FORM_textfield=$(เบชเบฐเบเปเบญเบ "$FORM_textfield" | sed "s/[^A-Za-z0-9 ]//g" )
%>
<เบเบฐเปเบเบเบเปเบญเบเบเปเปเบกเบนเบ=เบเบทเปเบเบปเบงเปเบฑเบเบชเบท=เบเบปเบงเปเบฑเบเบชเบท
Value="<% echo -n "$FORM_textfield" | tr az AZ %>" cols=20>
เบเบดเบกเปเบเบเบเบญเบก. เบเปเบฒเบฅเบนเบเบเปเบฒเปเบชเปเบเปเปเบเบงเบฒเบกเปเบเปเบเบเบเบญเบก, CGI เบเบฐเบเบทเบเปเบซเบผเบเปเบซเบกเป (เบเปเบฒเบเบปเบ
by $SCRIPT_NAME) เปเบฅเบฐ textfield เปเบเปเบเบทเบเบญเบฐเบเบฒเปเบกเปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเบฒเบเปเบเบกเบเบตเปเบงเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ
เปเบเบเบเบญเบกเบเบทเบเบชเบฐเปเบเบเบเบทเบเปเปเปเบเปเบงเบเบเปเปเบเบงเบฒเบกเบเบตเปเบเบนเปเปเบเปเบเปเบญเบเปเบเบปเปเบฒ. เบเปเปเบเบงเบฒเบกเปเบกเปเบเบเบปเบงเบเบดเบกเปเบซเบเป.
เบญเบฑเบเปเบซเบฅเบ a เปเบญเบเบฐเบชเบฒเบ
#!/usr/local/bin/haserl --upload-limit=4096 --upload-dir=/ tmp
เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: text/html
" method=POST enctype="multipart/form-data" >
<% if test -n "$HASERL_uploadfile_path"; เบเบฒเบเบเบฑเปเบ %>
เบเปเบฒเบเปเบเปเบญเบฑเบเปเบซเบฅเบเปเบเบฅเปเบเบตเปเบกเบตเบเบทเปเบงเปเบฒ <%echo -n $FORM_uploadfile_name %> , เปเบฅเบฐเบกเบฑเบเปเบกเปเบ
. เปเบเบฑเบเปเบงเปเบเบปเปเบงเบเบฒเบงเปเบเปเบเบตเบเปเบงเบตเปเบเบฑเบ . เปเบเป
เปเบเบฅเปเปเบกเปเบ <% cat $HASERL_uploadfile_path | wc -c %> เปเบเบเปเบเบฒเบง.
<%rm -f $HASERL_uploadfile_path %> เบเปเปเบเปเบญเบเปเบเบฑเบเบซเปเบงเบ, เปเบเบฅเปเปเบเปเบเบทเบเบฅเบถเบเบเบดเปเบกเปเบฅเปเบง
เบเบฒเบเปเบงเบฑเบเปเบเบตเบเปเบงเบต.
<% else %>
เบเปเบฒเบเบเบฑเบเบเปเปเปเบเปเบญเบฑเบเปเบซเบฅเบเปเบเบฅเปเปเบเบทเปเบญ.
<%fi %>
เบชเบฐเปเบเบเปเบเบเบเบญเบกเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบญเบฑเบเปเบซเบฅเบเปเบเบฅเป. เบเบตเปโเปเบกเปเบโเบชเปเบฒโเปเบฅเบฑเบโเปเบเบโเบเบฒเบโเบเปเบฒโเปเบเปโ
--upload-limit เปเบฅเบฐเปเบเบเบเบฒเบเบเปเบฒเบเบปเบเปเบเบเบเบญเบก enctype to multipart/form-data. เบเปเบฒ
เบฅเบนเบเบเปเบฒเบชเบปเปเบเปเบเบฅเป, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเปเบกเบนเบเบเบฒเบเบขเปเบฒเบเบเปเบฝเบงเบเบฑเบเปเบเบฅเปเปเบเปเบเบทเบเบเบดเบก, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ
เบฅเบถเบเปเบฅเปเบง. เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ, เปเบเบเบเบญเบกเบฅเบฐเบเบธเบงเปเบฒเบฅเบนเบเบเปเบฒเบเปเปเปเบเปเบญเบฑเบเปเบซเบฅเบเปเบเบฅเป.
RFC-2616 เบเบงเบฒเบกเบชเบญเบเบเปเบญเบ
#!/usr/local/bin/haserl
<% echo -en "เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: text/html\r\n\r\n" %>
...
เปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเปเปเบเปเบฒเบเบปเบ HTTP เบขเปเบฒเบเบชเบปเบกเบเบนเบ, headers เบเบงเบเบเบทเบเบขเบธเบเปเบเบเปเบเป
CR+LF, เปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเบฒเบเบเบดเบเบชเบฒเบ unix LF เบเบปเบเบเบฐเบเบดเปเบเบปเปเบฒเบเบฑเปเบ. syntax เบเปเบฒเบเปเบเบดเบเบชเบฒเบกเบฒเบ
เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบฐเบฅเบดเบเบชเปเบงเบเบซเบปเบงเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบ RFC 2616.
ENVIRONMENT
เบเบญเบเปเบซเบเบทเบญเปเบเบเบฒเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบชเบทเบเบเบญเบเบกเบฒเบเบฒเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเป, เบเปเปเปเบเบเบตเป
เบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบเบเบทเบเบเปเบฒเบเบปเบเบชเบฐเปเบซเบกเบตเปเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ:
HASRLVER
haserl เบชเบฐเบเบฑเบ - เปเบเบเบเปเบฒเบชเบฑเปเบเบเปเปเบกเบนเบ.
SESSIONID
เปเบเบฑเบเปเบฅเบเบเบฒเบเบชเบดเบเบซเบปเบเบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเบชเปเบฒเบฅเบฑเบเบเบตเบงเบดเบเบเบญเบ CGI (เบกเบฑเบเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบกเบทเปเบญ
cgi เปเบฅเบตเปเบกเบเบปเปเบ; เปเบฅเบฐเบเปเปเบเปเบฝเบเปเบเบเบเบปเบเบเบงเปเบฒเบเบฐเบชเปเบฒเบ POST เบซเบผเบท GET query เบญเบทเปเบ.)
HASERL_ACCEPT_ALL
เบเปเบฒ --เบเบญเบกเบฎเบฑเบ-เบเบฑเบเปเบปเบ เปเบเปโเบเบฑเปเบโเบเบธเบโเบเบฒเบโ, -1, เบเปเบฒเบเปเปเบเบฑเปเบเบเบฑเปเบ 0.
HASERL_SHELL
เบเบทเปเบเบญเบ shell haserl เปเบฅเบตเปเบกเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเปเบญเบเบเบญเบ shell เปเบ.
HASERL_UPLOAD_DIR
haserl เปเบเปเบฅเบเบฐเบเปเบฅเบตเบเบฐเปเบเปเปเบเบทเปเบญเปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบเบฅเปเบเบตเปเบญเบฑเบเปเบซเบฅเบ.
HASERL_UPLOAD_LIMIT
เบเปเบฒเบเบงเบ KB เบเบตเปเบเบทเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบชเบปเปเบเบเบฒเบเบฅเบนเบเบเปเบฒเปเบเบซเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ.
เบเบปเบงเปเบเปเบซเบผเบปเปเบฒเบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเบฑเบเปเบเปเบซเบผเบทเบเบฝเบเบเบฑเบเบเบฒเบเปเบเบชเบฐเบเบดเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบปเบงเปเบ
เปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ "HASERL_" เปเบเบฑเบเบเปเปเบกเบนเบเปเบเบปเปเบฒเบเบฑเปเบ, เปเบฅเบฐเบเปเปเบกเบตเบเบปเบเบเปเปเบชเบฐเบเบฃเบดเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ.
เบเบงเบฒเบกเบเบญเบเปเบ เบเบธเบโเบฅเบฑเบโเบชเบฐโเบเบฐ
เบกเบตเบงเบฑเบเบเบฐเบเบฐเบเบตเบซเบผเบฒเบเปเบฅเบทเปเบญเบเบเปเบฝเบงเบเบฑเบเบญเบฑเบเบเบฐเบฅเบฒเบเบเบญเบเบเบฒเบเปเบเป shell เปเบเบทเปเบญเบเบฝเบเปเบเบผเปเบเบผเบก CGI.
haserl เบเบฐเบเบญเบเบเปเบงเบ เบเบฒเบ เบเบฒเบเบเบปเบเบเปเบญเบเปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบชเปเบฝเบเบเบตเป.
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก Variables
เบฅเบฐเบซเบฑเบเปเบเบทเปเบญเบเบฑเบเบเบธเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบกเปเบเบขเบนเปเบเบญเบเบเบญเบเปเบเบเบเบญเบเบเบปเบงเปเบเบเปเบญเบ.
เปเบเบฐ. เบกเบฑเบเบงเบดเปเบเบฒเบฐเบเปเบฝเบงเบเบฑเบเบเบปเบงเบญเบฑเบเบชเบญเบ? เปเบฅเบฐ &, เบชเบฐเบเบฑเปเบเบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบฒเบเบเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบฅเบนเบเบเปเบฒเบเบตเปเบเบฐเปเบฎเบฑเบ
เบเบฒเบเปเบเบกเบเบต "เบชเบฑเบเบขเบฒ". เปเบเบฑเบเบเบปเบงเบขเปเบฒเบ, foo.cgi?a=test;cat / etc / passwd เบชเบฒเบกเบฒเบเบชเบปเปเบเบเบปเบเปเบ
เบเบปเบงเปเบเบเบตเปเบเบทเบเบกเบญเบเบซเบกเบฒเบเบกเบนเบเบเปเบฒ เบเบฒเบเบเบปเบเบชเบญเบ เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเบเบฒเบเปเบฅเปเบ cat
/ etc / passwd เบเบทเบเบชเบปเปเบเปเบเบซเบฒเบฅเบนเบเบเปเบฒ. Haserl เบเบฐเบเปเบฒเบเบปเบเบเบปเบงเปเบเบเบตเปเบชเบปเบกเบเบนเบ
เบกเบนเบเบเปเบฒ: เบเบฒเบเบเบปเบเบชเบญเบ; cat / etc / passwd
เบกเบฑเบเบเบญเบเปเบเบเบตเปเบเบฐเปเบเปเบเบปเบงเปเบ "เบญเบฑเบเบเบฐเบฅเบฒเบ" เปเบ Shell scripts เปเบเบเบเบฒเบเบเบดเบเบกเบฑเบเปเบเบปเปเบฒ
เบงเบปเบเบขเบทเบก; เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบฒเบเบเบงเบเบชเบญเบเบเบงเบเบเบฐเบเบทเบเปเบฎเบฑเบเบขเบนเปเปเบเบเบธเบเบเปเบญเบเบเปเปเบกเบนเบ.
เบชเบดเบเบเบดเบเบดเปเบชเบ เบซเบผเบธเบเบฅเบปเบ
เบเปเบฒเบเบดเบเบเบฑเปเบเปเบเบฑเบเบชเบฐเบเบดเบ suid, haserl เบเบฐเบเบฑเปเบ uid/gid เบเบญเบเบกเบฑเบเปเบซเปเบเบฑเบเปเบเบปเปเบฒเบเบญเบ
เบชเบฐเบเบฃเบดเบ. เบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบซเปเบกเบตเบเบธเบเบเบญเบ CGI scripts เบเบตเปเบกเบตเบเปเบฒเบเป
เบชเบดเบเบเบดเบเบดเปเบชเบ. เบเปเบฒ haserl binary เบเปเปเปเบเปเบเบทเบเบเบดเบเบเบฑเปเบ suid, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ scripts CGI เบเบฐ
เบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบ uid / gid เบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบงเบฑเบเปเบเบเป.
เบเบฐเบเบดเปเบชเบ เบเปเบฒเบชเบฑเปเบ เบญเบญเบเปเบฅเบเป เบเบฒเบฅเบฒเบกเบดเปเบเบต เปเบเปเบฎเบฑเบ on เปเบเป URL
เบเปเบฒ URL เบเปเปเบกเบต "=" เบเบตเปเบเปเปเปเบเปเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ CGI spec เบฅเบฐเบเบธเบเบฒเบเปเบฅเบทเบญเบ
เบเบฐเบเบทเบเปเบเปเปเบเบฑเบเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบฑเบเปเบเบเบเบฒเบ. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบญเบตเบเบเบฒเบก
เบเบฑเบ CGI spec: http://192.168.0.1/test.cgi?--upload-limit%3d2000&foo%3dbar
เบเบงเบเบเปเบฒเบเบปเบเบเบญเบเปเบเบเบเปเบฒเบเบฑเบเบเบฒเบเบญเบฑเบเปเบซเบฅเบเปเบเบฑเบ 2000KB เบเบญเบเปเบซเบเบทเบญเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒ "Foo=bar". เบเบปเบโเบเปเบญเบ
เบเปเปโเบเบฑเบโเบฅเบนเบโเบเปเบฒโเปเบฎเบฑเบโเปเบซเปโเบเบฒเบโเบญเบฑเบโเปเบซเบฅเบโเบเบญเบโเบเบปเบโเปเบญเบโ, haserl เบเบฐเบเบดเปเบชเบเบเบฒเบเปเบฅเบทเบญเบเปเบเบงเบเปเบฒเบชเบฑเปเบ
เปเบเบตเบ argv[2]. เบเปเบฒเปเบญเบตเปเบเปเบเบฑเบ #! script, เบเบฒเบเบเบฒเบชเบฒเปเบกเปเบ argv[0], เบเบฑเบเบซเบกเบปเบ
เบเบปเบงเปเบฅเบทเบญเบเปเบเบงเบเปเบฒเบชเบฑเปเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบ #! เปเบชเบฑเปเบเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเบฑเบ argv[1], เปเบฅเบฐ
เบเบทเปเบชเบฐเบเบฃเบดเบเปเบกเปเบ argv[2].
LUA
เบเปเบฒเบฅเบงเบเบฅเบงเบกเบเปเบงเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ lua, --shell=lua เบเบฐเปเบเบตเบเปเบเป lua เปเบเบฑเบเบเบฒเบชเบฒเบชเบฐเบเบฃเบดเบเปเบเบ
เบเบญเบ bash shell. เบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก (SCRIPT_NAME, SERVER_NAME, เปเบฅเบฐเบญเบทเปเบเป) เบเบทเบเบเบฑเบเปเบชเปเปเบ
เบเบฒเบเบฐเบฅเบฒเบ ENV, เปเบฅเบฐเบเบปเบงเปเบเปเบเบเบเบญเบกเปเบกเปเบเบเบทเบเบเบฑเบเปเบชเปเปเบเบเบฒเบเบฐเบฅเบฒเบ FORM. เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เปเบเป
เปเบเบเบเบญเบกเบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบปเบเปเบญเบเบเปเบฒเบเปเบเบดเบเบชเบฒเบกเบฒเบเบเบฝเบเปเบเปเบเบฑเปเบเบเบตเป:
#!/usr/local/bin/haserl --shell=lua
เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: text/html
เปเบเบเบเบญเบกเบเบปเบงเบขเปเบฒเบ
" method="GET">
<% # เปเบฎเบฑเบเบเบฒเบเบเบงเบเบชเบญเบเบเบทเปเบเบเบฒเบเบเบฒเบเบขเปเบฒเบเบเบญเบ FORM_textfield
# เปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเบฒเบเปเบเบกเบเบตเปเบงเบฑเบเบเบปเปเบงเปเบ
FORM.textfield=string.gsub(FORM.textfield, "[^%a%d]", "")
%>
<เบเบฐเปเบเบเบเปเบญเบเบเปเปเบกเบนเบ=เบเบทเปเบเบปเบงเปเบฑเบเบชเบท=เบเบปเบงเปเบฑเบเบชเบท
Value="<% io.write (string.upper(FORM.textfield)) %>" cols=20>
เบเบปเบงเบเบฐเบเบดเบเบฑเบเบเบฒเบ <%= เปเบกเปเบเบเปเปเบฒเบเบฒเบ syntactic เบชเปเบฒเบฅเบฑเบ io.เบเบฝเบ (เปเบเบทเบญเบเบเบนเบ( ... )) เบเบฑเปเบเบเบฑเปเบ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เปเบเป
เบเปเบฒ = เปเบชเบฑเปเบเบเปเบฒเบเปเบเบดเบเบชเบฒเบกเบฒเบเบเบฝเบเปเบเป: เบกเบนเบเบเปเบฒ = "<%= string.upper(FORM.textfield) %>" cols=20>
haserl lua scripts เบชเบฒเบกเบฒเบเปเบเปเบเบฑเบเบเบฑเบ haserl.loadfile(เบเบทเปโเปเบญโเบเบฐโเบชเบฒเบ) เปเบเบทเปเบญเบเบฐเบกเบงเบเบเบปเบเปเบเบปเปเบฒเบซเบกเบฒเบ
script เปเบเบฑเบ haserl (lua) script. เบเบฑเบเบเบฑเบเบชเบปเปเบเบเบทเบเบเบฐเปเบเบเบเบญเบ "เบเบฑเบเบเบฑเบ".
เบเบปเบโเบเบปเบงโเบขเปเบฒเบ,
bar.lsp
<%io.write("เบชเบฐเบเบฒเบเบเบตเปเบฅเบ") %>
เบเปเปเบเบงเบฒเบกเบเบญเบเบเปเบฒเบเปเบกเปเบ <%= gvar %>
-- เบชเบดเปเบเบชเบธเบเบเบฒเบเบฅเบงเบกเปเบเบฅเป --
foo.haserl
#!/usr/local/bin/haserl --shell=lua
<%m = haserl.loadfile("bar.lsp")
gvar = "เปเบฅเปเบเปเบเบฑเบ m()"
m ()
gvar = "เปเบซเบฅเบเปเบฅเบฐเปเบฅเปเบเปเบเบเบฑเปเบเบเบญเบเบเบฝเบง"
haserl.loadfile("bar.lsp")()
%>
เปเบฎเบฑเบเบงเบฝเบ เบเบน เบเบฐโเบเบฐโเบฅเบดเบโ:
เบชเบฐเบเบฒเบเบเบตเปเบฅเบ
เบเปเปเบเบงเบฒเบกเบเบญเบเบเปเบฒเบเปเบกเปเบ Run as m()
-- เบชเบดเปเบเบชเบธเบเบเบฒเบเบฅเบงเบกเปเบเบฅเป --
เบชเบฐเบเบฒเบเบเบตเปเบฅเบ
เบเปเปเบเบงเบฒเบกเบเบญเบเบเปเบฒเบเปเบกเปเบ Load เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเบฑเปเบเบเบญเบเบเบฝเบง
-- เบชเบดเปเบเบชเบธเบเบเบฒเบเบฅเบงเบกเปเบเบฅเป --
เบเบฑเบเบเบฑเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบกเบตเบซเบเปเบฒเปเบเบตเบเปเบงเบต haserl nested - page snippets
เบเบตเปเบเบทเบเบเบฐเบกเบงเบเบเบปเบเปเบเบ haserl tokenizer.
LUAC
เปเบเป เบฅเบทเบ "shell" เปเบเบฑเบ chunk lua precompiled, เบชเบฐเบเบฑเปเบเบเบฒเบเปเบเปเปเบเบเบฒเบเปเบเปเบเบญเบเปเบฅเบฐเบเบฒเบเบเบปเบเบชเบญเบเบเบญเบ scripts
เปเบเบฑเบเปเบเบเปเปเปเบเป. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, haserl เบชเบฒเบกเบฒเบเบเบทเบเบฅเบงเบเบฅเบงเบกเบเปเบงเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ luac เปเบเบปเปเบฒเบเบฑเปเบ, เปเบฅเบฐเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเป
lua เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบดเบเปเบกเปเบเบงเปเบฒเบขเบนเปเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบงเบฒเบกเบเบปเบเบเปเบฒเบเบฐเบซเบเบฒเบเบเปเบญเบ. เบฅเบฑเบเบชเบฐเบเบฐ haserl lua เบเบฑเบเบซเบกเบปเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเบเปเบฒเบเปเบเบดเบเปเบกเปเบ
เบเบฑเบเบกเบตเบขเบนเป. (เบเปเบฒ luac เปเบเบฑเบเปเบเบฐเบเบฝเบงเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบ haserl, haserl.loadfile เปเบกเปเบ
เบเบดเบเบเบฒเบเปเบเปเบเบฒเบ, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒ haserl parser เบเปเปเปเบเปเบเบทเบเบฅเบงเบเบฅเบงเบกเบขเบนเปเปเบ.)
เบเบตเปเปเบกเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบชเบฐเบเบฃเบดเบเบเปเปเปเปเบญเบ, เบเปเบฝเบเปเบเบฑเบเบชเบฐเบเบฃเบดเบ luac cgi:
เปเบซเปเปเบเบฅเป test.lua:
เบเบดเบก ("เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: เบเปเปเบเบงเบฒเบก/เบเบปเปเบเบเบฝเบ0)
เบเบดเบก ("UUID เบเบญเบเปเบเบปเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฅเปเบเบเบตเปเปเบกเปเบ: " .. ENV.SESSIONID)
เบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเบฅเบงเบเบฅเบงเบกเบเปเบงเบ luac:
luac -o test.luac -s test.lua
เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ header haserl เปเบเบตเปเบกเปเบชเปเบกเบฑเบ:
echo '#!/usr/bin/haserl --shell=luac' | cat - test.luac >luac.cgi
เบญเบตเบเบเบฒเบเปเบฅเบทเบญเบ, เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเบฑเบเบเบฐเบเบฒเปเบงเบฑเบเปเบเบเปเบเบฑเบเบซเบกเบปเบเปเบเบเปเบเปเบกเบฒเบเบเบฐเบเบฒเบ lua shell,
เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ haserl เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ preprocess scripts เบชเปเบฒเบฅเบฑเบ luac compiler เปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบ a
เบเบฐเบเบงเบเบเบฒเบเบเปเปเบชเปเบฒเบ. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เปเบเป --shell=lua, เปเบฅเบฐเบเบฑเบเบเบฐเบเบฒเปเบงเบฑเบเปเบเบเป. เปเบกเบทเปเบญเบเปเบญเบกเบเบตเปเบเบฐเบเปเปเบชเปเบฒเบ
เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก runtime, เปเบเบตเปเบกเปเบชเบฑเปเบ --debug เบเบฑเบ lua scripts เบเบญเบเบเปเบฒเบเปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒ outputting
เบเบปเบเปเบเปเบฎเบฑเบเปเบเบซเบฒเปเบเบฅเปเปเบซเบผเปเบ .lua. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ:
เบกเบญเบเปเบซเป haserl script test.cgi:
#!/usr/bin/haserl --shell=lua --debug
เบเบฐเปเบเบเปเบเบทเปเบญเบซเบฒ: เบเปเปเบเบงเบฒเบก/เบเบณเบกเบฐเบเบฒ
UUID เบเบญเบเปเบเบปเปเบฒเบชเบณเบฅเบฑเบเบเบฒเบเปเบฅเปเบเบเบตเปเปเบกเปเบ <%= ENV.SESSIONID %>
precompile, เบฅเบงเบเบฅเบงเบก, เปเบฅเบฐเปเบเบตเปเบก header haserl luac:
./test.cgi > test.lua
luac -s -o test.luac test.lua
echo '#!/usr/bin/haserl --shell=luac' | cat - test.luac >luac.cgi
เปเบเป haserl เบญเบญเบเปเบฅเบเปเปเบเบเปเบเปเบเปเบฅเบดเบเบฒเบ onworks.net