عربيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

haserl - عبر الإنترنت في السحابة

قم بتشغيل haserl في موفر الاستضافة المجاني OnWorks عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر haserl الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


haserl - برنامج البرمجة النصية CGI للبيئات المدمجة

موجز


#!/usr/bin/haserl [--شل=المسار] [--upload-dir=com.dirspec] [--upload-handler=معالج]
[--حد التحميل=قصر] [--قبول الكل] [--قبول-لا شيء] [--صامتة] [--تصحيح]

[نص] [<% نص شل %>] [نص] ...

الوصف


Haserl عبارة عن غلاف CGI صغير يسمح ببرمجة CGI بأسلوب "PHP"، ولكنه يستخدم UNIX
قذيفة تشبه bash أو Lua كلغة برمجة. إنها صغيرة جدًا، لذا يمكن استخدامها
في البيئات المضمنة، أو عندما يكون شيء مثل PHP كبيرًا جدًا.

فهو يجمع بين ثلاث ميزات في محرك CGI صغير:

فهو يوزع طلبات POST وGET، ويضع عناصر النموذج كأزواج اسم = قيمة في ملف
بيئة لاستخدام البرنامج النصي CGI. هذا يشبه إلى حد ما com.uncgi غلاف.

يفتح الصدفة، ويترجم كل النص إلى بيانات قابلة للطباعة. كل النص
ضمن <% ... %> يتم تمرير البنيات حرفيًا إلى الصدفة. هذا إلى حد ما
مثل الكتابة PHP مخطوطات.

يمكن تثبيته بشكل اختياري لإسقاط أذوناته لمالك البرنامج النصي،
مما يمنحها بعض الميزات الأمنية com.suexec or com.cgiwrapper.

OPTIONS ملخص


هذا ملخص لخيارات سطر الأوامر. الرجاء مراجعة OPTIONS القسم تحت
اسم الخيار الطويل للحصول على وصف كامل.

-أ --قبول الكل
-ن --قبول-لا شيء
-د - ديبوغ
-s، --shell
-س،-صامت
-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
البيانات والحصول على البيانات.) الإعداد الافتراضي هو عدم قبول جميع طرق الإدخال - فقط
بيانات ملفات تعريف الارتباط وREQUEST_METHOD.

--قبول-لا شيء
إذا تم تقديمه، فلن يقوم haserl بتحليل الإدخال القياسي كمحتوى http قبل المعالجة
النص. يعد هذا مفيدًا في حالة استدعاء برنامج نصي haserl من برنامج نصي haserl آخر.

--Debug
بدلاً من تنفيذ البرنامج النصي، قم بطباعة البرنامج النصي الذي سيتم تنفيذه. لو
تم تعيين متغير البيئة "REQUEST_METHOD"، ويتم إرسال البيانات مع الملف
نوع محتوى عادي/نصي. وبخلاف ذلك، تتم طباعة نص الصدفة حرفيًا.

- قشرة =المسار
حدد غلافًا بديلاً يشبه bash لاستخدامه. الافتراضية إلى "/ بن / ش"

لتضمين معلمات Shell، لا تستخدم --shell=/ بن / ش شكل. بدلاً من ذلك، استخدم
تنسيق بديل بدون "="، كما في --shell "/ بن / باش --norc". تأكد من ذلك
اقتبس سلسلة الخيار لحماية أي أحرف خاصة.

إذا تم تجميعها باستخدام مكتبات Lua، فسيتم استخدام السلسلة "lua" لاستخدام ملف متكامل
لوا فم. هذه السلسلة حساسة لحالة الأحرف. مثال: - قشرة =هلال

البديل هو "لواك". يؤدي هذا إلى تعطيل موزعي haserl و lua،
ومن المفترض أن يكون البرنامج النصي عبارة عن قطعة lua مترجمة مسبقًا. يرى لواك أدناه للمزيد
معلومات.

--صامتة
يقوم Haserl عادةً بطباعة رسالة إعلامية حول حالات الخطأ. هذا
يمنع رسالة الخطأ، بحيث لا يتم الإعلان عن استخدام haserl.

