yepp, here it is: my pagemaker page

(and I hope, this is a silent background ;-) )

:-)

password-protection

debug
sorry, but this page is actually locked; to unlock it, just submit the correct password;

:-)

index...

about this page some help register add scripts links to registered pages
known bugs unregister delete scripts maintain registered pages

:-)

register a page debug
specify the complete local path and name of the page within the following field
. if you want to create a page
with that name, simply check the create checkbox. in that case you can specify a
title within this field which will be set for the new page.
additionally you may enter a comment for the file into the following commentbox

now press the button and the page will appear in the pagebox. if you
have messed up the the initial path you can it with this button. [index]

unregister a page debug
select from this list the pages which should be removed from the pagebox
if you are finished, just press the button. [index]

add a script debug
to add a script this field
should contain the complete local path and name of your script. if you want
to create a new script, check the create checkbox and use this box to

specify the scripts contents. then simply press the button and your
script will appear in the scriptlist ready to be used. [index]

delete a script debug
select from this list the scripts which should be removed from the scriptlist
if you are finished, just press the button. [index]

maintain pages debug
to replace text fill out the following two fields and check the replace checkbox.
text to find
replace with
or choose a script from the scriptlist and check the replace with script checkbox.
scriptfile to use:
if you are uncertain about the contents of a script, use the verify option.
select one or more pages from the following pagebox
[links]
select one or more of the following actions
standard footer standard header test

[index]

:-)

about this page...

first of all: this page may be useless for you, since you wouldn't be able to use it. but you may download this page and the sourcecodes of my cgi-programs to create your own pagemaker page. unfortunately actually there is no possibility to download my sources; i'm working on that, but it may take some days until i've found out how to do that on this server.

debug option allows you to use my page without any password!

my main intention when creating this page was to learn about cgi-functions. on the other hand there should be something somewhat usefull to be done with these functions. so, considering the many pages i may have in future :-] i decided to have a page to maintain all these other beautyful pages.

the first task were standard parts on pages; that is e.g. the footer you see on the bottom off this page - i'ld like it to be the same on every page i have; so if i change the footer, it should be changed on every page and that isn't very nice to be done by hand; therefore i specified some tag actually not used by html (<THFOOTER>) and included all the lines that belong to the footer in this tag; then i created a file containing these lines, too; at last i wrote a function that replaces text contained in a specified tag in one file with some text from another file; that's all - text has to be changed only once (in the ´standard footer file´) and could be copied with that function in any page.

the second task was the possibility to replace text in all my pages all at once. i thought about situations where i have to move my pages to another server, and suddenly some paths have to be changed or the name of my homepage has to be altered from welcome.html to welcome.html, or maybe my email-address changes, or... there may be thousands of references in my documents and i'm only one to change them all. so i wrote another function fulfilling this task.

the functions are written in c++ and may be available for you sometime in future when i have found out how to make them available to you. they first worked on my pc (486 66mhz) where i use a server software called windows httpd v1.4b written by robert b. denny; you can get news, tools and updates at http://www.city.net/win-httpd/. this server specifies two files when calling cgi-programs - one for input (containing the data send from the calling document) and one containing the output produced by the program. so my program is able to read and decode information from a file and to write usable output into another; i hope this proceeding is portable to be used with any other server.

that's all so far; if you have questions, suggestions or anything else, send me some mail. [index]

some help...

if you are asked for the complete local path of some page, there will be already some initial pathinformation in the inputfield. this should be the serverroot, i.e. the local path of your homedirectory on the httpd-server (if not, recompile cgi_page.c and change the according constant). every path must start with this ´basic´path. that means, if you want to maintain pages located not in that directory or a subdirectory of it, you have to insert some ´../´s to go back as far as necessary and then add the path leading to your page. if you've changed the path you can get it back by clicking on the initial path button
motive for this restriction: it is very easy to get the ´http://´-address of a document located in the serverroot - you just have to replace the serverrootpath with the according path on the httpd-server and therefore the document could be easily addressed as local file as well as page on the httpd-server. [back/index]

a new page is created based on a skeleton file which contains the standard elements and maybe more; the skeletonfile could be set up by you to be an optimal startingpoint for a new page. [back/index]

