~ubuntu-branches/ubuntu/saucy/lazarus/saucy

« back to all changes in this revision

Viewing changes to components/fpweb/demo/fptemplate/sessions/cookiesessions-login/README.txt

  • Committer: Package Import Robot
  • Author(s): Paul Gevers, Abou Al Montacir, Bart Martens, Paul Gevers
  • Date: 2013-06-08 14:12:17 UTC
  • mfrom: (1.1.9)
  • Revision ID: package-import@ubuntu.com-20130608141217-7k0cy9id8ifcnutc
Tags: 1.0.8+dfsg-1
[ Abou Al Montacir ]
* New upstream major release and multiple maintenace release offering many
  fixes and new features marking a new milestone for the Lazarus development
  and its stability level.
  - The detailed list of changes can be found here:
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch
* LCL changes:
  - LCL is now a normal package.
      + Platform independent parts of the LCL are now in the package LCLBase
      + LCL is automatically recompiled when switching the target platform,
        unless pre-compiled binaries for this target are already installed.
      + No impact on existing projects.
      + Linker options needed by LCL are no more added to projects that do
        not use the LCL package.
  - Minor changes in LCL basic classes behaviour
      + TCustomForm.Create raises an exception if a form resource is not
        found.
      + TNotebook and TPage: a new implementation of these classes was added.
      + TDBNavigator: It is now possible to have focusable buttons by setting
        Options = [navFocusableButtons] and TabStop = True, useful for
        accessibility and for devices with neither mouse nor touch screen.
      + Names of TControlBorderSpacing.GetSideSpace and GetSpace were swapped
        and are now consistent. GetSideSpace = Around + GetSpace.
      + TForm.WindowState=wsFullscreen was added
      + TCanvas.TextFitInfo was added to calculate how many characters will
        fit into a specified Width. Useful for word-wrapping calculations.
      + TControl.GetColorResolvingParent and
        TControl.GetRGBColorResolvingParent were added, simplifying the work
        to obtain the final color of the control while resolving clDefault
        and the ParentColor.
      + LCLIntf.GetTextExtentExPoint now has a good default implementation
        which works in any platform not providing a specific implementation.
        However, Widgetset specific implementation is better, when available.
      + TTabControl was reorganized. Now it has the correct class hierarchy
        and inherits from TCustomTabControl as it should.
  - New unit in the LCL:
      + lazdialogs.pas: adds non-native versions of various native dialogs,
        for example TLazOpenDialog, TLazSaveDialog, TLazSelectDirectoryDialog.
        It is used by widgetsets which either do not have a native dialog, or
        do not wish to use it because it is limited. These dialogs can also be
        used by user applications directly.
      + lazdeviceapis.pas: offers an interface to more hardware devices such
        as the accelerometer, GPS, etc. See LazDeviceAPIs
      + lazcanvas.pas: provides a TFPImageCanvas descendent implementing
        drawing in a LCL-compatible way, but 100% in Pascal.
      + lazregions.pas. LazRegions is a wholly Pascal implementation of
        regions for canvas clipping, event clipping, finding in which control
        of a region tree one an event should reach, for drawing polygons, etc.
      + customdrawncontrols.pas, customdrawndrawers.pas,
        customdrawn_common.pas, customdrawn_android.pas and
        customdrawn_winxp.pas: are the Lazarus Custom Drawn Controls -controls
        which imitate the standard LCL ones, but with the difference that they
        are non-native and support skinning.
  - New APIs added to the LCL to improve support of accessibility software
    such as screen readers.
* IDE changes:
  - Many improvments.
  - The detailed list of changes can be found here:
    http://wiki.lazarus.freepascal.org/New_IDE_features_since#v1.0_.282012-08-29.29
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes#IDE_Changes
* Debugger / Editor changes:
  - Added pascal sources and breakpoints to the disassembler
  - Added threads dialog.