--upload-dir=com.dirspec
افتراضات على "/ تمة". يتم إنشاء جميع الملفات التي تم تحميلها باسم ملف مؤقت في هذا
دليل HASERL_xxx_path يحتوي على اسم الملف المؤقت. FORM_xxx_name
يحتوي على الاسم الأصلي للملف، كما هو محدد من قبل العميل.

--upload-handler=المسار
عند التحديد، تتم معالجة عمليات تحميل الملفات بواسطة هذا المعالج، بدلاً من الكتابة إليها
ملفات مؤقتة. يجب إعطاء مواصفات المسار الكاملة (لم يتم البحث عن PATH)، و
يُعطى معالج التحميل معلمة سطر أوامر واحدة: اسم FIFO on
الذي سيتم إرسال ملف التحميل. بالإضافة إلى ذلك، قد يحصل المعالج على 3
متغيرات البيئة: نوع المحتوى, اسم الملفو اسم. هذه تعكس MIME
رؤوس ترتيب المحتوى للمحتوى. سوف يقوم Haserl بشوكة المعالج لكل منها
تم تحميل الملف، وسيتم إرسال محتويات ملف التحميل إلى FIFO المحدد.
سيقوم Haserl بعد ذلك بالحظر حتى ينتهي المعالج. هذه الطريقة مخصصة للخبراء
فقط.

--upload-limit=قصر
السماح بملف مشفر بـ mime يصل إلى قصر KB ليتم تحميلها. الافتراضي هو 0KB (لا
التحميل مسموح). لاحظ أن تشفير mime يضيف 33% إلى حجم البيانات.

نبذة عامة OF OPERATION


بشكل عام، يقوم خادم الويب بإعداد العديد من متغيرات البيئة، ثم يستخدمها شوكة or
طريقة أخرى لتشغيل البرنامج النصي CGI. إذا كان البرنامج النصي يستخدم haserl مترجم،
يحدث ما يلي:

If haserl تم تثبيت suid root، ثم تم تعيين uid/gid على مالك البرنامج النصي.

يتم فحص البيئة HTTP_COOKIE، والتي ربما تم تعيينها بواسطة الويب
الخادم. إذا كان موجودًا، فسيتم وضع المحتويات التي تم تحليلها في البيئة المحلية.

يتم فحص البيئة REQUEST_METHOD، والذي تم تعيينه بواسطة خادم الويب.
بناءً على طريقة الطلب، تتم قراءة المدخلات القياسية وتحليلها. تم تحليلها
يتم وضع المحتويات في البيئة المحلية.

يتم ترميز البرنامج النصي والتحليل haserl كتل التعليمات البرمجية من النص الخام. النص الخام هو
يتم تحويلها إلى عبارات "صدى"، ثم يتم إرسال جميع الرموز المميزة إلى الغلاف الفرعي.

haserl الشوكات والقشرة الفرعية (عادةً / بن / ش) لقد بدءت.

يتم إرسال جميع الرموز المميزة إلى STDIN الخاص بالقشرة الفرعية، مع ذيل خروج أمر.

عندما تنتهي القشرة الفرعية، فإن haserl يقوم المترجم بإجراء التنظيف النهائي و
ثم ينتهي.

زبون جانب INPUT


haserl سيقوم المترجم بفك تشفير البيانات المرسلة عبر متغير البيئة HTTP_COOKIE، و
طريقة GET أو POST من العميل، وتخزينها كمتغيرات بيئة يمكنها ذلك
يمكن الوصول إليها عن طريق haserl. اسم المتغير يتبع الاسم الوارد في المصدر،
باستثناء أن البادئة ( شكل_) مُسبقًا. على سبيل المثال، إذا أرسل العميل "foo=bar"،
متغير البيئة هو FORM_foo=شريط.

بالنسبة لطريقة HTTP_COOKIE، يتم أيضًا تخزين المتغيرات بالبادئة ( كوكي_) مضاف.
على سبيل المثال، إذا كان HTTP_COOKIE يتضمن "foo=bar"، فإن متغير البيئة هو
COOKIE_foo=شريط.

