السلام عليكم ورحمة الله،
سأحاول في هذا المثال أن ألخص طريقة برمجة تطبيق/موقع ويب باستخدام FPC على آلة افتراضية VM من خلال توليد ملفات cgi
سأستخدم الموقع koding.com الذي يقدم استضافة VM مجانية (يمكنك استخدام موقع آخر إن كان يوفر صلاحيات الإدارة)
1- بعد إنشاء حساب على koding قم بالتسجيل وتثبيت FPC كالآتي:
وافق على التثبيت بـ Y عند السؤال...
2- أنشئ ملف وليكن hellofpc.pas على جذر المسار، واكتب فيه:
3- قم بتجميع الملف كالآتي:
انتهى.
وبهذا نحصل على ملف cgi يمكن لأي خادم ويب قراءته، يمكنك تصفح الناتج على الرابط:
http://USERNAME.koding.io/hellofpc.cgi
غير USERNAME إلى اسم تسجيلك.
ملاحظة: جعلت مسار التوليد Web حتى يتم تعريض الملف الناتج إلى التصفح.
الآن، سنقوم بكتابة مثال آخر لاستقبال بيانات post من خلال نموذج تسجيل Login Form
ملاحظات:
- استخدمت TStringList في المثال، والأفضل أن تستختدم TRequest من المكتبة HTTPDefs لقراءة البيانات (وهذا يحتاج إلى تثبيت تجميعة TFPWebModule...)
- هناك إطارات عمل يمكنك تجربتها إذا أردت عمل تطبيقات كاملة، ينظر:
http://brookframework.org/
بالتوفيق.
سأحاول في هذا المثال أن ألخص طريقة برمجة تطبيق/موقع ويب باستخدام FPC على آلة افتراضية VM من خلال توليد ملفات cgi
سأستخدم الموقع koding.com الذي يقدم استضافة VM مجانية (يمكنك استخدام موقع آخر إن كان يوفر صلاحيات الإدارة)
1- بعد إنشاء حساب على koding قم بالتسجيل وتثبيت FPC كالآتي:
كود :
sudo apt-get install fpcوافق على التثبيت بـ Y عند السؤال...
2- أنشئ ملف وليكن hellofpc.pas على جذر المسار، واكتب فيه:
PHP كود :
begin
WriteLn('content-type: text/html;');
WriteLn;
WriteLn('<h3>Hello Delphi4arab!</h3>');
end.
كود :
fpc hellofpc.pas -o"Web/hellofpc.cgi" انتهى.
وبهذا نحصل على ملف cgi يمكن لأي خادم ويب قراءته، يمكنك تصفح الناتج على الرابط:
http://USERNAME.koding.io/hellofpc.cgi
غير USERNAME إلى اسم تسجيلك.
ملاحظة: جعلت مسار التوليد Web حتى يتم تعريض الملف الناتج إلى التصفح.
الآن، سنقوم بكتابة مثال آخر لاستقبال بيانات post من خلال نموذج تسجيل Login Form
PHP كود :
uses
Classes, dos;
var
a:string;
c:char;
Str: TStringList;
begin
// output legal http page
WriteLn('Content-Type:text/html;');
WriteLn;
WriteLn('<!doctype html><html><head><title>Hello FPC</title></head><body>');
WriteLn('<form action="#" method="post">');
WriteLn('<input type="text" name="username" id="username" placeholder="User Name" />');
WriteLn('<input type="password" name="password" id="password" placeholder="Password" />');
WriteLn('<input type="submit" value="Login" />');
WriteLn('</form>');
// demonstrate GET result
//WriteLn('GET: ', GetEnv('QUERY_STRING'));
// demonstrate POST result
a:='';
while not eof(input) do begin
read(c);
a := a+c;
end;
if a <> '' then begin
Str := TStringList.Create;
ExtractStrings(['=', '&'], [], @a[1], Str);
writeln('<p>User Name: ', Str[0]);
WriteLn('</p>');
writeln('<p>Password: ', Str[1]);
WriteLn('</p>');
Str.Free;
end else begin
WriteLn('<p>You are not logged in</p>');
end;
WriteLn('</body></html>');
end.
ملاحظات:
- استخدمت TStringList في المثال، والأفضل أن تستختدم TRequest من المكتبة HTTPDefs لقراءة البيانات (وهذا يحتاج إلى تثبيت تجميعة TFPWebModule...)
- هناك إطارات عمل يمكنك تجربتها إذا أردت عمل تطبيقات كاملة، ينظر:
http://brookframework.org/
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...

