<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<title>WebTool Help</title>
</head>
<body link=blue vlink=#000099 bgcolor="#FFFFFF" text="#000000" alink="#000099" leftmargin="5" topmargin="5" marginwidth="5" marginheight="5">
<table width="100%" BORDER="0" BACKGROUND="images/bgimage.jpg">
<tr>
<td>
<div class=Section1>
<p align="left"><b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
<font size="4"> WebTools HELP File</font></font></b><br>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <u><font color="#000099" size="3">Contents:</font></u></font></b>
<br>
<BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#000066">1.
<font color="#990066"><a href="HELP.html#1">Overview</a></font></font></b>
<BR>
<font color="#000066" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">2.
<font color="#990066"><a href="HELP.html#2">Web Tools</a></font></font></b></font>
<BR>
<font color="#000066" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">3.
<font color="#990066"><a href="HELP.html#3">GlobExport</a></font></font></b></font>
<BR>
<font color="#000066" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">4.
<font color="#990066"><a href="HELP.html#4">STDoutHandle</a></font></font></b></font>
<BR>
<font color="#000066" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">5.
<font color="#990066"> <a href="HELP.html#5">Xreader</a></font></font></b></font>
<BR>
<font color="#000066" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">6.
<font color="#990066"><a href="HELP.html#6">Config</a></font></font></b></font>
<BR>
<font color="#000066" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">7.
<font color="#990066"><a href="HELP.html#7">Security and restrictions</a></font></font></b></font>
<BR>
<font color="#000066" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">8.
<font color="#990066"><a href="HELP.html#8">Various stuff</a></font></font></b></font>
<BR>
<font color="#000066" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif">9.
<font color="#990066"><a href="HELP.html#9">Author</a></font></font></b></font>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
<br>
</font></b> <BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="1"></a>1.
Overview</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> WebTools
was projected to reduce maximum development work in web projects! It
decide most of common tasks, so you can think about more important things
at all. Note that, this package is not 10-15 kb</font></b> <b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">and
you will need a time to learn everything about it. But don't afraid
to start. I am sure that it will be helpful for you :-)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> This
document is not a comprehensive help. It is reference! For more information
and help please see examples into docs directory!<br>
<br>
<br>
</font></b> <BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="2"></a>2.
Web Tools</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> This
module capsulate most of functionally that Web developer need for its
projects! </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mainly
is support: sessions, user accounts, html-perl code (php like), Database
support, templates and more..</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><u><font color="#006633" size="3">Exported
Variables</font><br>
<br>
</u></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC">*SESSIONSTDOUT
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Standard
OUTput handler used by webtools to emulate</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> PRINT-like
operators.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
%SESREG</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> This
hash contain all registered variables with "this" session.</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
%SIGNALS</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> This
hash contained all catched signals from user's script.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
%sess_cookies </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Contain
all cookies received from input stream.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
%uploaded_files</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Contain
filenames of all uploaded files via multipart form!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
They are names of files on local machine (i.e. your web server)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
You can open and read these files from your server's tmp directory!</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Note that you must to clean up by yourself (please delete these files
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">after
your job) </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$cpg_priority</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Show priority of cookies and get/post
global variables. This variable can<br>
contain 'cookie' (cookies has higher priority)
or 'get/post' (get/post<br>
variables rewrite cookies values)<br>
<font color="#0000CC"> <br>
</font></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC">$sentcontent</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Show
whether Send_Content() where called! (i.e. data were flushed to browser)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$ip_restrict_mode</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
'on' or 'off' restriction of session by IP</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$apacheshtdocs</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> This
is apache`s htdocs directory.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$reg_buffer</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Contain
registered session data!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$cookie_path_cgi </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> That
is PATH added to cookies (e.g: /cgi-bin/) </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$cookie_domain_cgi</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> That
is DOMAIN added to cookies (e.g: .july.bg) </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$cookie_exp_date_cgi</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> That
is DATE added to cookies</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$secure_cookie_cgi</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> That
is SECURE atribute added to cookies (e.g: 1 or 0) </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$session_started</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Show
whether session_start were started!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$print_header_buffer</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Here
is a place where script holds 'headers' (only!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$print_flush_buffer</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Here
is a place where script holds 'body'!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$sql_host </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Variables
that contain SQL host from confing.pl</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$sql_user</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Variables
that contain user name from confing.pl,</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> used
to access SQL server.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$sql_pass</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Variables
that contain user pass from confing.pl, </font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> used
to access SQL server.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$sql_database_sessions</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> That
is database name of session's table.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$sql_sessions_table</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> That
is a name of session's table.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$cgi_script_timeout</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> That
is a expiration time of script i.e. maximum running time of script.
Default it's value is 120 seconds! If you need more time for your
script, please don't change that var directly, please use function
set_script_timeout()</font></b> <b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> If
you thing you need more time for all your scripts at</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> all,
then change this var (it is found into config.pl)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#0000CC"><br>
$cgi_lib_forbid_mulipart</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> If
you want to protect yourself from multipart spam</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> turn
this to 'on' (Default it is set to 'off')<br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
If you disable this variable you will not longer receive</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Multipart
forms via POST!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><u><font color="#006633" size="3">Exported
Functions<br>
<br>
</font></u></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">hideerror</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Function
that will be executed when error occur in SQL server.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_query</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> SQL
query function. $result = <font color="#0000CC">sql_query</font> ($query,$DBHandler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_fetchrow</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> SQL
function that fetching rows from SQL server. </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> @arr
= <font color="#0000CC">sql_fetchrow</font> ($result_handler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_affected_rows</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> SQL
function that show a count of affected rows. </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $number
= <font color="#0000CC">sql_affected_rows</font> ($result_handler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_inserted_id</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> SQL
function that show current inserted ID number.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $number
= <font color="#0000CC">sql_inserted_id</font> ($result_handler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_num_rows</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> SQL
function that show a count of affected rows.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $number
= <font color="#0000CC">sql_ num_rows</font> ($result_handler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_quote</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Quote
one scalari.e. escape special chars and add at both begin and end parts
needed quotes!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $quoted_string
= <font color="#FF0000">sql_quote</font> ($unquoted,$DBHandler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_connect</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Connect
SQL server. No params needed!<br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Return $DBHandler as result.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_connect</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Connect
SQL server. Same as previous but it's take up to 6 parameters.<br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $DBHandler
= <font color="#0000CC">sql_connect</font> ($host,$database,$user,$pass,[$port],[$full_path]);<br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $host
is needfull only for MySQL DB; $database is DNS for Access DB, normal</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> DB
name for MySQL and file name (without path and without ext eg.: 'july');</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $port
is proper only for MySQL DB; $full_path is a path to Flat DB file (eg.:
./db/)<br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> NOTE:
You should specify all parameters except these in "[]" (if
they are not applyable)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_select_db</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Select new database.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $new_DBHandler
= <font color="#0000CC">sql_select_db</font> ($new_database,$DBHandler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> As
result of this function new database are now activated (selected) but
you must save (and use) the new one Database Handler instead of
previous one!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_disconnect</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Disconnect
SQL server. No params needed!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Return
1 as result.<br>
<br>
<font color="#FF0000"><br>
sql_errmsg</font> <br>
Return error message.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $err_mes
= <font color="#0000CC">sql_errmsg</font> ($DBHandler);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_errno</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Return error number.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $err_numb
= <font color="#0000CC">sql_errno</font> ($DBHandler);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
sql_data_seek</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Move result handler to some row number.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $res
= <font color="#0000CC">sql_data_seek</font> ($row_number,$result_handler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
load_database_driver</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Load database driver (on runtime)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $res
= <font color="#0000CC">load_database_driver</font> ($driver_name);<BR>
Where $driver_name can be 'mysql', 'flat', 'access' and 'sess_flat'!
</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
DB_OnDestroy</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Event
on destroy DB handler!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
DB_OnExit</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Event
on script exit!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">________________________________________________</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">session_start</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Start
SESSION. It can be inherited or created as is.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $SID
= <font color="#0000CC">session_start</font> ($DBHandler,$NewSessionFLAG);<br>
Where $NewSessionFLAG can be 1 or 0 (1 - will create absolutely
new session</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> (old
session is ignored), 0 - will inherit old session if any)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_register</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Register
one buffer (compressed vars) into Session table.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $result
= <font color="#0000CC">session_register</font> ($Buffer,$DBHandler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_destroy </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Destroy
current session</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $SID
= <font color="#0000CC">session_destroy</font> ($DBHandler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_ip_restrict</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
mode of session restriction by IP. Valid modes are: 'on' and 'off'</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC">session_ip_restrict</font>
($mode);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_id</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Return
current $SID as result.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_clear_expired </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Clear
all expired records from database.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $SID
= <font color="#0000CC">session_clear_expired</font> ($DBHandler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_id_adder</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Add
SID ident to all links and forms in source!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $result_source
= <font color="#0000CC">session_id_adder</font> ($source);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_expire_update </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Update
current session`s time up to now.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $result
= <font color="#0000CC">session_expire_update</font> ($DBHandler);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
action_sid_adder</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Add
SID indents to all forms in source!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $result_source
= <font color="#0000CC">action_sid_adder</font> ($source);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
href_sid_adder</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Add
SID ident to all links in source!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $result_source
=<font color="#0000CC"> href_sid_adder</font> ($source);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
convert_ses_time</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Convert
session time to "codded" integer.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $coded_string
=<font color="#0000CC"> convert_ses_time</font> ($source_time,$count_of_new_str);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
new_session </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Show
whether new session were started.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
GetCurrentSID</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Return
current Session ID.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
register_var</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Register
one variable (scalar , array or hash) into current session.</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $coded_buffer
= <font color="#0000CC">register_var </font>($type,$name,@val);<br>
where $type could be scalar, array or hash, $name can be
any </font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">permitted
variable name under whom module will save data.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> @val
is a array that contain data for registration. It could be also</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> just
scalar or even hash</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
unregister_var</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> UnRegister
one variable (scalar, array or hash)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $coded_buffer
= <font color="#0000CC">unregister_var</font> ($name,$buffer);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
read_scalar</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Read
one scalar from DB (Already Registrated!!!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $scalar
= <font color="#0000CC">read_scalar</font> ($name);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
read_array</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Read
one array from DB (Already Registrated!!!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> @array
= <font color="#0000CC">read_array</font> ($name);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
read_hash</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Read
one hash from DB (Already Registrated!!!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> %hash
= <font color="#0000CC">read_hash</font> ($name);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
update_var </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Update
one variable from $reg_buffer.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $coded_buffer
= <font color="#0000CC">update_var</font> ($type,$name,$buffer,@new_val);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
exists_var </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Check
whether one variable exists into $reg_var!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $bool_result
= <font color="#0000CC">exists_var</font> ($type,$name,$buffer);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_set_id_name</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
name of session (labeled) (exmpl: 'sid')</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC">session_set_id_name</font>
($new_sid_label);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_id_name </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Get
current name of sesson (exmpl: 'pid','sid'
)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC"> session_id_name</font>
();</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_expiration</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Get
current expiration date (exmpl: '+1h')</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC">session_expiration</font>
();</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
session_cookie_path</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Get
current session cookie`s pat (exmpl: '/cgi-bin/')</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC">session_cookie_path</font>
();</font></b> <br>
<br>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">________________________________________________</font></b><br>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><br>
<font color="#FF0000">attach_var</font><br>
Attach one variable(scalar) with output HTML
page.<br>
Variable is 'moving' page to page via cookies
(or via links <br>
and 'action' if cookies are not accepted)<br>
<font color="#0000CC">attach_var</font>($var_name,$var_value);<br>
<br>
</b></font>
<p align="left"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">detach_var</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Detach variable, attached with attach_var()<br>
<font color="#0000CC">detach_var</font>($var_name);<BR>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">________________________________________________<br>
<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">delete_cookie</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> High
level delete cookie function. It can get only 1 param!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC">delete_cookie</font>
($name);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
write_cookie</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> High
level write cookie function. It can get up to 6 params!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC">write_cookie</font>
($name,$value,$expr_date,$path,$domain);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Params
from 3 to 6 are not required!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
read_cookie</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> High
level read cookie function. It can get only 1 param!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC">read_cookie
</font>($name);</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
GetCookies</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Get
all cookies(or only wished) and put them all into %Cookies.</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Don`t
call this function directrly! (Use: <font color="#0000CC">read_cookie</font>()
instead!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
SetCookies</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
cookie(or cookies) and return raw cookie string!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Don`t
call this function directrly! (Use: <font color="#0000CC">write_cookie</font>()
instead!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
SetCookieExpDate</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
cookie`s expiration for a cookie!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
SetCookiePath</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
cookie`s path for a cookie!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
SetCookieDomain</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
cookie`s domain for a cookie!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
SetSecureCookie</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
cookie`s secure attribute for a cookie!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
GetCompressedCookies</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Get
all compressed cookies (like common function)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
SetCompressedCookies</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Set
compressed cookies (like common function)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">________________________________________________</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">Header
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Write
one Header filed. </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#0000CC">Header</font>
(type=>'type' , val=>'value');</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Type
can be: 'content',' cookie', 'raw',' modified',' MIME',' window',</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 'Pragma','
Expires',' Referer'.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> And
respective example`s values for val are:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 'text/html','name=July;Path=/','full
featured row field!', 'some DATE',</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> '1.0',
'some window target', 'nocache', 'some DATE'.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Most
wanted type is row!!! NOTE: You can`t access HTTP Header</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> anyway
except this Header function!<br>
Example: <font color="#0000CC">Header </font>(<font color="#990000">type=>'row'
, val=>"Content-type: text/html\n"</font>);<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
Parse_Form</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<font color="#0000CC"> Not implemented</font> (only for back ware compatibility)!</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
b_print</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<font color="#0000CC">Not implemented</font> (only for back ware compatibility)!</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
ClearBuffer </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Clear current printed body data! (use that way only!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
ClearHeader</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Clear current printed header data! (use that way only!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
flush_print</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
At the end of script this function automatically flush all header's
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">and
body`s data!!! (automatically session, cookies and so on
)<br>
If you call function with parameter "1" you will
use function in false mode! This mode is proper when your script use
downloader.pl (module for cgi downloads)<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
read_form </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Read one var form input form (not need!!! All vars from forms </font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">and
cookies are global variables!)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
read_form_array </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Same like previous but reading is from array not from hash!</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
read_var</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Read one scalar from browser (via cookie or just via link/form... <br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">-
no mater :-))) (Well I sad
not need anymore :-)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">________________________________________________</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">RunScript</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Well that is main function at all! :-))) It eval (first compile html</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Code into Perl code) all. That function is called from process.cgi</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
set_script_timeout</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
That function set script's timeout (in seconds), after which scripts</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
terminate automatically! This prevent from infinitive scripts!<br>
$res = <font color="#0000CC">set_script_timeout</font>
($time_out_in_sec);</font></b>
<p align="left"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">set_variables_dump<br>
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
That function force dump of get/post, cookies, session
variables </font></b><br>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
and uploaded files at the end of result html page. If you want to use<br>
this feature call this function wherever
you want before end of script.<br>
Call function with parameter '1' if you
want to use this feature or '0' <br>
to turn it off!<br>
Note: However, you also need to be in
debug mode (see config.pl)<br>
before this feature to be useful!</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Second parameter is debug style view, it can take<BR>
follow values: 'html', 'popup' and 'layer'. Try it!<BR>
<font color="#0000CC">set_variables_dump</font>
(1,'popup');</font></b> <b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><br>
<br>
r_str </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">rand_srand</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
Random string generator (and initial sub). Used from WebTools engine.</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">________________________________________________</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">SignUpUser</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $res
= <font color="#0000CC">SignUpUser</font> ($user,$pass,$data,$dbh);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $res
can be 1 - success and 0 - :-(<br>
$data is user's data that you may whant to save into database.
You can save there up to 1MB!<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">SignInUser
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> ($ID,$DATA)
= <font color="#0000CC">SignInUser</font> ($user,$pass,$dbh);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $ID
is Id on user</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $DATA
is custom data on same user fetched from DB!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">________________________________________________</font></b>
<br>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><u><font color="#FF0000" size="3">*
SIGNALS IN WEBTOOLS</font><br>
<br>
</u></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> That
module support base signals from Unix/Linux and couple customs.<br>
So you can handle follow SIGs:</font></b> <BR>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">'<font color="#006633">OnFlush</font>'
- That event will happened when script prepare to print all data (Header
and Body).</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">'<font color="#006633">OnError</font>'
- That event will happened when some internal script error appear.</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">'<font color="#006633">OnExit</font>'
- That event will happened when script exit.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">'<font color="#006633">OnTerm</font>'
- You can use this event when connection between server and browser
has been broken (used signals: TERM,STOP,PIPE)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">'<font color="#006633">OnTimeOut</font>'
- This event will happened when your scripts lifetime is down (Default
it is 120 seconds) (used signal is: ALRM)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">To use
these events you must initialize global hash %SIGNALS whit proper reference
to sub.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Example:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#990000">$SIGNALS{'OnTimeOut'}
= \&MyDefaultTimeOutSubroutine;</font></font></b> <BR>
<font color="#990000"><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
sub MyDefaultTimeOutSubroutine { print "Timeout!!!"; }</font></b></font>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Note:
All events are case-sensitive!<br>
<br>
<font color="#FF0000"><br>
<u><font size="3">* What libraries are currently loaded?</font></u></font><br>
<br>
That can be difficult question and some time you may need to reUSE or
to reREQUIRE some library. However I decide to introduce simple mechanism
solving that problem. Every library (or almost anyone) have unique number
that exist if given module were loaded.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Number
- Library:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">1</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
- Database driver for MySQL (db_mysql.pl)<br>
<font color="#FF0000">2</font> - Database driver for MS Access (db_access.pl)<br>
<font color="#FF0000">4</font> - Database driver for Flat files (db_flat.pl)<br>
<font color="#FF0000">8</font> - Xreader (xreader.pl)<br>
<font color="#FF0000">16</font> - Flat support for Sessions (sess_flat.pl)<br>
<font color="#FF0000">32</font> - Miscellaneous tools (tools.pl)<br>
<font color="#FF0000">64</font> - Mail library (mail.pl)<br>
<font color="#FF0000">128</font> - Simple functions for coding/encoding
(utl.pl)<br>
<font color="#FF0000">256</font> - Download library (downloader.pl)<br>
<font color="#FF0000">512</font> - Php simulation library (php.pl)<br>
<font color="#FF0000">1024</font> - Simple fork library (fork.pl)<br>
<font color="#FF0000">2048 </font>- Sub set of JavaScript functions
(JavaScript.pl)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">If you
want to find out whether some library is already loaded in WebTools
(this can speed up all execution process) you can check respective library
on that way:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font color="#990000">if
(!($webtools::loaded_functions & 8)) {eval "require 'xreader.pl'";}</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Follow
code will load "xreader.pl" library when it has not been loaded
yet.<br>
Please use this format with require syntax to prevent double loading
of respective library!</font></b> <BR>
<BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="3"></a>3.
GlobExport</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> This
module is used indirect from scripts (included by webtools.pm). It parses
input data from form (POST), from GET and from Cookies. All input data
are exports to global variables!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> There
aren't support functions for this module (constructor and destructor
are automatically called).</font></b> <BR>
<BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="4"></a>4.
STDoutHandle</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> This
module catch standard output (STDOUT) and printed data are buffered
on default.</font></b> <BR>
<BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="5"></a>5.
XReader</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">This
module is very cool its supply possibility of script to use extern templates
(html code and SQL inline)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
That function read from file HTML data (with some</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> futures)
and substitute SQL queries and vars with</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> respective
values!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> $scalar
= <font color="#0000CC">xreader</font>($N_of_part,$filename);</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">For more
information see docs/examples/Lesson-8-xreader, but first read Templates
lesson in docs/templates !</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="6"></a>6.
Config.pl</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Typical
configuration for "Web Tools"<br>
If you want to edit this file via Web just </font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">use
install.cgi !</font></b><br>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
<font color="#006633">#[Name_Of_Project]</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::projectname = 'webtools'; <font color="#FF0000"># !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># This
is a name of project. Also this name is a base for other parameters
in this configuration file</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
<font color="#006633">#[SQL]</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::db_support = 'db_flat'; <font color="#FF0000"># !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Name
of database driver. Can be: db_mysql, db_access, db_flat</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sql_host = 'localhost'; <font color="#FF0000"># !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># host/ip
to DB server (MySQL)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sql_port = '3306';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Port
of SQL server</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sql_user = 'me';<font color="#FF0000"> # !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># User
name used to connect SQL server</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sql_pass = 'secret_password'; <font color="#FF0000"># !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># ...
and DB password</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
<font color="#006633">#[DataBase]</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sql_database_sessions = $webtools::projectname.'db';<font color="#FF0000">
# !!!</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Database
name (name some like project!?!?!). If need change it!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sql_sessions_table = $webtools::projectname.'_sessions';
<font color="#FF0000"># !!!</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Name
of session table.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sql_user_table = $webtools::projectname.'_users'; <font color="#FF0000">#
!!!</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Table
that contain all users (and admin too)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
<font color="#006633">#[CHECK]</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::check_module_functions = 'on';<font color="#FF0000"> # !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># SCRIPTS
RUN IN CHECK MODE! After first check(test),</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># please
turn this 'off'!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># YOU
CAN ALWAYS TURN THIS ON WHEN YOU WANT TO CHECK</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># YOUR
CURRENT CONFIGURATION WITHOUT ANY OPPRESSION!!!</font></b> <br>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><font color="#006633">#</font></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633">[Secure]</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::wait_attempt = '4';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Count
of attempts when database is flocked</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::wait_for_open = '2.0';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Time
between two attempts (in sec)</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sess_time = '2'; <font color="#FF0000"># !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Expire
time on session: 60 minutes</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::sys_conf_d
= 'hour'; <font color="#FF0000"># !!!</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Type
of sess time dimension</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::rand_sid_length
= '16';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Length
of SID string!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::sess_cookie = 'sesstime';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># 'sesstime'
- cookie expire when session expired. Enter any other value to expire
cookie when user close browser.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::l_sid = 'sid';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Session
label ID used by module</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::cgi_lib_forbid_mulipart = 'off';<font color="#FF0000"> #
!!!</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># If
you want to protect yourself from multipart spam turn this 'on' (you
will be no longer able to use multipart forms)!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::cgi_lib_maxdata = 4194304; <font color="#FF0000"># !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Set
maximum bytes to accept via POST (some king of multipart </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># protection)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Please
note that you can't set this to 0!!!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::cgi_script_timeout = 120;<font color="#FF0000"> # !!!</font></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Expiration
time of script! (120 seconds default). After expiration script </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># will
be terminated!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Please
note that you can't set this to 0!!! You always must know how much time
you need!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::ip_restrict_mode = 'on';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Set
'on' to restrict session by IP! If you have proxy problems with </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># restricted
IPs, please set 'off' or use proper</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># function
to set mode of this variable! (see: session_ip_restrict function)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Allowed
values are: "on" and "off".</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::run_restrict_mode = 'off';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Set
'on' to restrict external web user to your scripts.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># If
IP's of user not exists in DB/ips.pl WebTools will</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># close
script immediately!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Allowed
values are: "on" and "off".</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><font color="#006633">#</font></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633">[Debug]</font></b>
<br>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::debugging
= 'on';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Set
debugging mode</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::debug_mail
= 'on'; <font color="#FF0000"># !!!</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Show
whether real mail must by sent or must by saved into mail </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># directory!</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><font color="#006633">#</font></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633">[Mail]</font></b>
<br>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::sendmail
= '/usr/sbin/sendmail';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Real
full path to sendmail</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><font color="#006633">#</font></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633">[Other]</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::charset
= 'n5b0xzlQWdgfNXytCMAwq1TYu7SVBmUIvcOPZ2aprER9kjh3sHJKL8e4oiDFG6';</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Please
mix well this chars to get higher security of your session ID :-)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::cpg_priority = 'cookie';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Show
order of value fetching! There is 2 values: 'cookie' and 'get/post'.</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># 'cookie'
means that cookie's variable has higher priority!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font></b><b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::sess_force_flat
= 'on'; <font color="#FF0000"># !!!</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Session
support via DB or via file! (possible values are: 'on' and 'off')</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># When
you haven't DB support in your hand, you still can use sessions without
DataBase!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># To
begin using DB instead of flat files just set "this" variable
"off" (that is more secure and more compatible!)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Most
session functions required "dbh" but you can leave it empty
or to supply real db handler: no matter!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># NOTE:
Use flat files when you haven't 500 opened sessions in "tmp"
directory or more!</font></b> <br>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::support_email
= 'support@your_host.com';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> # Support
e-mail for unexpected errors! :)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
$webtools::var_printing_mode = 'buffered';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Default
output is buffered,</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># leave
this variable empty if you need output</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># of
your script to flush immediately!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Other
else for non buffered mode.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Actually
buffering depend of OS, Perl, Apache and socket!</font></b> <br>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">@webtools::treat_htmls_ext
= (</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Order
of html files location: Default, module first look for:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># "html","htm","whtml"
and "cgihtml". If you specify in URL</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># ...?file=env.html
script will ignore extension and will look for</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># file
with extension ordered in @treat_htmls_ext array</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># If
you leave this array empty then no lookups will be made!</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Order
of below array is really important!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Example:</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># If
your real file is: env.cgi and you want script to</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># look
for env.html then with array below you will never success!</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># That
is true because find operation will be broken when script found</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># extension
you look for i.e. in our case (env.)html and after that it</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># won't
continue! So if you want to run files that match our example</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># file
then follow array should look like this: </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># ('htm','whtml','cgihtml','cgi','html')</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 'html',</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 'htm',</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 'whtml',</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 'cgihtml',</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> 'cgi',</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> );</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><font color="#006633">#</font></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633">[PATHS]</font></b>
<br>
<br>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::tmp
= '/tmp/';<font color="#FF0000"> # !!!</font></font></b> <br>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Please
set full path to your temp directory</font></b> <br>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::driver_path
= './drivers/';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Path
to your DB Drivers (please keep structure)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::library_path
= './libs/';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Path
to your Libraries (please keep structure)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::db_path
= './db/';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Path
to your DBs and tables (please keep structure)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::mailsender_path
= './mail/';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Path
to your DBs and tables (please keep structure)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::xreader_path
= './jhtml/';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Path
to your xreader files(jhtml-s) (please keep structure)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::perl_html_dir
= './htmls/';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Path
to your perl's(webtools scripts) html files</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::apacheshtdocs
= '/var/www/htdocs/';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Path
to your apache htdocs directory('/usr/local/apache/htdocs/') (please
keep structure)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::cgi_home_path
= Get_CGI_Directory();</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Get
webtools cgi-bin directory (exmp: '/cgi-bin/webtools/') </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># NOTE:
This path is not absolute and is not an HTTP!!! (actualy part of HTTP)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$webtools::http_home_path
= '/webtools/';</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># Please
change this to your http path!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"># NOTE:
This path is not absolute and is not an HTTP!!! (actually part of HTTP)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="7"></a>7.
<u>Security and restrictions</u></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><u><br>
</u> If you have been completed read install.html document you probably
already mentioned most security problems in CGI world, so one of all
main targets are security and restrictions.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> First
of all I want to insure you, that WebTools capture most of CGI security
holes.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">*
Safely running of perl/html scripts:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Main
script "process.cgi" should run other scripts like "env.html"
, so only way to do it, is using of "file" variable in follow
format:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <a
href="http://your_server/cgi-bin/your_webtools/process.cgi?file=some_script">http://your_server/cgi-bin/your_webtools/process.cgi?file=some_script</a>,</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">where
some_script can be located in your "htmls" directory! So it
is extremely important to set your default "htmls" directory
(in config.pl) with care (e.g.: /home/my_domain/my_web/cgi-bin/my_webtools/htmls/)
or (./htmls/ where your current directory is "webtools" directory).<br>
<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">WebTools
will care about security problems with script called like this:</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a
href="http://your_server/cgi-bin/your_webtools/process.cgi?file=/etc/passwd">http://your_server/cgi-bin/your_webtools/process.cgi?file=/etc/passwd</a><br>
<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">To prevent
security problems, you should follow next rules:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">-
Never leave anyone directory variable empty! (like 'htmls', 'db', 'tmp'
)</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">-
Never set in these variable ROOT directory. <br>
<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">No body
can write in URL locater (in browser) query like that:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a
href="http://your_server/cgi-bin/your_webtools/process.cgi?file=../some_script">http://your_server/cgi-bin/your_webtools/process.cgi?file=../some_script</a></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">You are
protected for any kind of FILE crack actions like: </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">-
".." one directory down</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">-
"." Current directory</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">-
"/" or "\" Root directory</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">-
"~" Home directory</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">-
Also you have protected from any "illegal" characters in your
query!<br>
<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">However
you can use queries like:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
/process.cgi?file=/some_local_dir/some_script</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">where
/some_local_dir/ is directory in your "default htmls" directory.
For example that could be: /home/my_htmls/some_local_dir/ </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
So I hope that you are understood how important is not keeping of "htmls"
directory empty or ROOT!!!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Also
via "file=" variable in query line you CAN'T call scripts
with whatever you want extension! Only acceptable are: whtml html htm
cgihtml and cgi</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
Please notice that all these files are WEBTOOLS files (HTML plus Perl
:-) )!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">*
FLOOD protection:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Principle
WebTools haven't FLOOD protections but you should know that all multipart
data (I mean uploads) are saved in your TMP directory and if you don't
know about them, after end of your script WebTools will automatically
delete all of them!<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Also
you have POST limit size. i.e. you can't accept more data that specified
in confg.pl file ($cgi_lib_maxdata default is 4 MB)</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">*
TIME protection:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> If
your script stop to respond (for example stay in infinitive loop) or
wait forever for some event WebTools will "kill" your script
immediately after lifetime specified in config.pl ($cgi_script_timeout
default 120 seconds)<br>
<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">To change
that time please use set_script_timeout($timeout) function.</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
To capture event "OnTimeOut" please set follow handler:</font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">$SIGNALS{'OnTimeOut'}
= \&your_sub;</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">*
IP restrictions:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> If
you write web based application for small community you may want to
keep out external web visitors from your site?!? Now you can protect
all your WebTools based applications from external visitors based on
IP restriction. To switch this feature on, you need to fill out db/ips.pl
file with IPs that match your needs. Currently all IPs are allowed to
run your scripts! Please edit or delete lines that not match your protection
policy!</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">*
Session restriction based on IP</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> If
you use sessions you may want to protect your sessions by IP i.e. one
opened session can be used only by PC, created that session! <br>
<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Note:
If your visitors use proxy to access your scripts you may need to switch
this feature off (Use follow syntax: session_ip_restrict('off'); )<br>
<br>
</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Also
you should know that scripts are never restricted by IP if you use forced
flat file session support! (See config.pl and $sess_force_flat)</font></b>
<BR>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> All
functions and WebTools itself are released to help and to protect all
of us, BUT you should realize that we are not GODs and you will take
all responsibility of WebTools actions on your server and on all world
wide! Please keep that in your mind.</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PLEASE
SEND ALL SECURITY PROBLEMS THAT YOU MET IN YOUR PRACTICE WITH WebTools
at <a href="mailto:julian@proscrptum.com">julian@proscrptum.com</a></font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Thank's</font></b>
<BR>
<BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="8"></a>8.
<u>Various stuff</u></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><u><br>
<br>
</u> That section regards various questions.<br>
<br>
<font color="#006633"><u>1. Highlighting for UltraEdit text
editor.</u></font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> If
you want to have feature of highlighting with UltraEdit please open
your docs/WORDFILE.TXT </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Now go
to your UltraEdit directory and open WORDFILE.TXT and add to this file
a contain of docs/WORDFILE.TXT file!<br>
Edit follow line: </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">/L7"WebTools"
.... </font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">you may
need to change number of language supprt (default is 7: /L7....). </font></b>
<BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Save
changes of UltraEdit wordfile. Now UltraEdit will highlight files with
extensions: whtml and cgihtml :-)</font></b> <BR>
<BR>
<b><font size="3" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000"><a name="9"></a>9.
<u>AUTHOR</u>:</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#006633">Julian
Lishev</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">email:
<font color="#0000CC">julian@proscriptum.com</font></font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sofia,
Bulgaria</font></b> <BR>
<b><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></b>
</div>
</td>
</tr>
</table>
</body>
</html>