MTVWebdesign FAQ generator v2.1
For the latest version of the script, click here.
Thank you for your interest in the MTVWebdesign FAQ generator. Please notice the copyright notice in the scripts.
You should be very careful handling CGI files. If you type something wrong, it might be that the script will fail. We take good care of our scripts and all the script we place on the internet are tested. They work for us. If they don't work for you you'll see an error in the browser, sometimes with a detailed message. Read more about such problems by clicking here.
If you are not an experienced perl programmer, we advice you not to edit the code. (Except the things you need to change as described in "Getting the script to work". If you want to become a perl programmer, we advice you to look over as much scripts as you possibly can. This script included! Make sure you keep a copy of the script before you start changing things. Get to know certain routines etc., and visit sites like the MTVWebdesign Perl section, CGI-Resources.com (A lot of scripts and tutorials), Scriptsearch.com and Developer Daily. Also, we advice you too read messages in cgi-newsgroups.
Good luck!
I will try to give as much information as possible about the use of this script. Hope you understand it all. If not, you can always email me at cgi@mtvwebdesign.hypermart.net.
Features
What's new?
Downloading the script
Requirements
Getting the script to work
Demo of the script
Known problems
FAQ
About MTVWebdesign open source
Disclaimer
Features
- Easy to setup.
- No sensetive information is stored in cookies.
- You can set a tokenfile.
- Admin script and Help script
- Unlimited pages allowed
- Pages created on the fly
- Create catagories, rename categories, move Q&A couples, modify Q&A couples, etc.
You'll find more information about some of the features in the rest of this page.
Back to top
What's new?
Version 2.1: (20000331)
- Minor Bug fixes in Perl coding
- Minor Bug fixes in HTML coding
Version 2.0:
- Changed databases to work with dbUnder.
Version 1.1:
- Minor security fixes
- Catagories can now be deleted and renamed.
- Pages can now be renamed
- Q&A Couples can now be move between catagories.
Downloading the script
Note: All scripts come in .ZIP format.
Go to http://mtvwebdesign.hypermart.net/scripts/ for the latest version
Back to top
Requirements
You need a server which allows you to execute Perl scripts. (CGI access).
You need a server which allows you to create directories. (Shouldn't be a problem).
Your server needs to have the CGI::Carp module installed. See FAQ's below on how to stop using the CGI::Carp module when you encounter problems.
You need a Cookie capable browser.
(I can't think of an other thing which is really required by this script.)
The script is tested with success on the following system(s):
Pentium 133Mhz (32 Mb RAM), Apache 1.3.4 and Sambar Perl 5 (ActiveState) build 509 (January 4th 1999), Microsoft Internet Explorer 5.0.
Back to top
Getting the script to work.
Changes in the CGI files
- Please check the first line of all the .CGI files and the dbUnder.lib file. (#!/usr/local/bin/perl). This should be the place where Perl is located on your server. Ask your webmaster for more information.
- In all the .CGI files, you can find the following lines (They might look different in the script):
use CGI::Carp qw(fatalsToBrowser); # Provides you with fatal error message if they occur.
require '/home/username/faq/faq.conf';
require $mtvwebdesignlib;
require $dbunderpath;
$dbdir = &dbdir_;
require $dbunder;
These lines are probably the most important. Please make sure that you change them in all the .CGI files!
Now, what you need to do is this: The require '/home/username/faq/faq.conf';
line should point to your config file. Please make sure you use an absolute path (as shown). Ask you webmaster for more information.
Changes in the dbUnderPath.lib file
When you open the dbUnderPath.lib file, you see the following line:
sub dbdir_ { return "c:/sambar/databases/"; }
You need to change this line to match your directory where you want to store the FAQGen database. Please note that if you already have a dbUnderPath.lib file on your system, you don't need a second lib. Just make sure that the scripts point to the lib you have on your system.
Changes in the faq.conf file
- $script_location
This is the location of the FAQ.CGI script on your server. It should be the URL to the script. Example: "http://www.yourdomain.com/cgi-bin/faq/faq.cgi";
- $admin_script
This is the location of the ADMIN.CGI script on your server. It should be the URL to the script. Example: "http://www.yourdomain.com/cgi-bin/faq/admin.cgi";
- $help_script
This is the location of the HELP.CGI script on your server. It should be the URL to the script. Example: "http://www.yourdomain.com/cgi-bin/faq/help.cgi";
- $config_file
This is the location of the FAQ.CONF file on your server. It should be the ABSOLUTE PATH to the file. Example: "/home/username/faq/faq.conf";
- $mtvwebdesignlib
This is the location of the MTVWEBDESIGN.LIB file on your server. It should be the ABSOLUTE PATH to the file. Example: "/home/username/lib/mtvwebdesign.lib";
- $dbunderpath
This is the location of the DBUNDERPATH.LIB file on your server. It should be the ABSOLUTE PATH tot the file. Example: "/home/username/lib/dbUnderPath.lib"; Please note that if you already have a dbUnder system on your server, you don't need a second one. Just locate the dbUnderPath.lib file on your server, and point to that file.
- $dbunder
This is the location of the DBUNDER.LIB file on your server. It should be the ABSOLUTE PATH tot the file. Example: "/home/username/lib/dbUnder.lib"; Again, if you already have a dbUnder.lib file on your server, just point to that file.
TIP: Store your library files in a different directory, so you can use them with other scripts too!
- $passwd
This is the password for the ADMIN script. It's plain text and that is a security risk. You'll be noticed about this the first time you run the admin script. Make sure to change your password using the function on the main page of the admin script.
- $webmasteremail
This is your email address. Please make sure to place a slash in from of the @. Example: "webmaster\@yourdomain.com";
- $servicename
This is the servicename for the service. Think of a nice name...
- $usetoken
Set to 1 if you want to use the tokenfile option. Read more about it here.
- $tokenfile
The name of the file containing the $token. (See the example file tokefile.html)
- $token
This is the commentline which the script will look for in the $tokenfile. Default is <-- TOKEN -->
- $use_flock
Set this option to 1 if your script runs on a UNIX like platform or a Windows NT platform. If you don't know what platform the script will run on, just set it to 1, and if you get errors about "flock", set it to 0.
- @referers
Set this to your domain, if you don't want people from other sites to access your scripts. Example: @referers = ("yourdomain.com","127.0.0.1","196.61.72.118");
- 1;
Don't delete this line....
Uploading the files
First: Be sure to have the read-write-execute permissions on the directory where you want to place your CGI script. Make sure this directory is CHMOD 777. Than create a second directory where you want the databases to be placed. (Specified in the setup.txt file under $db_dir.). Make sure this directory is also CHMOD 777. See the FAQ for more information about CHMOD
UPLOAD IN ASCII FORMAT!
- faq.cgi
Upload this file to the place specified in $script_location. CHMOD the file 755.
- admin.cgi
Upload this file to the place specified in $admin_script. CHMOD the file 755.
- help.cgi
Upload this file to the place specified in $help_script. CHMOD the file 755.
- faq.conf
Upload this file to the place specified in each .cgi file under "require". CHMOD 777.
- mtvwebdesign.lib
Upload this file to the place specified in $mtvwebdesignlib. CHMOD the file 777.
- dbUnderPath.lib
Upload this file to the place specified in $dbunderpath. CHMOD the file 777.
- dbUnder.lib
Upload this file to the place specified in $dbunder. CHMOD the file 777.
TIP: Store your library files in a different directory, so you can use them with other scripts too!
- tokenfile.html
Upload this file to the place specified in $tokefile. CHMOD 644. (Just upload.)
How to use the webmaster function
This is really easy. Just type the URL to the admin script in your Location bar of the browser, and you'll get the login page for the admin script. Enter your password specified under $webmasterpass. Press the submit button. You'll get to the webmaster page.
Because it's not very safe to set a password as plain text in a text file, we created an option on the webmaster main page to change that. You'll see it when you get there. USE IT!
How to place links on your site directely to the page
If you go to the main page of the FAQ script (which shows all the active FAQ pages), you'll see this can be done.
Simply copy the link from that page. It looks like this:
<a href="faq.cgi?faqname=yourfaqpage">Your FAQ Page</a>
Back to top
Demo of the script
Go to http://mtvwebdesign.hypermart.net and check our HTML, Perl or freEcards section, and visit the FAQ pages.
Back to top
Known problems
No problems on my computer and server.
Back to top
FAQ
What is CHMOD?
CHMOD is changing the attributes of a file. (UNIX systems only.). You should do that when you have uploaded the file, or create a new directory. Most FTP clients (like WS_FTP and BulletProofFTP) have the feature, only they call it CHANGE ATTRIBUTES and won't really show number but instead they show READABLE, WRITEBLE and EXECUTABLE. You can find out what you need to do by using this:
BinaryDecimal
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7
r = readable
w = writeble
x = executable
So to set the permission above, "rw-r--r-x", on the file "test.txt," you would figure out the decimal first:
rw- r-- r-x =
110 100 101 =
6 4 5
I get a 501 Internal server error. What should I do?
Well, you have a problem there....
What you should do first is checking if you uploaded the CGI file in ASCII format and not in BINARY format.
If that doesn't work, check if all the permissions (CHMOD) are set right.
If that doesn't work, check the server error log. Ask your webmaster for more information
I cannot use CGI::Carp, how do I disable CGI::Carp?
The CGI::Carp modules may come in very handy when you are a beginner with Perl, since it outputs error messages to the browser instead of to the server error log. Anyway, to stop using the CGI::Carp module, open all the .cgi files, and find this line:
use CGI::Carp qw(fatalsToBrowser);
You need to comment this line, by placing a "#" in front of the line, so it'll look like this:
#use CGI::Carp qw(fatalsToBrowser);
or you can delete the line. The script won't use the module now.
What does "premature end of script headers mean"?
You probably uploaded the file in BINARY format. This should be ASCII format.
If that doesn't work, you should check the things you have changed in the script:
Is there a ";" at the end of lines? Are there any missing quotes (")? Etceteras.
How do I use a tokenfile?
First, take a look in the source of tokenfile.html. This is a page which has a tag in the source, which you cannot see when you view it in the browser. The tag is <!-- TOKEN --> (specified in setup.txt at $token). When you select that you want to use a template, Chat with me! will look for the $tokenfile (tokenfile.html) and that it 'll
search for the $token. If it finds the token (WHICH NEEDS TO BE PLACE ON A SEPARATE LINE IN THE SOURCE OF THE HTML DOCUMENT!), it'll print it's output at that spot in the html document. This way you get your own nice layout for the Chat with me! service!
TIP: Try to use STYLE tags in the $tokenfile!
Back to top
About MTVWebdesign open source.
MTVWebdesign open source means that if you make a change to the script which you think makes the script run even better, we would like you to sent the change to us. This way, we can keep providing better and better scripts. Your help is very important.
We particularly point out our use of the English language. Since English is not our first language, we cannot make sure that there a no misspellings in the code.
If your made a change which you think makes the script run better, please email the change (script) to opensource@mtvwebdesign.hypermart.net
Back to top
Disclaimer
By using this code you agree to indemnify Maarten Veerman and MTVWebdesign from any liability that might arise from its use.
MTVWebdesign is not responsible for improper use of this script.
Copyright © MTVWebdesign 2000. Selling the code is prohibited.
Back to top
Copyright © MTVWebdesign scripts 2000.