mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 09:29:26 +02:00
* Fixes for typos from Reinier Olislagers (bug 23895)
git-svn-id: trunk@23699 -
This commit is contained in:
parent
823e3ea398
commit
02f64db373
@ -1,9 +1,9 @@
|
|||||||
Responds with the calling and system parameters, example
|
Example that responds with the calling and system parameters
|
||||||
================================================
|
============================================================
|
||||||
Demonstrates how to create a basic fpweb application. It responds to a request
|
This demonstrates how to create a basic fpweb application. It responds to a
|
||||||
with a list of received/sent parameters, server settings and variables.
|
request with a list of received/sent parameters, server settings and variables.
|
||||||
|
|
||||||
Note, that other than the main project file (echo.lpr) there is not much that
|
Note: apart from the main project file (echo.lpr), there is not much that
|
||||||
needs to change with using fpweb, no matter if we create CGI/FCGI applications
|
needs to change with using fpweb, no matter if we create CGI/FCGI applications
|
||||||
or Apache modules. The web server config is different for each, of course.
|
or Apache modules. The web server config is different for each, of course.
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ in the cgi/fcgi/apache directories.
|
|||||||
|
|
||||||
1.a; with FPC
|
1.a; with FPC
|
||||||
-------------
|
-------------
|
||||||
Enter to the directory (cgi/fcgi/apache) that has the .lpr file you wish to
|
Go to the directory (cgi/fcgi/apache) that has the .lpr file you wish to
|
||||||
compile, and then execute the command
|
compile, and then execute the command
|
||||||
|
|
||||||
fpc -Fu../webmodule echo.lpr
|
fpc -Fu../webmodule echo.lpr
|
||||||
@ -35,8 +35,9 @@ three web applications share the same web module code.
|
|||||||
|
|
||||||
1.b; with Lazarus
|
1.b; with Lazarus
|
||||||
-----------------
|
-----------------
|
||||||
It needs the WebLaz Package installed. Open the .lpi file from the choosen
|
The example needs the WebLaz Package installed.
|
||||||
application directory (cgi/fcgi/apache), and then
|
If that is done, open the .lpi file from the choosen application directory
|
||||||
|
(cgi/fcgi/apache), and then
|
||||||
|
|
||||||
Run -> Build from the menu.
|
Run -> Build from the menu.
|
||||||
|
|
||||||
@ -48,7 +49,7 @@ Run -> Build from the menu.
|
|||||||
-----------
|
-----------
|
||||||
http://<WebServer>/cgi-bin/<CGIExecutableName>/ should start the example if
|
http://<WebServer>/cgi-bin/<CGIExecutableName>/ should start the example if
|
||||||
everything is set up properly.
|
everything is set up properly.
|
||||||
ex: http://127.0.0.1:8080/cgi-bin/echo.exe/
|
example: http://127.0.0.1:8080/cgi-bin/echo.exe/
|
||||||
|
|
||||||
Note: You need to change the CGI application name if needed (for example, on
|
Note: You need to change the CGI application name if needed (for example, on
|
||||||
Linux it is not echo.exe).
|
Linux it is not echo.exe).
|
||||||
@ -62,7 +63,7 @@ http://<WebServer>/<ApacheLocationName>/ should start the example if
|
|||||||
everything is set up properly.
|
everything is set up properly.
|
||||||
ex: http://127.0.0.1:8080/myapache/
|
ex: http://127.0.0.1:8080/myapache/
|
||||||
|
|
||||||
if in the Apache configuration file (ex: httpd.conf) it was set up as:
|
An example for the needed Apache configuration file (example: httpd.conf) snippet:
|
||||||
|
|
||||||
LoadModule mod_echo "<path_to_mod>/echo.dll"
|
LoadModule mod_echo "<path_to_mod>/echo.dll"
|
||||||
<Location /myapache>
|
<Location /myapache>
|
||||||
@ -76,9 +77,9 @@ the module can be libecho.so or just simply libecho and not echo.dll .
|
|||||||
|
|
||||||
Note: If you recompile an Apache module while the module itself is loaded into
|
Note: If you recompile an Apache module while the module itself is loaded into
|
||||||
the Apache server, the compilation will fail, because the file is in use
|
the Apache server, the compilation will fail, because the file is in use
|
||||||
(Apache modules stay in the memory). So first, you always need to stop the
|
(Apache modules stay in memory).
|
||||||
Apache server before you recompile or before you copy over the new version of
|
So first, you always need to stop the Apache server before you recompile
|
||||||
the created module.
|
or before you copy over the new version of the created module.
|
||||||
|
|
||||||
|
|
||||||
2.c; as FCGI
|
2.c; as FCGI
|
||||||
@ -86,7 +87,8 @@ the created module.
|
|||||||
http://<WebServer>/<ApacheScriptAliasName>/ should start the example if
|
http://<WebServer>/<ApacheScriptAliasName>/ should start the example if
|
||||||
everything is set up properly.
|
everything is set up properly.
|
||||||
ex: http://127.0.0.1:8080/myfcgi/
|
ex: http://127.0.0.1:8080/myfcgi/
|
||||||
if in the Apache configuration file (ex: httpd.conf) it was set up as:
|
|
||||||
|
An example for the needed Apache configuration file (example: httpd.conf) snippet:
|
||||||
|
|
||||||
LoadModule fastcgi_module "<path_to_mod>/mod_fastcgi-2.4.6-AP22.dll"
|
LoadModule fastcgi_module "<path_to_mod>/mod_fastcgi-2.4.6-AP22.dll"
|
||||||
<IfModule mod_fastcgi.c>
|
<IfModule mod_fastcgi.c>
|
||||||
@ -102,7 +104,7 @@ LoadModule fastcgi_module "<path_to_mod>/mod_fastcgi-2.4.6-AP22.dll"
|
|||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
Note: You need to change the module name if needed. For example on Linux,
|
Note: You need to change the module name if needed. For example on Linux,
|
||||||
the module is not mod_fastcgi-2.4.6-AP22.dll but mod_fastcgi.so (need to be
|
the module is not mod_fastcgi-2.4.6-AP22.dll but mod_fastcgi.so (needs to be
|
||||||
compiled from sources found at http://www.fastcgi.com/dist/ ).
|
compiled from sources found at http://www.fastcgi.com/dist/ ).
|
||||||
The port (2015 in this example) must match the one set in the project main
|
The port (2015 in this example) must match the one set in the project main
|
||||||
file (echo.lpr).
|
file (echo.lpr).
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
FPTemplate examples
|
FPTemplate examples
|
||||||
===================
|
===================
|
||||||
These examples are demonstrating some uses of templates (with FPTemplate) when
|
These examples demonstrate some uses of templates (with FPTemplate) when
|
||||||
generating HTML pages by CGI/FCGI programs or Apache modules.
|
generating HTML pages by CGI/FCGI programs or Apache modules.
|
||||||
|
|
||||||
The main idea is to leave the web page designing and look&feel to the web page
|
The main idea is to leave the web page design and look&feel to the web page
|
||||||
designers. Separating the web page design from the back-end CGI/FCGI/Apache
|
designers. Separating the web page design from the back-end CGI/FCGI/Apache
|
||||||
application makes it possible to design, change or redesign a whole website
|
application makes it possible to design, change or redesign a whole website
|
||||||
without modifying a single line of code in the CGI/FCGI/Apache application.
|
without modifying a single line of code in the CGI/FCGI/Apache application.
|
||||||
Back-end programmers and web page designers can work parallel easily, and
|
|
||||||
|
Back-end programmers and web page designers can easily work parallel, and
|
||||||
neither side needs extensive knowledge of the other (does not hurt, just not
|
neither side needs extensive knowledge of the other (does not hurt, just not
|
||||||
necessary most of the time).
|
necessary most of the time).
|
||||||
|
|
||||||
@ -24,7 +25,7 @@ CGI/FCGI/Apache application when generating the response page -> {TagName1}
|
|||||||
See README.txt
|
See README.txt
|
||||||
|
|
||||||
2. /tagparam/*.*
|
2. /tagparam/*.*
|
||||||
Demonstrating the set up and use of template tag parameter(s)
|
Demonstrates the set up and use of template tag parameter(s)
|
||||||
-> {+DATETIME [-FORMAT=MM/DD hh:mm:ss-]+}
|
-> {+DATETIME [-FORMAT=MM/DD hh:mm:ss-]+}
|
||||||
|
|
||||||
3. /listrecords/*.*
|
3. /listrecords/*.*
|
||||||
@ -34,7 +35,7 @@ See README.txt
|
|||||||
|
|
||||||
4. /fileupload/*.*
|
4. /fileupload/*.*
|
||||||
Demonstrates uploading file(s) to a web server with the help of a CGI/FCGI
|
Demonstrates uploading file(s) to a web server with the help of a CGI/FCGI
|
||||||
program or Apache module by using so called "multipart" html forms.
|
program or Apache module by using so called "multipart" HTML forms.
|
||||||
See README.txt
|
See README.txt
|
||||||
|
|
||||||
5. /sessions/*.*
|
5. /sessions/*.*
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Hello world, example
|
Hello world example
|
||||||
============
|
===================
|
||||||
The simplest "Hello World" example using fcl-web (fpweb) that uses a web action
|
The simplest "Hello World" example using fcl-web (fpweb) that uses a web action
|
||||||
called "func1call" in the web module to generate the response page.
|
called "func1call" in the web module to generate the response page.
|
||||||
|
|
||||||
Note, that the only difference between CGI/FCGI and Apache module is in the
|
Note that the only difference between CGI/FCGI and Apache module is in the
|
||||||
main project .lpr file and the web server (Apache) configuration.
|
main project .lpr file and the web server (Apache) configuration.
|
||||||
|
|
||||||
=====================
|
=====================
|
||||||
@ -24,7 +24,7 @@ in the cgi/fcgi/apache directories.
|
|||||||
|
|
||||||
1.a; with FPC
|
1.a; with FPC
|
||||||
-------------
|
-------------
|
||||||
Enter to the directory (cgi/fcgi/apache) that has the .lpr file you wish to
|
Go to the directory (cgi/fcgi/apache) that has the .lpr file you wish to
|
||||||
compile, and then execute the command
|
compile, and then execute the command
|
||||||
|
|
||||||
fpc -Fu../webmodule helloworld.lpr
|
fpc -Fu../webmodule helloworld.lpr
|
||||||
@ -60,7 +60,7 @@ the :8080 part from the calling URL.
|
|||||||
http://<WebServer>/<ApacheLocationName>/func1call should start the
|
http://<WebServer>/<ApacheLocationName>/func1call should start the
|
||||||
example if everything is set up properly.
|
example if everything is set up properly.
|
||||||
ex: http://127.0.0.1:8080/myapache/func1call
|
ex: http://127.0.0.1:8080/myapache/func1call
|
||||||
if in httpd.conf it was set up as:
|
Example Apache configuration file (e.g. httpd.conf) snippet for this:
|
||||||
LoadModule mod_helloworld "<path_to_mod>/helloworld.dll"
|
LoadModule mod_helloworld "<path_to_mod>/helloworld.dll"
|
||||||
<Location /myapache>
|
<Location /myapache>
|
||||||
SetHandler mod_helloworld
|
SetHandler mod_helloworld
|
||||||
@ -85,7 +85,7 @@ On Linux, it is enough to simply reload Apache after recompile.
|
|||||||
http://<WebServer>/<ApacheScriptAliasName>/func1call should start the example
|
http://<WebServer>/<ApacheScriptAliasName>/func1call should start the example
|
||||||
if everything is set up properly.
|
if everything is set up properly.
|
||||||
ex: http://127.0.0.1:8080/myfcgi/func1call
|
ex: http://127.0.0.1:8080/myfcgi/func1call
|
||||||
if in the Apache configuration file (ex: httpd.conf) it was set up as:
|
Example Apache configuration file (e.g. httpd.conf) snippet for this:
|
||||||
|
|
||||||
LoadModule fastcgi_module "<path_to_mod>/mod_fastcgi-2.4.6-AP22.dll"
|
LoadModule fastcgi_module "<path_to_mod>/mod_fastcgi-2.4.6-AP22.dll"
|
||||||
<IfModule mod_fastcgi.c>
|
<IfModule mod_fastcgi.c>
|
||||||
|
@ -11,7 +11,7 @@ begin
|
|||||||
Writeln('Usage : testhttp DocumentRoot [Port]');
|
Writeln('Usage : testhttp DocumentRoot [Port]');
|
||||||
Writeln('Where');
|
Writeln('Where');
|
||||||
Writeln(' Documentroot location to serve files from. It is mapped to location /files');
|
Writeln(' Documentroot location to serve files from. It is mapped to location /files');
|
||||||
Writeln(' Port port to listen on (default 8080)');
|
Writeln(' Port port to listen on (default 8080)');
|
||||||
Halt(1);
|
Halt(1);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
|
|
||||||
This is an example of how to use JSON-RPC.
|
This is an example of how to use JSON-RPC.
|
||||||
|
|
||||||
It requires lazarus to compile.
|
It requires Lazarus to compile.
|
||||||
|
|
||||||
The various *.in files are input for JSON-RPC requests.
|
The various *.in files are input for JSON-RPC requests.
|
||||||
|
|
||||||
The application can be tested as follows from the command-line
|
The application can be tested as follows from the command line:
|
||||||
|
|
||||||
testcgiapp -i demo -p echo/manual < echo.in
|
testcgiapp -i demo -p echo/manual < echo.in
|
||||||
testcgiapp -i demo -p echo/dispatch < echobatch.in
|
testcgiapp -i demo -p echo/dispatch < echobatch.in
|
||||||
testcgiapp -i demo -p echo/registered < echobatch.in
|
testcgiapp -i demo -p echo/registered < echobatch.in
|
||||||
testcgiapp -i demo -p echo/extdirect < extdirect.in
|
testcgiapp -i demo -p echo/extdirect < extdirect.in
|
||||||
testcgiapp -i demo -p echo/dispatch <notification.in
|
testcgiapp -i demo -p echo/dispatch < notification.in
|
||||||
testcgiapp -i demo -p echo/extdirectapi
|
testcgiapp -i demo -p echo/extdirectapi
|
||||||
testcgiapp -i demo -p echo/content <echobatch.in
|
testcgiapp -i demo -p echo/content < echobatch.in
|
||||||
testcgiapp -i demo -p echo/module <echobatch.in
|
testcgiapp -i demo -p echo/module < echobatch.in
|
||||||
|
|
||||||
The response is printed on standard output.
|
The response is printed on standard output.
|
||||||
|
|
||||||
the testcgiapp application is located in fcl-web/tests
|
The testcgiapp application is located in fcl-web/tests
|
||||||
|
@ -12,7 +12,6 @@ type
|
|||||||
{ TFPWebModule1 }
|
{ TFPWebModule1 }
|
||||||
|
|
||||||
TFPWebModule1 = class(TFPWebModule)
|
TFPWebModule1 = class(TFPWebModule)
|
||||||
procedure DataModuleCreate(Sender: TObject);
|
|
||||||
procedure TFPWebActions0Request(Sender: TObject; ARequest: TRequest;
|
procedure TFPWebActions0Request(Sender: TObject; ARequest: TRequest;
|
||||||
AResponse: TResponse; var Handled: Boolean);
|
AResponse: TResponse; var Handled: Boolean);
|
||||||
procedure TFPWebActions1Request(Sender: TObject; ARequest: TRequest;
|
procedure TFPWebActions1Request(Sender: TObject; ARequest: TRequest;
|
||||||
@ -44,10 +43,6 @@ Uses fpjson,jsonparser,fpjsonrpc,webjsonrpc, fpextdirect;
|
|||||||
|
|
||||||
{ TFPWebModule1 }
|
{ TFPWebModule1 }
|
||||||
|
|
||||||
procedure TFPWebModule1.DataModuleCreate(Sender: TObject);
|
|
||||||
begin
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TFPWebModule1.TFPWebActions0Request(Sender: TObject;
|
procedure TFPWebModule1.TFPWebActions0Request(Sender: TObject;
|
||||||
ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
|
ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
|
||||||
{
|
{
|
||||||
@ -128,7 +123,7 @@ procedure TFPWebModule1.TFPWebActions1Request(Sender: TObject;
|
|||||||
{
|
{
|
||||||
Demo 2. Use a dispatcher to dispatch the requests.
|
Demo 2. Use a dispatcher to dispatch the requests.
|
||||||
The handler is located on the owner module
|
The handler is located on the owner module
|
||||||
(it is created run-time, though)
|
(it is created run-time, though).
|
||||||
}
|
}
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -181,9 +176,9 @@ end;
|
|||||||
procedure TFPWebModule1.TFPWebActions2Request(Sender: TObject;
|
procedure TFPWebModule1.TFPWebActions2Request(Sender: TObject;
|
||||||
ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
|
ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
|
||||||
{
|
{
|
||||||
Demo 3. Use a dispatcher to dispatch the requests,
|
Demo 3. Use a dispatcher to dispatch the requests.
|
||||||
The handler is registered in the JSONFPCHandlerManager.
|
The handler is registered in the JSONFPCHandlerManager
|
||||||
(it is created run-time, though)
|
(it is created run-time, though).
|
||||||
}
|
}
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -235,8 +230,8 @@ procedure TFPWebModule1.TFPWebActions3Request(Sender: TObject;
|
|||||||
|
|
||||||
{
|
{
|
||||||
Demo 4. Ext.Direct dispatcher
|
Demo 4. Ext.Direct dispatcher
|
||||||
The handler is registered in the JSONFPCHandlerManager.
|
The handler is registered in the JSONFPCHandlerManager
|
||||||
(it is created run-time, though)
|
(it is created run-time, though).
|
||||||
}
|
}
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -289,8 +284,8 @@ procedure TFPWebModule1.TFPWebActions4Request(Sender: TObject;
|
|||||||
|
|
||||||
{
|
{
|
||||||
Demo 5. Using a TJSONRPCContentProducer.
|
Demo 5. Using a TJSONRPCContentProducer.
|
||||||
The handler is registered in the JSONFPCHandlerManager.
|
The handler is registered in the JSONFPCHandlerManager
|
||||||
(it is created run-time, though)
|
(it is created run-time, though).
|
||||||
}
|
}
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -325,9 +320,9 @@ end;
|
|||||||
procedure TFPWebModule1.TFPWebActions5Request(Sender: TObject;
|
procedure TFPWebModule1.TFPWebActions5Request(Sender: TObject;
|
||||||
ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
|
ARequest: TRequest; AResponse: TResponse; var Handled: Boolean);
|
||||||
{
|
{
|
||||||
Demo 6. creating an API response for Ext.Direct
|
Demo 6. Creating an API response for Ext.Direct
|
||||||
The handler is registered in the JSONFPCHandlerManager.
|
The handler is registered in the JSONFPCHandlerManager
|
||||||
(it is created run-time, though)
|
(it is created run-time, though).
|
||||||
}
|
}
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -356,7 +351,7 @@ procedure TFPWebModule1.TFPWebActions6Request(Sender: TObject;
|
|||||||
{
|
{
|
||||||
Demo 6. Using a TJSONRPCModule instance to handle the request.
|
Demo 6. Using a TJSONRPCModule instance to handle the request.
|
||||||
The handler is registered in the JSONFPCHandlerManager.
|
The handler is registered in the JSONFPCHandlerManager.
|
||||||
(it is created run-time, though)
|
(it is created run-time, though).
|
||||||
}
|
}
|
||||||
|
|
||||||
Var
|
Var
|
||||||
|
@ -49,7 +49,7 @@ end;
|
|||||||
{
|
{
|
||||||
When a new session is detected
|
When a new session is detected
|
||||||
|
|
||||||
- either because there was no session,in which case NewSession is the default
|
- either because there was no session, in which case NewSession is the default
|
||||||
|
|
||||||
- The URL contained the newsession action in the 'DemoSession' action variable,
|
- The URL contained the newsession action in the 'DemoSession' action variable,
|
||||||
something like:
|
something like:
|
||||||
@ -93,7 +93,7 @@ end;
|
|||||||
that is currently stored in the session object.
|
that is currently stored in the session object.
|
||||||
|
|
||||||
If the user supplied a new value for 'var', we store it in the session.
|
If the user supplied a new value for 'var', we store it in the session.
|
||||||
to supply the value, append
|
To supply this value, append
|
||||||
?var=value
|
?var=value
|
||||||
to the URL.
|
to the URL.
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
The demo directories demonstrate the use of the TFPWebDataProvider
|
The demo directories demonstrate the use of the TFPWebDataProvider
|
||||||
components, using ExtJS. It demonstrates the use of JSON and XML
|
components, using ExtJS. It demonstrates the use of JSON and XML
|
||||||
communitation between a ExtJS Datastore and the webdataprovider.
|
communication between an ExtJS Datastore and the webdataprovider.
|
||||||
|
|
||||||
ExtJS must be installed, it can be downloaded for free from
|
ExtJS must be installed, it can be downloaded for free from
|
||||||
http://www.extjs.com/
|
http://www.extjs.com/
|
||||||
|
Loading…
Reference in New Issue
Block a user