Administrator tool to manage your CSV database online without FTP. Add and edit records in your database, add or remove fields. The advanced version will split records over a number of pages and allow you to and search records. (CGI/Perl Unix)
» Overview of the script
» Set-up the script
» Create your database
» Create your HTML template
» Running the script
Overview
of the script
CSVedit:
Using a link or typing the URL in your browser, the script will
open all your CSV database allowing you to edit and delete
information.
CSVedit Xtra:
Using a link or typing the URL in your browser, enter your
username and password, the script will open all your CSV database
and split the data over many pages, allowing you to search, edit,
delete and add records.
Current versions:
Basic 28/Oct/2006
XTra 17/Aug/2006
Files you will need:
CSVedit script (download from this website)
Database (instructions on this page)
Template (download from this website)
Things you have to do:
Follow the instructions below
Download the CSVedit script and make a few changes
Create a database (or let CSVwrite do it!)
Customise your template
Upload the script
Minimum Requirements:
Your own website with FTP access
Permission to run CGI scripts on your server
UNIX web hosting with Perl 5.006001 or greater
Sendmail or access to SMTP (Xtra Version)
Features | CSVedit | Xtra |
For commercial and private use | YES | YES |
Can be used on as many websites as I build | YES | YES |
No adverts or links in the script | YES | YES |
Instant download | YES | YES |
Edit records in the database | YES | YES |
Delete records in the database | YES | YES |
Manage line breaks into HTML or spaces | YES | YES |
Password protection | - | YES |
Add a new record to the database | YES | YES |
Search all the database or fields in the database | - | YES |
Advanced page selector | - | YES |
Split the results over many pages | - | YES |
Choose the number of results per page | - | YES |
Option to change the delimiter | - | YES |
Option to change the character replacing delimiter | - | YES |
Option to add an ID to a new record | YES | YES |
Option to change the textbox for scrolling textbox | - | YES |
Choose fields that you do not wish to display | - | YES |
Choose fields that you do not wish to edit | - | YES |
Option to allow or block HTML code | - | YES |
Add a new field to the database | YES | YES |
Delete fields from the database | YES | YES |
Customize the look using a template | YES | YES |
Use the same template as CSVread & CSVsearch | YES | YES |
Multiple database editing from the same script | - | YES |
File upload (not possible on all web servers) | - | YES |
File upload optional | - | YES |
Reverse the order in which the records are shown | - | YES |
Filter to block 'bad' words | - | YES |
Use HTML includes in the template | - | YES |
CSVedit
Check your path to perl
#!/usr/bin/perl
Name of this script, or FULL URL (Not Path).
my $prog_name = "csvedit.pl";
Change the PATH of your database.
If it is in the same directory as the script this should be okay
my $base_file = "database.txt";
Change the PATH of your template.
If it is in the same directory as the script this should be okay.
my $template = "edit-template.htm";
Error message if no data found
my $no_match = "Sorry, no results found!";
If you are using scrolling text boxes the script will need to remove any line breaks. This is then replaced with the HTML code for a line break, or you may wish to use a space.
my $line_break = '<br>';
Width of the table data is displayed in
my $table_width = 490;
Size of the text box for editing
my $text_box = 50;
You can add extra field to the database, to disable this feature use '0'
(this feature is not activated in the online demo)
my $add_fields = 1;
You can delete fields from the database, to disable this feature use '0'
(this feature is not activated in the online demo)
my $delete_fields = 1;
Advanced settings Auto ID:
If you would like CSVwrite Xtra to automatically write an ID number for each record then change $ID_autoincrement = 0 to 1
my $ID_autoincrement = 0;
Name the field you would like the script to write the ID number to.
my $ID_autoincrement_name = "ID";
Upload and CHMOD 755, or 777 if not public.
CSVedit Xtra
Check your path to perl
#!/usr/bin/perl
Name of this script, or local URL (Not Path).
my $prog_name = "csvedit.pl";
Change the PATH of your database.
If it is in the same directory as the script this should be okay
my $base_file = 'database.txt';
Change the PATH of your template.
If it is in the same directory as the script this should be okay.
my $template = "edit-template.htm";
Number of records per page
my $records_per_page = 5;
Text for 'previous' button
my $textPrevious = "<<";
Tex for 'next' button
my $textNext = ">>";
Number of pages in the range at any time
my $pageSelectorRange = 10;
Error message if no data found
my $no_match = "Sorry, no results found!";
If you are using scrolling text boxes the script will need to
remove any line breaks. This is then replaced with the HTML code
for a line break, or you may wish to use a space.
my $line_break = '<br>';
Normally you will see the first
record in the database being listed first. If you want to
see the latest database additions listed first, then set this
option to 1.
my $reverse_order = 0;
Advanced settings Multi-Database Mode:
You can use CSVedit Xtra to edit more than one database. To get
this mode working simply change $multyOn = 0; to $multyOn = 1;
my $multyOn = 0;
This is the field name for the drop-down-menu. Use a name
without spaces !
my $DBname = "database";
Next add the path and name to each database, note the last
database has not got the , at the end. You can add as many as you
like.
my %DB = (
"default" => $base_file,
"database2" => "database2.txt",
"database3" => "database3.txt",
"database4" => "database4.txt",
"database5" => "database5.txt",
"database6" => "database6.txt"
);
Advanced settings password protection:
Enter a username and password
or leave blank if you don't want to use this option
my $Username = 'username'; (or: my $Username = '';)
my $Password = 'password'; (or: my $Password = '';)
Advanced settings new records:
If you wish to write the users IP address, Browser information and
the Date to your database when using CSVedit Xtra to write a new
record, you can by changing the '0' to '1'.
The first time CSVwrite is used it will create the database and
add the fields. If you are creating your own database you will
need to add the fields. |REMOTE_ADDR|HTTP_USER_AGENT|DATE
my $REMOTE_ADDR = 0;
my $HTTP_USER_AGENT = 0;
my $DATE = 0;
Advanced settings Auto ID:
If you would like CSVwrite Xtra to automatically write an ID
number for each record then change $ID_autoincrement = 0 to 1
my $ID_autoincrement = 0;
Name the field you would like the script to write the ID number
to.
my $ID_autoincrement_name = "ID";
Advanced settings character separator:
If you wish to use a different delimiter in the database to the
pipe you can change it. However the pipe is the standard for web
database scripts.
my $separator = '|';
If you wish to change the character the script used when a user
inputs data with the delimiter. In this example we change the pipe
for the letter I.
my $change = "I";
Advanced settings general:
You can select fields that you do not wish the script to display
in the edit window, and fields that you wish to show, but not
edit.
Input the field names as below, or leave blank. ();
my @no_show_fields = ("textbox","radiobutton");
my @no_edit_fields = ("textbox","radiobutton");
You can add extra field to the database, to disable this feature
use '0'
(this feature is not activated in the online demo)
my $add_fields = 1;
You can delete fields from the database, to disable this feature
use '0'
(this feature is not activated in the online demo)
my $delete_fields = 1;
To stop users posting HTML set this to 1, or 0 to allow HTML
my $kill_html_tags = 1;
You can select fields to have a large scrolling text box rather
than a standard text box. Input the field names as below, or leave
blank. ();
my @textareas = ("textbox","radiobutton");
The width of the table used to display the information.
my $table_width = 490;
The size of the scrolling text box for editing
my $rows = 4;
my $cols = 40;
Size of the text box for editing
my $text_box = 50;
Advanced Settings file upload
Most web hosting will block this feature for security reasons. Check with your host that you can use file upload from a form before using this feature.
Switch the file upload option off 0 /on 1
my $file_upload = 0;
If set to 1, the file upload fields become optional so they
can be left blank without generating an error.
my $file_upload_optional = 0;
If you make the file upload optional, the script will assume a
default file which you can manually upload to the file directory
via FTP once when installing the script. This would allow
you to use a 1x1 pixels transparant image as default file.
When file uploading is optional and $rename_file is off, uploading
an image with the default name is forbidden.
my $default_file = 'none.jpg';
The fields in your database that will have files to upload
my @file_upload_fields = ("fieldname","fieldname");
If you want the script to re-name the file. Strongly recommended
security feature.
my $rename_file = 1;
The maximum size of file allowed.
my $error_max_size = 100000;
Types of files allowed. Do not allow .exe files on your server,
don't leave this blank.
my @required_file_types = ("txt", "jpg", "jpeg", "tif", "gif");
Errors for wrong file type and files too large
my $error_max_size = "Your file is too big!";
my $error_file_type = "File type is not valid!";
The PATH not URL to the folder to take the files. Your host may
block all or some folders from taking files. Note no final
trailing slash / in the PATH.
my $file_dir =
"/home/path/to/your/file/folder";
The URL not PATH to the folder to take the files. Your host may
block all or some folders from taking files. Note no final
trailing slash / in the URL.
my $fileURL = "http://www.your-url.co.uk/files";
Advanced Settings - Bad Words Filter
If you want to prevent
visitors from using certain words, you should enable this option
by setting it to 1:
my $use_filter = 0;
Then specify the PATH to a file in which you typed the 'forbidden'
words (one at each line):
my $badwordsfile = 'badwords.txt';
If a bad word is found, it will be replaced by:
my $censored = '***';
Advanced Settings Include Pages
It is now possible to use HTML
includes from the template. Once you configured this, the
script will replace each occurence of [[includex]] by the
corresponding HTML page/file.
my $use_includes = 0;
If you want the script to cast an error when one of the templates
could not be loaded, then set this value to 1:
my $error_on_missing = 0;
You can start defining which
includes the script can use:
my %INCL=();
$INCL{'include1'} = "main-menu.htm";
$INCL{'include2'} = "main-menu.htm";
$INCL{'include3'} = "main-menu.htm";
$INCL{'include4'} = "main-menu.htm";
$INCL{'include5'} = "main-menu.htm";
Upload and CHMOD 755, or 777 if not public.
Back to Top
Create
your database
You can create your
database using notepad, but you don't need to!
The first time you
run CSVwrite it will create the database for you, make sure you
put some data in each field when you first run your form.
With the script you will get a sample database, you can edit this
by adding new fields and records using CSVedit.
If you do create your own, don't use any special characters or
spaces in the field names. Keep them short as your browser can
only send a limited number of characters to the database at any
one time. Ensure they match your form fields exactly. The size
limitations of your database are determined by your web hosting
and the server specifications.
Example database:
The first line is the heading and the rest the data. You can have
as many field names as you like in the database.
Your database should be less than
1000 records and under 1MB run smoothly on most shared web
servers. Save your database as a plain text file database.txt
See the FAQ page for excel questions.
IMPORTANT: Please do not use
field names in your database used in the script or template. The
following are used by the scripts and can not be used as field
names name, method, action, page, record, header, random, display,
search, order_by, order, mode & headlines.
Upload and CHMOD 755, or 777 if not public.
Back to Top
Create
your HTML template
This will display the
results in the way you wish to see them. Using any HTML web style
you like. The script will display the HTML code from your template
and display the database in a table for editing inside your
<template> brackets </template>
So, you can use the same template for CSVread CSVsearch and
CSVedit without making any changes. However, should you wish to
use a separate template then one is included in the download with
the script and the code is below.
The table and font is controlled by a <style sheet> at the
top of the HTML code. See the code below and the sample in the
download.
Example code:
The script will read and display the code from your template. You
can not include any SSI (Server side includes) in the template.
This is not possible with CGI Perl scripts.
If you have $use_includes set to
1, you will be able to include tags like [[include1]],
[[include2]] to have the script copy and paste the HTML of the
corresponding file into your template. This system helps you
replace SSI commands.
Back to Top
Running
the script
/cgi-bin/csvedit.pl
Simply type
the URL of your script in any web browser. When using this
administration tool do not use the refresh button on your browser,
after posting data as this will request the browser to post the
data again.
Back to Top