Gossamer Forum
Home : Products : Links 2.0 : Installation -- Unix :

Frustrated - admin.cgi - Download box

(Page 1 of 2)
> >
Quote Reply
Frustrated - admin.cgi - Download box
I have been checking all the threads but still can get this darn thing to work properly. I uploaded everything in ASCII mode and followed the directions closely. My host provider is CI Hosting. They told me to point to /usr/bin/perl5.004.

I get this message when trying to "Open it" (admin.cgi) through the download box:

Error including libraries: (Maybe you didn't strip carriage returns after a network transfer?)

Make sure they exist, permissions are set properly, and paths are set correctly.

Also, I have received various other messages - the db.pl and links.cfg Error including libraries ones.

How frustrating :-( I've been working way too long on this!

Thanks in advance for your help.

Here is my admin.cgi file:

#!/usr/bin/perl5.004
# -------------
# Links
# -------------
# Links Manager
#
# File: admin.cgi
# Description: This is the administrative interface for the links program.
# Author: Alex Krohn
# Email: alex@gossamer-threads.com
# Web: http://www.gossamer-threads.com/
# Version: 2.0
#
# (c) 1998 Gossamer Threads Inc.
#
# This script is not freeware! Please read the README for full details
# on registration and terms of use.
# =====================================================================
#
# Required Librariers
# --------------------------------------------------------
eval {
($0 =~ m,(.*)/[^/]+,) && unshift (@INC, "$1"); # Get the script location: UNIX /
($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1"); # Get the script location: Windows \

require 5.001; # Make sure we have at least perl 5.001.
require "links.cfg"; # Change this to full path to links.cfg if you have problems.
require "$db_lib_path/db.pl"; # Database Routines.
require "$db_lib_path/db_utils.pl"; # Database Support utilities.
require "$db_lib_path/admin_html.pl"; # Admin HTML routines.
};

if ($@) {
print "Content-type: text/plain\n\n";
print "Error including libraries: $@\n";
print "Make sure they exist, permissions are set properly, and paths are set correctly.";
exit;
}

# ========================================================
eval { &main; }; # Trap any fatal errors so the program hopefully
if ($@) { &cgierr("fatal error: $@"); } # never produces that nasty 500 server error page.
exit; # There are only two exit calls in the script, here and in in &cgierr.
# ========================================================

sub main {
# --------------------------------------------------------
$| = 1; # Flush Output Right Away

# Main Menu. Check to see what the user requested, then if he has permission for that
# request, do it. Otherwise send the user off to an unauthorized request page.
%in = &parse_form; # Get form input so we know which database to load.

# Load the database definition file and set the link url.
$in{'db'} ?
require "$db_lib_path/$in{'db'}.def" :
require "$db_lib_path/links.def";

$db_script_link_url = "$db_script_url?db=$in{'db'}";

# The functions beginning with &html_ can be found in admin_html.pl, while the other
# functions can be found in db.pl

if ($in{'add_form'}) { &html_add_form; } # Display the Add Record Form.
elsif ($in{'add_record'}) { &add_record; } # Add the Actual Record.
elsif ($in{'add_record_mult'}) { &add_record_mult; } # Add Multiple Records at once (beta).
elsif ($in{'view_search'}) { &html_view_search; } # Display form to search database.
elsif ($in{'view_records'}) { &view_records; } # Search database and print results.
elsif ($in{'delete_search'}) { &html_delete_search; } # Display the form to search for records to delete.
elsif ($in{'delete_form'}) { &html_delete_form; } # Display the form to pick records to delete.
elsif ($in{'delete_records'}) { &delete_records; } # Delete records.
elsif ($in{'modify_search'}) { &html_modify_search; } # Display the form to search for records to modify.
elsif ($in{'modify_mult_form'}) { &html_modify_mult_form; } # Display multiple records to modify at one time.
elsif ($in{'modify_form'}) { &html_modify_form; } # Display the form to pick record to modify.
elsif ($in{'modify_form_record'}) { &html_modify_form_record; } # Display the form to modify a record.
elsif ($in{'modify_record'}) { &modify_record; } # Modify the record.
elsif ($in{'modify_mult_record'}) { &modify_mult_record; } # Modify multiple records at once.
elsif ($in{'validate_form'}) { &html_validate_form; } # Display the Validation Form.
elsif ($in{'validate_records'}) { &validate_records; } # Validate records.
elsif ($in{'check_links'}) { &check_links; } # Display/Check to make sure links have matching catgories.
elsif ($in{'fix_links'}) { &fix_links; } # Fixes up any errors found in check links.
elsif ($in{'check_duplicates'}) { &check_duplicates; } # Display/Check for duplicate links.
elsif ($in{'html_mail_target'}) { &html_mail_target; } # Form to do targeted mass mailing.
elsif ($in{'html_mail_form'}) { &html_mail_form; } # Form to do mass mailing.
elsif ($in{'html_mail_update'}) { &html_mail_update; } # Form to do email updates.
elsif ($in{'html_edit_template'}) { &html_edit_template; } # Edit Templates
elsif ($in{'save_template'}) { &save_template; } # Save templates.
elsif ($in{'html_template_help'}) { &html_template_help; } # Template Help.
elsif ($in{'display'} eq 'navigation') { &html_navigation; } # Display HTML Header
elsif ($in{'display'} eq 'body') { &html_body; } # Display HTML Body
elsif ($in{'display'} eq 'top') { &html_top; } # Display HTML Top
else { &html_home; } # Display Frame Index page.

# &cgierr("Done"); # Uncomment this line for Debugging... Will tack on form variables and environment variables
# to the end of every page. Quite Useful.
}



Here is my links.cfg file:

# -------------
# Links
# -------------
# Links Manager
#
# File: links.cfg
# Description: Contains all the setup variables.
# Author: Alex Krohn
# Email: alex@gossamer-threads.com
# Web: http://www.gossamer-threads.com/
# Version: 2.0
#
# (c) 1998 Gossamer Threads Inc.
#
# This script is not freeware! Please read the README for full details
# on registration and terms of use.
# =====================================================================

# Paths and URL's to Important Stuff
# --------------------------------------------------------
# PATH and URL of Admin CGI directory. No Trailing Slash.
$db_script_path = "/home/www/ohiobiz/links/cgi-bin/admin";
$db_dir_url = "http://www.ohiobiz.com/links/cgi-bin/admin";

# URL of User CGI directory. No Trailing Slash.
$db_cgi_url = "http://www.ohiobiz.com/links/cgi-bin";

# PATH and URL of Pages to be built. No Trailing Slash.
$build_root_path = "/home/www/ohiobiz/links/pages";
$build_root_url = "http://www.ohiobiz.com/links/pages";

# PATH and URL of What's New page. No Trailing slash.
$build_new_path = "$build_root_path/New";
$build_new_url = "$build_root_url/New";

# PATH and URL of What's Cool page. No Trailing slash.
$build_cool_path = "$build_root_path/Cool";
$build_cool_url = "$build_root_url/Cool";

# PATH and URL of What's Rating page. No Trailing slash.
$build_ratings_path = "$build_root_path/Ratings";
$build_ratings_url = "$build_root_url/Ratings";

# Database Options
# --------------------------------------------------------
# You really need to use flock(). However if your system doesn't support it (Win95),
# then turn this off at your own risk!
$db_use_flock = 1;
# Use Pragma: no-cache to stop browsers from caching output? (0 = cache, 1 = nocache)
$db_nocache = 0;
# Use IIS headers? Set this to 1 if your web server needs the full headers (HTTP/1.0 etc.)
$db_iis = 0;
# Field number of category in category.db
$db_main_category = 1;
# Referers -- which hosts are allowed to add to your database.
@db_referers = ();

# Email Options
# --------------------------------------------------------
# NOTE: Be sure to edit the text of the message. It can be found
# in the templates directory: email-add.txt, email-del.txt and
# email-mod.txt respectively.

# Set only ONE of either $db_mail_path which should go to a
# mail program like sendmail, or $db_smtp_server which will use
# a SMTP server. Do not set both at once!

# PATH of sendmail. # SMTP Server
$db_mail_path = '/usr/sbin/sendmail'; $db_smtp_server = '';

# Email address of the administrator. BE SURE TO SET!
$db_admin_email = 'webmaster@ohiobiz.com';

# Notify visitors automatically when their links are validated?
$db_email_add = 0;

# Notify visitors automatically when their links are modified?
$db_email_modify = 0;

# Log all outgoing messages? Put the full path to a logfile and make sure it
# exists and is writeable (chmod 666 -rw-rw-rw-). This logfile can get pretty
# big!
$db_mailer_log = '';

# Build Options
# --------------------------------------------------------
# Setting for popular cutoff, can either be a percent (i.e. top 3%), or
# a fixed value (i.e. top 10). Enter 0.03 or 10 respectively.
$db_popular_cutoff = 0.03; # Top 3%
# Number of days a link is considered New.
$db_new_cutoff = 14; # 14 days old.
# Return search results bolded (1 = yes, 0 = no).
$search_bold = 1;
# The name of an index file.
$build_index = "index.html";
# The extension to use for non index files:
$build_extension = ".html";

# Should your add.cgi automatically select what category the user
# is adding his link into?
$db_single_category = 1;

# Directory Permissions. Do NOT put quotes around it. Set to 0777
# for world writeable. If you put this at 0755, you might need a
# script to remove any directories created as they will be owned
# by the web server or user nobody. Better solution might be to
# run the nph-build routine from the command shell.
$build_dir_per = 0777;

# The script can now break up category pages that have more then x
# number of links in it. It will also create next and previous links
# to help navigate. Set this to 1 if you want to break up pages or 0 if
# you want to have only one page per category.
# Setting this to one, will also break up the What's New pages into
# per day sections (not affected by number of links per page).
$build_span_pages = 1;

# Number of links per page.
$build_links_per_page = 10;

# Detailed View: The script can build a single html page per link. This is
# great if you have a review in your database. To enable, you must set
# the directory where all the pages will be stored, the url to that directory
# and set the enable option.
$build_detailed = 0;
$build_detail_path = "$build_root_path/Detailed";
$build_detail_url = "$build_root_url/Detailed";

# Use Templates: instead of editing site_html.pl, you can edit regular html pages
# encoded with special <%links_tags%>. It's not as flexible as site_html.pl, but it
# may be easier.
$build_use_templates = 1;

# Site Title, the default title to use. You should really spend some time customizing
# the directory though!
$build_site_title = 'Gossamer Threads Links';

# Date Routines
# --------------------------------------------------------
# Your date format can be whatever you like, as long as the following
# two functions are defined &date_to_unix and &unix_to_date:
# The default is dd-mmm-yyyy.

sub date_to_unix {
# --------------------------------------------------------
# This routine must take your date format and return the time a la UNIX time().
# Some things to be careful about..
# timelocal does not like to be in array context, don't do my($time) = timelocal (..)
# int your values just in case to remove spaces, etc.
# catch the fatal error timelocal will generate if you have a bad date..
# don't forget that the month is indexed from 0!
#
my $date = shift; my $i;
my %months = map { $_ => $i++ } qw!Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec!;
my ($day, $mon, $year) = split(/-/, $date);

exists $months{$mon} or return undef;
$day = int($day); $year = $year - 1900;

require Time::Local;
my $time = 0;
eval {
$time = &Time::Local::timelocal(0,0,0, $day, $months{$mon}, $year);
};
if ($@) { die "invalid date format: $date - parsed as (day: $day, month: $months{$mon}, year: $year). Reason: $@"; }
return $time;
}

sub unix_to_date {
# --------------------------------------------------------
# This routine must take a unix time and return your date format
# A much simpler routine, just make sure your format isn't so complex that
# you can't get it back into unix time.
#
my $time = shift;
my ($sec, $min, $hour, $day, $mon, $year, $dweek, $dyear, $tz) = localtime $time;
my @months = qw!Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec!;
$year = $year + 1900;
return "$day-$months[$mon]-$year";
}

sub long_date {
# --------------------------------------------------------
# This routine is for printing a nicer date format on the what's new page. It should
# take in a date in your current format and return a new one.
my $time = shift;
$time = &date_to_unix ($time);
my ($sec, $min, $hour, $day, $mon, $year, $dweek, $dyear, $tz) = localtime $time;
my @months = qw!January February March April May June July August September October November December!;
my @days = qw!Sunday Monday Tuesday Wednesday Thursday Friday Saturday!;
$year = $year + 1900;
return "$days[$dweek], $months[$mon] $day $year";
}

# -------------------------------------------------------------
# Extra Paths -- unless you feel the need to rename files, you
# can leave this as is.
# -------------------------------------------------------------
$db_script_url = $db_dir_url . "/admin.cgi"; # Admin script.
$db_header_path = $db_script_path . "/header"; # Place to store header and footers.
$db_footer_path = $db_script_path . "/footer";
$build_search_url = $db_cgi_url . "/search.cgi"; # URL of search script.
$build_add_url = $db_cgi_url . "/add.cgi"; # URL of add script.
$build_modify_url = $db_cgi_url . "/modify.cgi"; # URL of modify script.
$build_jump_url = $db_cgi_url . "/jump.cgi"; # URL of jump script.
$build_email_url = $db_cgi_url . "/subscribe.cgi"; # URL of email update script.
$build_rate_url = $db_cgi_url . "/rate.cgi"; # URL of rate script.
$db_mail_url = $db_dir_url . "/nph-email.cgi"; # URL of admin mass mail script.
$build_css_url = $build_root_url . "/links.css"; # URL to your CSS file.

$db_lib_path = $db_script_path; # PATH of library files.
$db_links_name = "$db_script_path/data/links.db"; # PATH to links database.
$db_category_name = "$db_script_path/data/categories.db"; # PATH to category database.
$db_valid_name = "$db_script_path/data/validate.db"; # PATH to validation database.
$db_modified_name = "$db_script_path/data/modified.db"; # PATH to modification database.
$db_url_name = "$db_script_path/data/url.db"; # PATH to URL lookup database.
$db_email_name = "$db_script_path/data/email.db"; # PATH to email database.
$db_links_id_file_name = "$db_script_path/data/linksid.txt"; # PATH to links counter file.
$db_category_id_file_name = "$db_script_path/data/categoryid.txt"; # PATH to category counter file.
$db_hits_path = "$db_script_path/data/hits"; # PATH to hits directory.
$db_template_path = "$db_script_path/templates"; # PATH to templates.
$db_rates_path = "$db_script_path/data/rates"; # PATH to ratings.
1;


Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
In Reply To:
Maybe you didn't strip carriage returns
The only way you can get this message is if you did upload in binary mode. If you are using CuteFTP, then the problem is that you have one of the buggy versions and you need to use something else (like WS_FTP) to transfer you files.

If you rename the existing files to a .txt extension, open them with your browser, and view source, and see all the codes jumbled together with an empty square where a hard return would be, then that confirms the files were indeed uploaded in binary format (...at least on my computer).

Happy Coding,

--Drew
http://www.FindingHim.com
Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
Drew,

Thanks for your response. I converted the .cgi files to .txt and everything seemed OK. I didn't see any carriage returns.

I'm still getting:

Error including libraries: (Maybe you didn't strip carriage returns after a network transfer?)

Make sure they exist, permissions are set properly, and paths are set correctly.

BTW, I used WS_FTP LE to transfer links2.zip (previously residing on an NT server) to the Unix server at CI Hosting.
I did have WS_FTP LE set to ASCII on the transfer.

Mark


Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
That's what the '(...at least on my computer)' disclaimer was for Smile.

I can't think of any other posible solution.

Happy Coding,

--Drew
http://www.FindingHim.com
Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
Use another FTP program.

Regards,

Eliot Lee
Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
I have installed links several times w/o any problem when moving to different host providers. I just moved to CIHOST and keep getting same error all the time as mgeyman:

Error including libraries: (Maybe you didn't strip carriage returns after a network transfer?)


Make sure they exist, permissions are set properly, and paths are set correctly.

I have tried everything to make sure the transfer is in ASCII mode, have also transfered the files from current server to the new one and changed configuration, have changed to full path to links.cfg, etc, but error keeps appearing.

Any idea/help will be greatly appreciated.Crazy



Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
The ONLY way to get this error is by uploading in BINARY or remotely editing the file in BINARY mode.

Paul
Installations:http://wiredon.net/gt/
Support: http://wiredon.net/forum/

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
Do you real mean BINARY?. If I upload links.cfg in ASCII mode I get the previous error, and if I upload it as BINARY mode, then I get:

Error including libraries: (Maybe you didn't strip carriage returns after a network transfer?)

Is there any other reason to get this kind of errors besides transfer mode?


Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
Um yes I REALLY mean BINARY, that's why I said it Smile

What previous error?.....They are both exactly the same error.

I can guarantee that uploading in ASCII isn't causing the error.

Paul
Installations:http://wiredon.net/gt/
Support: http://wiredon.net/forum/

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
Previous error = my previous post. They are the same error but the page is different. With ASCII upload:

CGI ERROR
==========================================
Error Message : fatal error: (Maybe you didn't strip carriage returns after a network transfer?)

Script Location : admin.cgi
Perl Version : 5.00404

Form Variables
-------------------------------------------

Environment Variables
-------------------------------------------
DOCUMENT_ROOT : /www/morelosglobal
GATEWAY_INTERFACE : CGI/1.1
HTTP_ACCEPT : application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
HTTP_ACCEPT_ENCODING: gzip, deflate
HTTP_ACCEPT_LANGUAGE: es-mx
HTTP_CONNECTION : Keep-Alive
HTTP_HOST : www.morelosglobal.com
HTTP_USER_AGENT : Mozilla/4.0 (compatible; MSIE 5.01; Windows 98)
PATH : /usr/local/bin:/usr/bin:/bin
QUERY_STRING :
REMOTE_ADDR : 148.243.101.237
REMOTE_PORT : 21038
REQUEST_METHOD : GET
SCRIPT_FILENAME : /www/morelosglobal/cgi-bin/avisos/protected/admin.cgi
SCRIPT_NAME : /cgi-bin/avisos/protected/admin.cgi
SERVER_ADMIN : webmaster@morelosglobal.com
SERVER_NAME : www.morelosglobal.com
SERVER_PORT : 80
SERVER_PROTOCOL : HTTP/1.1
SERVER_SOFTWARE : Apache/1.3.19 (Unix) PHP/4.0.4pl1 FrontPage/4.0.4.3





With BINARY upload:

Error including libraries: (Maybe you didn't strip carriage returns after a network transfer?)


and nothing else.

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
1st error:

Error Message : fatal error: (Maybe you didn't strip carriage returns after a network transfer?)



2nd error:
Error including libraries: (Maybe you didn't strip carriage returns after a network transfer?)


Although they use slightly different wording, they are still saying the same thing.

How are you uploading them?....Using an ftp client or the command prompt or...????



Paul
Installations:http://wiredon.net/gt/
Support: http://wiredon.net/forum/

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
I have uploaded several ways: using ftp client, using my online site manager (copy-->paste), transfering from old server to new one. Always the same error.

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
.....and you are setting the permissions correctly?

Paul
Installations:http://wiredon.net/gt/
Support: http://wiredon.net/forum/

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
Permissions have been double checked...

I have used your online tool to generate links.cfg and still getting same error.

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
The problem you are having is your cgi editing program. If you edit on a windows computer using notepad or word pad and then upload to a unix/linux computer you can have this problem. Get an editing program that will save in unix format.
Below is the url of a free windows text editor that will save in unix format it is named text tool.

http://www.stoneware.dk/english/default.htm


Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
I edit on my local PC and upload to a linux server and have never experienced this. Are you sure?

Paul
Installations:http://wiredon.net/gt/
Support: http://wiredon.net/forum/

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
I am positive, this used to happen to me on a RAQ server, as soon as I got the text editing program I refered to above and saved in unix mode the problem went away. The save in unix mode strips all the extra hidden charachters that note pad puts in.

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
Well I upload to a RAQ too and have never experienced it Wink

The error is due to carriage returns not newlines. Notepad doesn't insert carriage returns.

Paul
Installations:http://wiredon.net/gt/
Support: http://wiredon.net/forum/

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
I followed bobstennett suggestion, used "save in UNIX-FORMAT" option, but did not worked.
I agree with you Paul, notepad has been enough in the past.

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
I have installed exactly the same files in two different servers without any problem. It seems to me there is a problem in CIHOST server. I do not know if it is a server setup problem, lack of libraries, etc. Any ideas?

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
I hate to disagree with every one else but look at the first post error
Error including libraries: (Maybe you didn't strip carriage returns after a network transfer?)
It was telling you that the cgi program had extra carriage returns in it that had not been stripped out. Download a fresh copy of the cgi-file, open it with text tool save it as a text file (programname.txt)instead of a cgi file, then save it in unix format, upload it to the server directory, then rename it back to cgi (programname.cgi)set permission to 755, this should do the trick.

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
Thanks bobstennett. Followed your advise step by step and did not worked. I am still getting same error.

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
After re-reading your original post.

Error including libraries: (Maybe you didn't strip carriage returns after a network transfer?)

The program indicates, if you look at the sentence that the files that have the carriage returns that are not stripped out are the library files not admin.cgi. You need to use my treatment on the library files refered to.
hope this works for you.


Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
You might want to switch to leetch ftp, I have been using it for quite a while, it will upload images and text files at the same time using differrent threads with it's auto select file type correctly and no errors, and of course it is a free program. It is not being developed anymore but is still available. Also start out with a fresh links 2.0 download to eliminate any possible errors.

Quote Reply
Re: Frustrated - admin.cgi - Download box In reply to
I've used WS_FTP for a couple of years and never had any problems. As long as you select ASCII or BINARY appropriately then there is nothing to be concerned about.

Installations:http://www.wiredon.net/gt/
Favicon:http://www.wiredon.net/favicon/

> >