* Components changes:
  - TAChart: many fixes and new features
  - CodeTool: support Delphi style generics and new syntax extensions.
  - AggPas: removed to honor free licencing. (Closes: Bug#708695)
[Bart Martens]
* New debian/watch file fixing issues with upstream RC release.
[Abou Al Montacir]
* Avoid changing files in .pc hidden directory, these are used by quilt for
  internal purpose and could lead to surprises during build.
[Paul Gevers]
* Updated get-orig-source target and it compinion script orig-tar.sh so that they
  repack the source file, allowing bug 708695 to be fixed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Sessions stored in cookies with Login, example
2
 
======================================
3
 
(Requires FPC versions past 4/30/2009 /revisions 13062 and later/)
4
 
 
5
 
Note: Cookies must be enabled for the website in the visitor's browser for it 
6
 
to work.
7
 
 
8
 
Every visitor needs to log in to get a session ID that is passed in a 
9
 
cookie to the web visitor's browser and stored on the web server until it 
10
 
expires.
11
 
This way fully functional web sites can be built without mixing the different 
12
 
visitor's screens.
13
 
 
14
 
Note: This example can not distinguish between sessions on the same computer, same 
15
 
browser but different tabs. If for example someone opens three tabs and logs in 
16
 
with all of them, all three browser tabs will be the same session.
17
 
In order to handle sessions differently by browser tabs the best way to go is 
18
 
to store session IDs in the URLs, Links, etc. for all pages the web application
19
 
 generates (this way cookies are not needed to maintain the session).
20
 
The sample user logins are stored in userdb.txt for the example.
21
 
 
22
 
 
23
 
Setup:
24
 
The web server application needs read/write access to the file where the session
25
 
 informations will be stored with the login names (sessiondb.txt by default).
26
 
 
27
 
CGI
28
 
----------
29
 
Usually it works if you put the templates next to the CGI executable file.
30
 
(testlogin.html, testlogout.html, testwelcome.html, testsomepage.html and
31
 
userdb.txt)
32
 
 
33
 
http://<WebServer>/cgi-bin/<CGIExecutableName>/login should start the 
34
 
example if everything is set up properly.
35
 
ex: http://127.0.0.1:8080/cgi-bin/cookiesession.exe/login
36
 
 
37
 
Note: You need to change the URLs in the templates if "cgi-bin" or 
38
 
"cookiesession.exe" changes (for example on Linux it is not cookiesession.exe).
39
 
(* see at the bottom)
40
 
 
41
 
 
42
 
Apache
43
 
----------
44
 
Usually it works if you put the templates into the Apache main directory (not 
45
 
the DocumentRoot, but the main Apache directory).
46
 
(testlogin.html, testlogout.html, testwelcome.html, testsomepage.html and
47
 
userdb.txt)
48
 
 
49
 
http://<WebServer>/<ApacheLocationName>/login should start the 
50
 
example if everything is set up properly.
51
 
ex: http://127.0.0.1:8080/myapache/login
52
 
if in httpd.conf it was set up as:
53
 
LoadModule mod_cookiesession "<path_to_mod>/mod_cookiesession.dll"
54
 
<Location /myapache>
55
 
    SetHandler mod_cookiesession
56
 
    Order allow,deny
57
 
    Allow from all
58
 
</Location>
59
 
 
60
 
Note: You need to change the URLs in the templates if "myapache" changes. 
61
 
Also, for example on Linux the module can be mod_cookiesession.so and not 
62
 
mod_cookiesession.dll 
63
 
(* see at the bottom)
64
 
 
65
 
Note: If you recompile an apache module while the module itself is loaded into
66
 
the Apache server, the compilation will fail because the file is in use (Apache
67
 
 modules stay in the memory). So first you always need to stop the server before
68
 
you recompile or before you copy over the new version of the created module.
69
 
 
70
 
 
71
 
 
72
 
(*)To use the same templates for both CGI programs and Apache modules the 
73
 
links can also be generated dynamically when the response html pages are 
74
 
generated. For example instead of putting
75
 
 
76
 
/cgi-bin/cookiesession.exe/login
77
 
/myapache/login
78
 
 
79
 
into the templates, a tag can be used to put the righ link there.
80
 
Ex:
81
 
<form action="{*SCRIPTPATH*}/login" method="post" ...
82
 
Of course, the {*SCRIPTPATH*} template tag needs to be replaced with the 
83
 
correct string.
 
 
b'\\ No newline at end of file'