بالنسبة لأسلوب GET، تتم ترجمة البيانات المرسلة بالنموذج %xx إلى الأحرف التي
تمثل، ويتم تخزين المتغيرات أيضًا بالبادئة ( للحصول على_) وأضاف. على سبيل المثال، إذا
يتضمن QUERY_STRING "foo=bar"، وهو متغير البيئة GET_foo=شريط.

بالنسبة لطريقة POST، يتم أيضًا تخزين المتغيرات بالبادئة ( سأعين_) وأضاف. ل
على سبيل المثال، إذا كان تدفق النشر يتضمن "foo=bar"، فإن متغير البيئة هو POST_foo=شريط.

أيضًا، بالنسبة لطريقة POST، إذا تم إرسال البيانات باستخدام بيانات متعددة الأجزاء / النماذج الترميز،
يتم فك تشفير البيانات تلقائيًا. يُستخدم هذا عادةً عند تحميل الملفات من الويب
العميل باستخدام .

ملحوظة عندما يتم تحميل ملف إلى خادم الويب، يتم تخزينه في ملف تحميل دير
الدليل. FORM_variable_name= يحتوي على اسم الملف الذي تم تحميله (مثل
المحدد من قبل العميل.) HASERL_variable_path= يحتوي على اسم الملف في
تحميل دير الذي يحمل المحتوى الذي تم تحميله. لمنع العملاء الضارين من
يملأ تحميل دير على خادم الويب الخاص بك، لا يُسمح بتحميل الملفات إلا عندما يكون
--تحميل الحد يتم استخدام الخيار لتحديد حجم الملف الذي يمكن تحميله. هاسرل
يقوم تلقائيًا بحذف الملف المؤقت عند انتهاء البرنامج النصي. للحفاظ على
الملف أو نقله أو إعادة تسميته في مكان ما في البرنامج النصي.

لاحظ أنه تم تخزين اسم الملف في هاسرل_متغير_المسار وذلك لأن النموذج_،
متغيرات GET_ وPOST_ قابلة للتعديل بواسطة العميل، ويمكن للعميل الضار ذلك
قم بتعيين متغير ثانٍ بالاسم متغير_المسار=/ الخ / باسود. الإصدارات السابقة
لم تقم بتخزين pathspec في هاسرل مساحة الاسم. إلى المحافظة الى الوراء
التوافق, ال الاسم of ال مؤقت ملف is أيضا تخزين in FORM_variable= و
POST_variable=. هذه is نظرت غير مأمون و ينبغي ليس be مستخدم.

إذا أرسل العميل البيانات على حد سواء بواسطة طرق POST وGET، إذن haserl سيتم تحليل فقط
البيانات التي تتوافق مع REQUEST_METHOD المتغير الذي تم تعيينه بواسطة خادم الويب، ما لم يكن
قبول الكل تم تعيين الخيار. على سبيل المثال، نموذج يتم استدعاؤه عبر طريقة POST، ولكن يحتوي على
URI الخاص بـ some.cgi?foo=bar&otherdata=something سيتم تحليل بيانات POST له، و فو
و بيانات أخرى يتم تجاهل المتغيرات.

إذا كان خادم الويب يحدد أ HTTP_COOKIE متغير البيئة، يتم تحليل بيانات ملف تعريف الارتباط.
يتم تحليل بيانات ملفات تعريف الارتباط قبل الحصول على البيانات أو نشرها، وذلك في حالة وجود متغيرين من
نفس الاسم، فإن بيانات GET أو POST تحل محل معلومات ملف تعريف الارتباط.

عندما يتم إرسال مثيلات متعددة لنفس المتغير من مصادر مختلفة، فإن
سيتم تعيين 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=Joshua ينتج عنه "FORM_host=Joshua".
host[]=Enoch&host[]Esther&host[]=نتج عن يشوع "FORM_host=Enoch\nEsther\nJoshua"