the comment you give for a page is displayed near the according link to that page to describe the contents of it. it is inserted in this page 'as it is', so feel free to use html-tags to format it; [back/index]

the complete local path of a scriptfile isn't restricted; a scriptfile could be anywhere on your server; anyway it should be a complete path and not a relative one. [back/index]

if you create a script, the specified contents is copied into the scriptfile 'as it is'. [back/index]

if you want to make several replacements you may want ot use a script. the script has the following format: it's divided in pairs of lines, each pair having the text_to_find in the first and the replace_with text in the second line. the replacements are carried out in the same sequence as they are found in the file. consider the following script:

        /images
        /other/images
        th
        thomas hansmann
if you have the text '/images/my_pic.jpeg' in a file which is changed, it'll be '/othomas hansmanner/images/my_pic.jpeg' afterwards! if a second line is empty, all occurences of the first line are deleted; but no first line is allowed to be empty (no replacement is carried out in that case). [maintain/add/delete/index]

when the replace checkbox is checked, the replacement action is done for every selected page ; leaving the replace_with field empty means to delete the text in the text_to_find field; the text_to_find field is not allowed to be empty, so you will receive an errormessage when starting the program with an empty text_to_find field; remember: if you type in some text but don't check the checkbox, the text will be disregarded! [back/index]

when the replace with script checkbox is checked, the replacements defined in the selected script are done for every selected page; if the contents of the script is invalid, no action takes place; if you are not sure about a scripts contents use the verify script option. [back/index]

if you check verify script, before doing the replacement via script a page is shown, stating all replacements found in the script; if there is anything in that script you don't want to have done, you can simply go back to the pagemaker page (without any action performed). [back/index]

in the pagebox you may select as much pages as you want, but at least one must be selected; the selected actions are performed for every selected page. [back/index]

you must select at least one action; the replace and replace with scripts checkboxes define actions too, so you don't have to select one of the actions given under the header 'select one or more of the following actions', if you have selected one of that two; all actions could be combined: in that case the replacement is done at last; if both, replace and replace with script are selected first the replacement via replace is done, then the replacement via script; all other actions (which shouldn't influence each other) are done before replacing;
there is one 'special' action, namely test. it is used for testing and debugging, so it depends on the actual sourcefile what happens if test is checked. when test is checked no other action is performed. [back/index]

if standard footer is selected, in all selected pages which contain a standard footer, this will be replaced with the one actually in the standard_footer _file. [back/index]

standard headerif standard header is selected, in all selected pages which contain a standard header, this will be replaced with the one actually in the standard_header_file. [back/index]

if debug is selected, you'll get a page showing all the data received by the cgi-program - no other action is performed. this makes it easy to see if the form sends really the data your program expects. checking this button in a form enables you to use it even without password! [maintain/register/unregister/add/delete/index]

known bugs...

the unlocked page is just the output of the cgi-program, so if you use relative anchors (that are links pointing to parts of this page like this one, allowing you to go up to the index) and then tell your browser to go ´back´, you may get an errormessage about a wrong requestmethod.
if i'ld allow to use the method get, anyone would be able to call the cgi-program directly via specifying it's name as new location and that's actually not what i want the people to do (it's just a lack of security, you know). but forbidding this ´direct´ use unfortunately disables your browser to reload the page with some relative anchor (it's the #xxx part shown in the locationbox of your browser).
therefore you have to go back with your browser until you reach a location where no #xxx part is added to the programs name - that page should be reloaded succesfully.
if there is actually no #xxx part added to the programs name you can try the following: click on this first relative anchor and then on this second relative anchor (you must use both !!); now tell your browser to go back once to produce the errormessage and once again to present this page as you expected it. [index]

links to pages...

welcome.htmlit's my homepage
construc.htmused for links to pages which are under construction
hints.htmpage with hints
visit.htmpage to register a visit
address.htmmy addresses
testpage.htma page showing some html features
picpage.htmpictures
pagemake.htmthis page
gotyou.htm
[back/index]

:-)

:-) :-) :-) :-) :-) :-)