Solved

500 internal server error

Posted on 2009-03-31
9
175 Views
Last Modified: 2014-06-27
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

0
Comment
Question by:RAXMAN
  • 3
  • 3
9 Comments
 
LVL 48

Expert Comment

by:Tintin
Comment Utility
Need to see your code, not the HTML.

0
 
LVL 2

Author Comment

by:RAXMAN
Comment Utility
scroll down more
0
 
LVL 39

Accepted Solution

by:
Adam314 earned 500 total points
Comment Utility
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
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 2

Author Comment

by:RAXMAN
Comment Utility
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
 
LVL 39

Expert Comment

by:Adam314
Comment Utility
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
 
LVL 2

Author Comment

by:RAXMAN
Comment Utility
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
 
LVL 39

Assisted Solution

by:Adam314
Adam314 earned 500 total points
Comment Utility
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

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

It is becoming increasingly popular to have a front-page slider on a web site. Nearly every TV website,  magazine or online news has one on their site, and even some e-commerce sites have one. Today you can use sliders with Joomla, WordPress or …
This article will show, step by step, how to integrate R code into a R Sweave document
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now