لغة


يتم التعرف على الهياكل اللغوية التالية بواسطة haserl.

RUN
<% [برنامج شل النصي] %>

يتم إرسال أي شيء محاط بعلامات <% %> إلى الغلاف الفرعي للتنفيذ. النص
يتم إرسالها حرفيا.

تتضمن
<%في Pathspec %>

قم بتضمين ملف آخر حرفيًا في هذا البرنامج النصي. يتم تضمين الملف عند البرنامج النصي
يتم تحليلها في البداية.

تقييم
<%= التعبير %>

طباعة تعبير الصدفة. السكر النحوي لـ "echo expr".

التعليق
<%# تعليق %>

كتلة التعليق. لا يتم تحليل أي شيء في كتلة التعليق. يمكن أن تكون متداخلة التعليقات
ويمكن أن تحتوي على عناصر haserl أخرى.

أمثلة


تحذير
تم تبسيط الأمثلة أدناه لإظهار كيفية الاستخدام haserl. يجب ان تكون
على دراية بأمان البرمجة النصية للويب قبل الاستخدام haserl (أو أي برمجة نصية
اللغة) في بيئة الإنتاج.

الاشارات أمر
#!/usr/local/bin/haserl
نوع المحتوى: نص/عادي

<%# هذا نموذج لبرنامج نصي "env" %>
<% إنف %>

طباعة نتائج الحياة الفطرية الأمر كمستند "نص/عادي" من نوع mime. هذا هو
ال haserl نسخة من المشترك printenv cgi.

أنشوطة مع ديناميكي الناتج
#!/usr/local/bin/haserl
نوع المحتوى: نص / html




<% لـ a باللون الأحمر والأزرق والأصفر السماوي؛ افعل %>
"><% echo -n "$a" %>
<% تم %>




يرسل مستند "نص/html" من نوع mime إلى العميل، مع جدول html يحتوي على with
العناصر المسمى مع لون الخلفية.

استعمل قذيفة تعريف الوظائف.
#!/usr/local/bin/haserl
نوع المحتوى: نص/أتش تي أم أل

<% # تحديد وظيفة المستخدم
عنصر الجدول () {
صدى صوت " 1 دولار "
}
%>



<% لـ a باللون الأحمر والأزرق والأصفر السماوي؛ افعل %>
<% table_element $a %>
<% تم %>




كما هو مذكور أعلاه، ولكنه يستخدم وظيفة shell بدلاً من html المضمن.

جهاز تنفس الرجوع CGI مع a النموذج المرفق
#!/usr/local/bin/haserl
نوع المحتوى: نص/أتش تي أم أل


نموذج العينة
" method="GET" style=";text-align:right;direction:rtl">
<% # قم ببعض التحقق الأساسي من FORM_textfield
# لمنع هجمات الويب الشائعة
FORM_textfield=$( echo "$FORM_textfield" | sed "s/[^A-Za-z0-9 ]//g" )
%>
<نوع الإدخال = اسم النص = حقل النص
القيمة = "<% echo -n "$FORM_textfield" | tr az AZ %>" cols=20>




يطبع نموذجا. إذا قام العميل بإدخال نص في النموذج، فسيتم إعادة تحميل CGI (المحدد
by $SCRIPT_NAME) ويتم تطهير حقل النص لمنع هجمات الويب، ثم
يتم إعادة عرض النموذج مع النص الذي أدخله المستخدم. النص مكتوب بأحرف كبيرة.

تحميل a قم بتقديم
#!/usr/local/bin/haserl --upload-limit=4096 --upload-dir=/ تمة
نوع المحتوى: نص/أتش تي أم أل


" method=POST enctype="multipart/form-data" style=";text-align:right;direction:rtl">



<% if test -n "$HASERL_uploadfile_path"; ثم %>

