Damien wrote:
: ...
: So here are the files, and I home someone can help :)
: ...

It would be a lot more useful if you could get the error message in
your server's error log. Find out where this is and tattoo that
location on the inside of your eyelids. The error log is a CGI
programmer's best friend.

Otherwise, try:

* "perl -cw scriptname" to check for syntax errors

* Are all the files you're writing to in writeable directories?

* I notice that the first line of "sub article" doesn't have a closing
  quote & a semicolon.

-- tdk

: ------------------------------------------ post.cgi 
:------------------------------------------
: 
: #!/usr/bin/perl
: use CGI;
: 
: require "config.pl";
: my $cgi=new CGI;
: $op = $cgi->param('op');
: 
: ################
: # DataGeek-CMS #
: ################
: 
: 
: # - Admin include script for making article.html pages form article.data files -
: 
: if ($op eq "makearicle") {
:  if ($cgi->param('artid')) {
:   article($artid);
:  } else {
:   print $cgi->header();
:   print $cgi->start_html("DataGeekCMS");
:   print "<FORM ACTION=\"$site_url/post.cgi\" METHOD=\"GET\">";
:   print "Enter the id or the article you want too re-generate: <INPUT TYPE=\"TEXT\" 
:NAME=\"artid\"><br>";
:   print "<INPUT TYPE=\"HIDDEN\" NAME=\"op\" VALUE=\"makearticle\"><br>";
:   print "<INPUT TYPE=\"SUBMIT\" NAME=\"re-generate\">";
:   print "</FORM>";
:   print $cgi->end_html();
:  }
: } #Make html article page
: 
: elsif ($op eq "newarticle") {
:  if ($cgi->param('title')) {
:   open BKUPDIR, $art_dir or die "Couldn't open articles directory $art_dir: $!\n";
:   while ($_ = readdir(BKUPDIR)) {
:    my $artid_tmp = $_;
:   }
:   my @articlename =  split /./, $artid_tmp;
:   $artid = $articlename[0];
:   $artid++;
: 
:   my @articlestuff = ("bah", $cgi->param('poster'), $cgi->param('contributor'), 
:$cgi->param('topic'), $cgi->param('link'), $cgi->param('title'), 
:$cgi->param('articletext'), $cgi->param('moretext'));
: 
:   my $articledata = join "::", @articlestuff;
:   open ARTICLEDATA, "> $bkup_dir/$artid.data" or die "Could not open file 
:$bkup_dir/$artid.data: $!\n";
:   print ARTICLEDATA $articledata;
: 
:   article($artid);
:  } else {
:   print $cgi->header();
:   print $cgi->start_html("DataGeekCMS");
:   print "<FORM ACTION=\"$site_url/post.cgi\" METHOD=\"POST\">";
:   print "Title: <INPUT TYPE=\"TEXT\" NAME=\"title\"><br><br>";
:   print "Poster: <INPUT TYPE=\"TEXT\" NAME=\"poster\"><br><br>";
:   print "Contributor: <INPUT TYPE=\"TEXT\" NAME=\"contributor\"><br><br>";
:   print "Topic: <select name=\"topic\">";
:   print "<option value=\"\">Select Topic</option>";
:   open TOPICS, "config/topics.data" or die "Could not open file config/topics.data: 
:$!\n";
:   while (<INCLUDE>) {
:    my @topic = split /::/, $_;
:    print "<option value=\"$topic[0]\">$topic[1]</option>";
:   }
:   print "</select><br><br>";
:   print "Article text:<br><textarea wrap=\"virtual\" cols=\"70\" rows=\"12\" 
:name=\"hometext\"></textarea><br><br>";
:   print "More text:<br><textarea wrap=\"virtual\" cols=\"70\" rows=\"12\" 
:name=\"moretext\"></textarea><br><br>";
:   print "Related Link: <INPUT TYPE=\"TEXT\" NAME=\"link\"><br><br>";
:   print "<INPUT TYPE=\"HIDDEN\" NAME=\"op\" VALUE=\"newarticle\"><br>";
:   print "<INPUT TYPE=\"SUBMIT\" NAME=\"Post article\">";
:   print "</FORM>";
:   print $cgi->end_html();
:  }
: }
: 
: 
: #############
: # Functions #
: #############
: 
: sub getart {
: #Gets articles .data file and returns results in hash %article
:  my $artid = shift;
:  $/ = undef;
:  open ARTICLE, "$bkup_dir/$artid.data" or die "Could not open article data file 
:$bkup_dir/$artid.data: $!\n";
:  my $filedata = <ARTICLE>;
:  print $filedata, "\n";
:  my @data = split /::/, $filedata;
:  my %article=(
:   date     => $data[0],
:   poster   => $data[1],
:   sentby   => $data[2],
:   topic    => $data[3],
:   link     => $data[4],
:   title    => $data[5],
:   maintext => $data[6],
:   moretext => $data[7]
:  );
:  $/ = "\n";
:  return (%article);
: }
: 
: sub printarticle {
: #Layout for article html pages
:   my $artid = shift;
:   my %article = getart($artid);
:  print "<table border=0 cellpadding=0 cellspacing=0 bgcolor=ffffff 
:width=\"100%\"><tr><td>
:  <table border=0 cellpadding=1 cellspacing=1 bgcolor=000000 width=\"100%\"><tr><td>
:  <table border=0 cellpadding=3 cellspacing=0 bgcolor=cfcfbb width=\"100%\"><tr><td 
:align=left>
:  <font size=3 color=\"#363636\"><b>$article{title}</b></font>
:  <font size=2>   $article{date}</font><br><font size=2>";
:  if ($article{sentby}) { 
:   print "Contributed by: $article{sentby}"; 
:  } else {
:   print "Posted my: $article{poster}";
:  }
:  print "</font></td></tr></table></td></tr></table><br>";
:  print "<a href=\"$site_url/search.cgi?type=topic&str=", $article{topic}, "\"><img 
:src=\"images/topics/", $article{topic}, ".gif\" border=\"0\" align=right hspace=10 
:vspace=10></a>";
:  print "$article{maintext}<br>\n";
:  print "$article{moretext}\n";
:  print "</td></tr></table><br>";
: }
: 
: sub printfile {
: #Prints either header or footer
:  $file = shift;
:  $fileuc = uc($file);
:  open $fileuc, "config/$file.data" or die "Could not open file $file.data: $!\n";
:  while (<$fileuc>) {
:   print $_, "\n";
:  }
: }
: 
: sub article {
: #Makes article.html file named after $artid
:  open HTMLFILE, "> $art_dir/$artid.html" or die "Could not write to $artid.html
:  select HTMLFILE;
:  my $artid = shift;
:  printfile("header"); #Print articles html header
:  printarticle($artid); #Print article with chosen style (printarticle)
:  printfile("footer"); #Print articles html footer
:  select STDOUT;
: }
: 
: ------------------------------------------ end post.cgi 
:------------------------------------------
: 
: ------------------------------------------ config.pl 
:------------------------------------------
: 
: #!/usr/bin/perl
: 
: ################
: # DataGeek-CMS #
: ################
: 
: #Global varibles
: 
: $site_name = "DataGeek.org";
: $site_url = "http://www.datageek.org/perlcms";;
: 
: $index_art_num = 20; #number of articles to display on the index page
: $art_dir = "news"; #where all of your sites html articles will go
: $bkup_dir = "backup"; #where all of your sites data files will go
: 
: ------------------------------------------ end config.pl 
:------------------------------------------

Reply via email to