500 internal server error

I have 2 pieces of code that i need to be debugged and ive ran them both through a debugger, but I get an internal server error everytime. I followed the instructions and searched around and everywhere says that I need to set permissions and put the files in the right folder on the server and I do have all that right, yet I still get this error. Anyone know any ideas why I still get this error? here's my code:

<html>
<head><title>Project 7</title>
<link rel = "stylesheet" type = "text/css" href = "style.css" />
</head>
<body id = "p7">
<center>
   <h3>Enter story here</h3>
 
   <form action = "http://lab.cs.siu.edu/~dnaraine/cgi-bin/story2.cgi" method = "post">
 
   <textarea name = "name" rows="20"  cols="40"></textarea>
 
   <p>
   <input type = "submit" value= "Submit Form"/>
   <input type = "reset" value= "Reset"/>
   </p>
   </form>
   
  
 
 
</center>
</body>
</html>
 
 
 
AND
 
 
 
 
 
 
 
 
#!/usr/local/bin/perl
 
use CGI ":standard";
use Fcntl qw(:DEFAULT :flock);
 
sub error {
    print start_html();
    print "Error - input/output error <br/>";
    print end_html();
    exit(1);
}
 
 
      my($str) = (param("name"));
 
 
 
      $topword = "story.txt";
 
  
      open($topword, "a+") or die("Error - file cannot be opened");
      print($topword, $str);
      close($topword);
 
            
      print("<br /> Your story is about $topWord<br /><br />");

Open in new window

LVL 2
RAXMANAsked:
Who is Participating?
 
Adam314Connect With a Mentor Commented:
You can get the details about the errors from the error log.

In this case, it looks like it's because you aren't printing a HTTP header.  The header needs to be the first thing your program displays.  To print a header, add this line before anything else is printed:
    print header();

Another thing that could cause it is if your perl isn't /usr/local/bin/perl?  You can find out by typing "which perl" at a prompt.

0
 
TintinCommented:
Need to see your code, not the HTML.

0
 
RAXMANAuthor Commented:
scroll down more
0
Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

 
RAXMANAuthor Commented:
Ive tried to make the code more basic. I cant see the error log because I dont own the server. The school does.

My code is actually more complicated than this code im posting, but im trying to get it working period. Ive tried MORE simpler codes by the teacher and his works, but not mine. So I dont get why my code is wrong.
#!/usr/local/bin/perl
 
use CGI ":standard";
use Fcntl qw(:DEFAULT :flock);
 
      my($str) = (param("name"));
 
      print header();
 
      $topword = "story.txt";
 
  
      open($topword, "a+") or die("Error - file cannot be opened");
      print($topword, $str);
      close($topword);
 
            
      print("<br /> Your story is about $topWord<br /><br />");
 
    
  

Open in new window

0
 
Adam314Commented:
If what you posted isn't working, but simpler code does, the problem could be the open statement.  It is likely that the web server user does not have permission to open the file for writing - so your program dies.  If you add this to the top of your script, you'll get a more detailed error message:
    use CGI::Carp 'fatalsToBrowser';
0
 
RAXMANAuthor Commented:
yea you're right it says it cannot open the file in line 16 which is story.txt

how do i fix that? the file permissions are: rwxr-xr-x
0
 
Adam314Connect With a Mentor Commented:
Well, if you want to allow the web server to open it, change it to either:
    If the group is the web server user, and it's not exectuable: 664 (rw-rw-r--)
    If the group is the web server user, and it is exectuable: 775 (rwxrwxr-x)
    If the group is not the web server user, and it's not exectuable: 666 (rw-rw-rw-)
    If the group is not the web server user, and it is exectuable: 777 (rwxrwxrwx)

So, because it looks like a non-executable, and the group is probably not the webserver, use 666.  Note that doing this will allow anyone to modify that file though.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.