لقد قمت بتحميل ملف اسمه <% echo -n $FORM_uploadfile_name %> ، وكان كذلك
. مخزنة مؤقتًا على الخادم كـ . ال
كان الملف <% cat $HASERL_uploadfile_path | wc -c %> بايت طويلة.
<% rm -f $HASERL_uploadfile_path %> لا تقلق، لقد تم حذف الملف للتو
من خادم الويب.
<% آخر %>
لم تقم بتحميل ملف بعد.
<% فاي %>



يعرض نموذجًا يسمح بتحميل الملفات. يتم تحقيق ذلك باستخدام
--تحميل الحد وعن طريق تحديد النموذج اكتب إلى متعدد الأجزاء / نموذج البيانات. إذا كان
يرسل العميل ملفًا، ثم تتم طباعة بعض المعلومات المتعلقة بالملف، وبعد ذلك
تم الحذف. وبخلاف ذلك، يشير النموذج إلى أن العميل لم يقم بتحميل ملف.

RFC-2616 التوافق
#!/usr/local/bin/haserl
<% echo -en "content-type: text/html\r\n\r\n" %>




للامتثال الكامل لمواصفات HTTP، يجب إنهاء الرؤوس باستخدام
CR+LF، بدلاً من إنهاء سطر Unix LF العادي فقط. يمكن بناء الجملة أعلاه
يمكن استخدامها لإنتاج رؤوس متوافقة مع RFC 2616.

البيئة


بالإضافة إلى متغيرات البيئة الموروثة من خادم الويب، ما يلي
يتم تعريف متغيرات البيئة دائمًا عند بدء التشغيل:

هاسرلفير
haserl الإصدار - علامة إعلامية.

معرف جلسة العمل
علامة سداسية عشرية فريدة طوال عمر CGI (يتم إنشاؤها عندما يكون ملف
يبدأ CGI؛ ولا يتغير حتى يتم إنشاء استعلام POST أو GET آخر.)

HASERL_ACCEPT_ALL
إذا كان --قبول الكل تم وضع العلم، -1، وإلا 0.

هاسيرل_شيل
بدأ اسم الصدفة haserl في تشغيل أوامر الصدفة الفرعية.

HASERL_UPLOAD_DIR
سيستخدم الدليل haserl لتخزين الملفات التي تم تحميلها.

HASERL_UPLOAD_LIMIT
عدد كيلوبايت المسموح بإرسالها من العميل إلى الخادم.

يمكن تعديل هذه المتغيرات أو الكتابة فوقها داخل البرنامج النصي، على الرغم من أن تلك المتغيرات
التي تبدأ بـ "HASERL_" هي معلومات إعلامية فقط، ولا تؤثر على البرنامج النصي الجاري تشغيله.

قيادة آمنة المزايا


هناك الكثير من الأدبيات المتعلقة بمخاطر استخدام Shell لبرمجة نصوص CGI.
haserl يحتوي بعض وسائل الحماية للتخفيف من هذه المخاطر.

البيئة المتغيرات
رمز ملء متغيرات البيئة يقع خارج نطاق القسم الفرعي
صدَفَة. ويوزع على الشخصيات؟ و &، لذلك يصعب على العميل القيام بذلك
هجمات "الحقن". كمثال، foo.cgi?a=test;cat / الخ / باسود يمكن أن يؤدي إلى
متغير يتم تعيين القيمة تجربه بالعربي ومن ثم نتائج التشغيل قط
/ الخ / باسود يتم إرسالها إلى العميل. هاسرل سيتم تعيين المتغير الكامل
القيمة: اختبار;قطة / الخ / باسود

من الآمن استخدام هذا المتغير "الخطير" في نصوص shell عن طريق تضمينه فيه
يقتبس؛ على الرغم من أنه يجب إجراء التحقق من الصحة في جميع حقول الإدخال.

امتياز إسقاط
إذا تم تثبيته كبرنامج نصي suid، haserl سوف يقوم بتعيين uid/gid الخاص به على مالك
النص. يمكن استخدام هذا للحصول على مجموعة من نصوص CGI ذات أشكال مختلفة
امتياز. إذا haserl لم يتم تثبيت الثنائي suid، ثم سيتم تثبيت البرامج النصية CGI
تشغيل مع uid/gid لخادم الويب.

