Solved

500 internal server error

Posted on 2009-03-31
9
176 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
ID: 24035439
Need to see your code, not the HTML.

0
 
LVL 2

Author Comment

by:RAXMAN
ID: 24035573
scroll down more
0
 
LVL 39

Accepted Solution

by:
Adam314 earned 500 total points
ID: 24036014
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
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 
LVL 2

Author Comment

by:RAXMAN
ID: 24043584
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
ID: 24043621
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
ID: 24043747
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
ID: 24044006
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

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tutorial will discuss fancy secure registration forms, with AJAX technology support. In this article I assume you already know HTML and some JS. I will write the code using WhizBase Server Pages, so you need to know some basics in WBSP (you mig…
In this tutorial I will show you how to make a simple HTML bar chart with the usage of WhizBase, If you want more information about WhizBase please read my previous articles at http://www.experts-exchange.com/ARTH_5123186.html (http://www.experts-ex…
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…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

867 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