رفض أمر خط المعلمات معطى on ال URL
إذا كان عنوان URL لا يحتوي على "=" غير مشفر، فإن مواصفات CGI توضح الخيارات
لاستخدامها كمعلمات سطر الأوامر للبرنامج. على سبيل المثال، وفقا
لمواصفات CGI: http://192.168.0.1/test.cgi?--حد التحميل%3d2000&foo%3dbar
يجب ضبط حد التحميل على 2000 كيلو بايت بالإضافة إلى إعداد "Foo=bar". لتحمي
ضد العملاء الذين يقومون بتمكين التحميلات الخاصة بهم، haserl يرفض أي خيارات سطر الأوامر
ما وراء argv[2]. إذا تم استدعاؤه كـ #! البرنامج النصي، المترجم هو argv[0]، الكل
خيارات سطر الأوامر المدرجة في #! يتم دمج السطر في argv[1]، و
اسم البرنامج النصي هو argv[2].

MOON


إذا تم تجميعها بدعم لوا، --shell=lua سيتم تمكين lua كلغة البرنامج النصي بدلاً من ذلك
من قذيفة باش. يتم وضع متغيرات البيئة (SCRIPT_NAME، SERVER_NAME، إلخ).
يتم وضع جدول ENV ومتغيرات النموذج في جدول FORM. على سبيل المثال،
يمكن كتابة نموذج المرجع الذاتي أعلاه على النحو التالي:

#!/usr/local/bin/haserl --shell=lua
نوع المحتوى: نص/أتش تي أم أل


نموذج العينة
" الطريقة = "الحصول على">
<% # قم ببعض التحقق الأساسي من FORM_textfield
# لمنع هجمات الويب الشائعة
FORM.textfield=string.gsub(FORM.textfield, "[^%a%d]", "")
%>
<نوع الإدخال = اسم النص = حقل النص
القيمة = "<% io.write (string.upper(FORM.textfield)) %>" cols=20>




عامل التشغيل <%= هو السكر النحوي لـ io.write (إلى سلسلة( )) لذلك ، على سبيل المثال ،
القيمة = يمكن كتابة السطر أعلاه: القيمة = "<%= string.upper(FORM.textfield) %>" كولز = 20>

يمكن للبرامج النصية haserl lua استخدام الوظيفة haserl.loadfile(اسم الملف) لمعالجة الهدف
البرنامج النصي باعتباره برنامج نصي haserl (lua). ترجع الدالة نوعًا من "الوظيفة".

على سبيل المثال،

bar.lsp
<% io.write ("Hello World" ) %>

رسالتك هي <%= gvar %>

-- نهاية تضمين الملف --

foo.haserl
#!/usr/local/bin/haserl --shell=lua
<% م = haserl.loadfile("bar.lsp")
gvar = "التشغيل كـ m()"
م ()

gvar = "التحميل والتشغيل في خطوة واحدة"
haserl.loadfile("bar.lsp")()
%>

الركض فو سوف ينتج:

مرحبا يا عالم
يتم تشغيل رسالتك كـ m()
-- نهاية تضمين الملف --
مرحبا يا عالم
رسالتك هي التحميل والتشغيل في خطوة واحدة
-- نهاية تضمين الملف --

تتيح هذه الوظيفة إمكانية الحصول على صفحات خادم haserl متداخلة - مقتطفات من الصفحات
التي تتم معالجتها بواسطة رمز haserl.

لواك


لواك "Shell" عبارة عن قطعة Lua مجمعة مسبقًا، لذا فهي عبارة عن تحرير واختبار تفاعلي للنصوص البرمجية
غير ممكن. ومع ذلك، يمكن تجميع haserl بدعم luac فقط، وهذا يسمح بذلك
دعم Lua حتى في بيئة الذاكرة الصغيرة. جميع ميزات haserl lua المذكورة أعلاه هي
مازال متاحا. (إذا كانت luac هي الصدفة الوحيدة المضمنة في haserl، فإن haserl.loadfile هو كذلك
معطل، حيث لم يتم تجميع المحلل اللغوي haserl.)

فيما يلي مثال على برنامج نصي تافه، تم تحويله إلى برنامج نصي luac cgi:

بالنظر إلى الملف test.lua:
طباعة ("نوع المحتوى: نص/عادي0)
طباعة ("UUID الخاص بك لهذا التشغيل هو: " .. ENV.SESSIONID)

يمكن تجميعها باستخدام luac:
luac -o test.luac -s test.lua

ثم تمت إضافة رأس haserl إليه:
صدى '#!/usr/bin/haserl --shell=luac' | قطة - test.luac >luac.cgi

وبدلاً من ذلك، من الممكن تطوير موقع ويب كامل باستخدام Lua Shell القياسية،
ثم اطلب من haserl نفسها معالجة البرامج النصية الخاصة بمترجم luac كجزء من ملف
عملية البناء. للقيام بذلك، استخدم --shell=lua وقم بتطوير الموقع. عندما تكون جاهزة للبناء
بيئة وقت التشغيل، أضف سطر --debug إلى نصوص Lua النصية الخاصة بك، وقم بتشغيلها أثناء الإخراج
النتائج إلى الملفات المصدر .lua. على سبيل المثال:

بالنظر إلى البرنامج النصي haserl test.cgi:
#!/usr/bin/haserl --shell=lua --debug
نوع المحتوى: نص / عادي

UUID الخاص بك لهذا التشغيل هو <%= ENV.SESSIONID %>

ترجمة مسبقة وتجميعية وإضافة رأس haserl luac:
./test.cgi > test.lua
luac -s -o test.luac test.lua
صدى '#!/usr/bin/haserl --shell=luac' | قطة - test.luac >luac.cgi

استخدم haserl عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

  • 1
    فيزر
    فيزر
    Phaser هو مفتوح سريع ومجاني وممتع
    مصدر إطار عمل لعبة HTML5 الذي يوفر
    عرض WebGL و Canvas عبر
    متصفحات الويب لسطح المكتب والجوال. ألعاب
    يمكن المشاركة ...
    تحميل Phaser
  • 2
    محرك VASSAL
    محرك VASSAL
    VASSAL هو محرك لعبة للإبداع
    النسخ الإلكترونية للسبورة التقليدية
    وألعاب الورق. يوفر الدعم ل
    عرض قطعة اللعبة والتفاعل ،
    و...
    قم بتنزيل محرك VASSAL
  • 3
    OpenPDF - شوكة iText
    OpenPDF - شوكة iText
    OpenPDF هي مكتبة جافا للإنشاء
    وتحرير ملفات PDF باستخدام LGPL و
    ترخيص MPL مفتوح المصدر. OpenPDF هو ملف
    LGPL / MPL وريث مفتوح المصدر لـ iText ،
    ا...
    قم بتنزيل OpenPDF - Fork of iText
  • 4
    ساجا جيس
    ساجا جيس
    SAGA - النظام الآلي
    التحليلات الجيولوجية - هو جغرافي
    برنامج نظام المعلومات (GIS) مع
    قدرات هائلة للبيانات الجغرافية
    المعالجة وآنا ...
    تنزيل SAGA GIS
  • 5
    Toolbox for Java / JTOpen
    Toolbox for Java / JTOpen
    يعد IBM Toolbox for Java / JTOpen ملف
    مكتبة من فئات Java التي تدعم
    العميل / الخادم وبرمجة الإنترنت
    نماذج لنظام يعمل بنظام التشغيل OS / 400 ،
    i5 / OS ، س ...
    تنزيل Toolbox for Java / JTOpen
  • 6
    D3.js
    D3.js
    D3.js (أو D3 للمستندات المستندة إلى البيانات)
    هي مكتبة جافا سكريبت تسمح لك
    لإنتاج بيانات ديناميكية وتفاعلية
    تصورات في متصفحات الويب. مع D3
    أنت...
    تنزيل D3.js
  • أكثر "

أوامر لينكس

Ad