FisyX Geschrieben 28. Juli 2003 Teilen Geschrieben 28. Juli 2003 Habe mal ne Frage: ich habe ein Onlinetest CGI-Script das bei mir (Windows 2000 Rechner) Lokal einwandfrei unter dem Webserver WAMP läuft! Nun wollt ichs Online stellen. hab den Pfadt von Perl am anfang in /usr/bin/perl geändert so wied er Provieder gesagt hat und sogar allen Dateien sowie ggf. allen Unterverzeichnissen die Rechte 755 wie vom Provieder gewollt. Doch es geht immer noch nicht! es kommt ein Internal Server Error! Aber es kann doch nicht sein das das Script auf ner Windows Kiste funzt und auf ner Unix Kiste nich ... oder ??? Bitte um Antwort woran es liegen könnte! Ps: Der Provieder hat ein testscript ausprobiert dieses auch tatsächlich funktionierte! :( :( Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jomama Geschrieben 28. Juli 2003 Teilen Geschrieben 28. Juli 2003 Code posten. Die Kristallkugel ist so schwarz heut. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FisyX Geschrieben 28. Juli 2003 Autor Teilen Geschrieben 28. Juli 2003 Ok, das sind 2 CGI Scripte! Einmal das edit (Wo man ein Quiz erstellen kann): #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); # © NueDream Inc. 2000-2002 (www.nuedream.com) ################ USER VARIABLES ################ $editurl = "/home/13/tfcffchd/cgi-bin/edit.cgi"; # Location of this edit page, no trailing slashes(/). $password = "test"; # Password for administration. ############ THESE ARE OPTIONAL CHANGES ########### $file = "questions.db"; # This is the name of your questions file. $quizname = "NueQuiz"; # This is what appears in the TITLE. $spacer = '|'; # Delimeter used in the database. @list = ('a','b','c','d','e','f'); ############## GET INFO FROM WEBPAGE ############# if($ENV{'HTTP_REFERER'} =~ /$editurl/) { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name,$value) = split (/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("c", hex($1))/eg; $value =~ s/\n/ /g; # newlines are now spaces $value =~ s/\r//g; # removes hard returns $value =~ s/\cM//g; # deletes ^M's $FORM{$name} = $value; } ############## MAIN PROGRAM ############ if ($FORM{'action'} eq "") { print "Content-type: text/html\n\n"; print <<EndADMIN <html> <head> <title>:::: NueQuiz Administration Page ::::</title> </head> <!-- © NueDream Inc. 2000-2002 --> <body bgcolor="white"> <font size="1" face="verdana"> <font size="4"><b>Administrative Menu</b></font><br> <hr color="#000000" width="450" align="left" noshade> <b>NOTE: Choose what action you wish to perform and click on the Submit button.</b><br> <hr color="#000000" width="450" align="left" noshade> <form action="$editurl" method="POST"> <input type="radio" name="edit" value="modbeg" checked>Modify Beginner Quiz Questions.<br> <input type="radio" name="edit" value="modnov">Modify Novice Quiz Questions<br> <input type="radio" name="edit" value="modexp">Modify Expert Quiz Questions<br> <br> <input type="radio" name="edit" value="addbeg">Add Beginner Quiz Question<br> <input type="radio" name="edit" value="addnov">Add Novice Quiz Question<br> <input type="radio" name="edit" value="addexp">Add Expert Quiz Question<br> <br> <input name="action" value="Submit" type="submit"> </Form> <hr color="#000000" width="450" align="left" noshade> <b>NueQuiz - © 2000 <a href="http://www.nuedream.com">NueDream Inc.</a></b> </font> </body> </html> EndADMIN } elsif ( $FORM{'action'} eq "check" ) { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/~!/ ~!/g; $FORM{$name} = $value; } if ($FORM{'pass'} eq $password) { print "Location: $editurl\n\n"; } else { dienice("Invalid Password! Please go back and try again!"); } } elsif ( $FORM{'action'} eq "Submit" ) { $edit = $FORM{'edit'}; if ($edit =~ /\w+beg$/) { $quiz = "beginner"; } elsif ($edit =~ /\w+nov$/) { $quiz = "novice"; } elsif ($edit =~ /\w+exp$/) { $quiz = "expert"; } else { dienice("Invalid quiz type go to the <a href=\"$editurl\">Admin Page</a> and try again"); } if ($edit =~ /^mod\w+/) { $type = "modify"; } elsif ($edit =~ /^add\w+/) { $type = "add"; } else { dienice("Invalid action to perform go to the <a href=\"$editurl\">Admin Page</a> and try again"); } open(DATA,$file) or dienice("Couldn't open $file :: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server seek(DATA,0,0); @data = <DATA>; close(DATA); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FisyX Geschrieben 28. Juli 2003 Autor Teilen Geschrieben 28. Juli 2003 ##### GENERAL ADMIN DISPLAY ##### print "Content-type: text/html\n\n"; print "<html><head><title>:::: Quiz Administration Page :::: $ENV{'HTTP_REFERER'}</title></head>\n<body bgcolor=\"white\">"; print "<font size=\"1\" face=\"verdana\">"; print "<font size=\"4\"><b>Administrative Menu</b></font><br>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>You are ".$type."ing a record in the $quiz quiz.</b></font>\n"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; if ($type eq "add") { print "Complete the required(<font color=\"red\">*</font>) information and hit add.<br>"; print "You may leave some of the questions empty if you choose.<br>"; print "To display no reason just use a blank space in the Reason area.<br>"; print "<form action=\"$editurl\" method=\"POST\">"; print "<input type=\"Hidden\" name=\"quiz\" value=\"$quiz\">"; print "<table><tr><td colspan=\"3\"><font size=\"2\" face=\"verdana\"><font color=\"red\">*</font>Question:</font></td></tr>\n"; print "<tr><td colspan=\"3\"><input type=\"text\" name=\"question\" size=\"45\"></td></tr>\n"; print "<tr><td><font size=\"2\" face=\"verdana\"><font color=\"red\">*</font>Answer</font></td><td><font size=\"2\" face=\"verdana\">#</font></td><td><font size=\"2\" face=\"verdana\"><font color=\"red\">*</font>Choices</font></td></tr>\n"; foreach $i (@list) { print "<tr><td><input type=\"radio\" name=\"answer\" value=\"$i\"></td><td><font size=\"2\" face=\"verdana\">$i)</font></td>\n"; print "<td><input type=\"text\" name=\"$i\" size=\"30\"></td></tr>\n"; } print "<tr><td colspan=\"3\"><font size=\"2\" face=\"verdana\"><font color=\"red\">*</font>Reasoning for answer</font></td></tr>\n"; print "<tr><td colspan=\"3\"><textarea cols=\"34\" rows=\"3\" name=\"reason\"></textarea></td></tr>\n"; print "<tr><td colspan=\"3\" align=\"right\"><input type=\"submit\" name=\"action\" value=\"Add\"></td></tr>"; print "</table>\n</form>\n"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>NueQuiz - © 2000 <a href=\"http://www.nuedream.com\">NueDream Inc.</a></b></font>\n"; } elsif ($type eq "modify") {# modifying a database of quizzes print "<table>"; foreach $line (@data) { ($quizin,$num,$question,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\Q$spacer/,$line); if ($quizin eq $quiz) { print "<form action=\"$editurl\" method=\"POST\">"; print "<tr><td><font size=\"2\" face=\"verdana\">$num) $question<input type=\"hidden\" name=\"question\" value=\"$question\"><input type=\"hidden\" name=\"number\" value=\"$num\"><input type=\"hidden\" name=\"quiz\" value=\"$quiz\"></font></td></tr>\n"; print "<tr><td nowrap><input type=\"Submit\" name=\"action\" value=\"Edit\"><input type=\"Submit\" name=\"action\" value=\"Remove\"></form></td></tr>"; } } print "</table>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>NueQuiz - © 2000 <a href=\"http://www.nuedream.com\">NueDream Inc.</a></b></font>\n"; } } elsif ($FORM{'action'} eq "Add") { print "Content-type: text/html\n\n"; #check if input is correct and put it into the database if ($FORM{'reason'} eq "" || $FORM{'answer'} eq "" || $FORM{$FORM{'answer'}} eq "" || $FORM{'question'} eq ""){ print "<br><h1>ERROR :: Information Incomplete</h1><br>Please hit your browser's back button and complete the information"; } else { open(DATA,$file) or dienice("Couldn't open $file :: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server @data = <DATA>; close(DATA); $count = 0; foreach $line (@data) { ($quizin,$num,$question,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\Q$spacer/,$line); if ($quizin eq $FORM{'quiz'}) { if ($count < $num) { $count = $num; } } } $count++; $line = $FORM{'quiz'}.$spacer.($count).$spacer.$FORM{'question'}.$spacer.$FORM{'answer'}.$spacer; foreach $i (@list){ $line .= $FORM{$i}.$spacer; } $line .= $FORM{'reason'}; open(DATA,">>".$file) or dienice("Couldn't open $file :: $!\n"); print DATA $line."\n"; close(DATA); print "<html><head><title>:::: $quizname Administration Page ::::</title></head>\n<body bgcolor=\"white\">"; print "<font size=\"1\" face=\"verdana\">"; print "<font size=\"4\"><b>Administrative Menu</b></font><br>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>You have successfully Added a question in the $FORM{'quiz'} $quizname quiz</b></font><br>\n"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><br>You may now return to the <a href=\"$editurl\">administration page</a>.</font><br><br>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>NueQuiz - © 2000 <a href=\"http://www.nuedream.com\">NueDream Inc.</a></b></font>\n"; } } elsif ($FORM{'action'} eq "Update") {# going to update a specific question print "Content-type: text/html\n\n"; open(DATA,$file) or dienice("Couldn't open $file :: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server seek(DATA,0,0); @data = <DATA>; close(DATA); foreach $line (@data) { chomp($line); ($quizin,$num,$question,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\Q$spacer/,$line); if ($quizin eq $FORM{'quiz'} && $num eq $FORM{'number'}) { $string = $FORM{'quiz'}.$spacer.$FORM{'number'}.$spacer.$FORM{'question'}.$spacer.$FORM{'answer'}.$spacer; foreach $i (@list){ $string .= $FORM{$i}.$spacer; } $string .= $FORM{'reason'}; push (@result, $string); } else { push (@result, $line); } } open(DATA,">".$file) or dienice("Couldn't open $file for overwriting:: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server seek(DATA,0,0); sort @result; foreach $line (@result) { print DATA $line."\n"; } close(DATA); ##### MODIFIED QUESTION DISPLAY ##### print "<html><head><title>:::: $quizname Administration Page ::::</title></head>\n<body bgcolor=\"white\">"; print "<font size=\"1\" face=\"verdana\">"; print "<font size=\"4\"><b>Administrative Menu</b></font><br>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>You have successfully Modified a question in the $FORM{'quiz'} $quizname quiz</b></font><br>\n"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><br>You may now return to the <a href=\"$editurl\">administration page</a>.</font><br><br>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>NueQuiz - © 2000 <a href=\"http://www.nuedream.com\">NueDream Inc.</a></b></font>\n"; } elsif ($FORM{'action'} eq "Edit") {# going to edit a specific question print "Content-type: text/html\n\n"; open(DATA,$file) or dienice("Couldn't open $file :: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server seek(DATA,0,0); @data = <DATA>; close(DATA); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FisyX Geschrieben 28. Juli 2003 Autor Teilen Geschrieben 28. Juli 2003 ##### EDITING QUESTION DISPLAY ##### print "<html><head><title>:::: $quizname Administration Page ::::</title></head>\n<body bgcolor=\"white\">"; print "<font size=\"1\" face=\"verdana\">"; print "<font size=\"4\"><b>Administrative Menu</b></font><br>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>You are Editing a record in the $FORM{'quiz'} quiz.</b></font>\n"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; foreach $line (@data) { ($quizin,$num,$question,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\Q$spacer/,$line); if ($quizin eq $FORM{'quiz'} && $question eq $FORM{'question'} && $num eq $FORM{'number'}) { print "<form action=\"$editurl\" method=\"POST\">"; print "<input type=\"hidden\" name=\"number\" value=\"$FORM{'number'}\">"; print "<input type=\"hidden\" name=\"quiz\" value=\"$FORM{'quiz'}\">"; print "<table><tr><td colspan=\"3\"><font size=\"2\" face=\"verdana\">Question:</font></td></tr>\n"; print "<tr><td colspan=\"3\"><input type=\"text\" name=\"question\" size=\"45\" value=\"$question\"></td></tr>\n"; print "<tr><td><font size=\"2\" face=\"verdana\">Answer</font></td><td><font size=\"2\" face=\"verdana\">#</font></td><td><font size=\"2\" face=\"verdana\">Choices</font></td></tr>\n"; $addon = ($ans eq "a")?" checked":""; print "<tr><td><input type=\"radio\" name=\"answer\" value=\"a\"$addon></td><td>a)</td>\n"; print "<td><input type=\"text\" name=\"a\" size=\"30\" value=\"$a\"></td></tr>\n"; $addon = ($ans eq "b")?" checked":""; print "<tr><td><input type=\"radio\" name=\"answer\" value=\"b\"$addon></td><td></td>\n"; print "<td><input type=\"text\" name=\"b\" size=\"30\" value=\"$b\"></td></tr>\n"; $addon = ($ans eq "c")?" checked":""; print "<tr><td><input type=\"radio\" name=\"answer\" value=\"c\"$addon></td><td>c)</td>\n"; print "<td><input type=\"text\" name=\"c\" size=\"30\" value=\"$c\"></td></tr>\n"; $addon = ($ans eq "d")?" checked":""; print "<tr><td><input type=\"radio\" name=\"answer\" value=\"d\"$addon></td><td>d)</td>\n"; print "<td><input type=\"text\" name=\"d\" size=\"30\" value=\"$d\"></td></tr>\n"; $addon = ($ans eq "e")?" checked":""; print "<tr><td><input type=\"radio\" name=\"answer\" value=\"e\"$addon></td><td>e)</td>\n"; print "<td><input type=\"text\" name=\"e\" size=\"30\" value=\"$e\"></td></tr>\n"; $addon = ($ans eq "f")?" checked":""; print "<tr><td><input type=\"radio\" name=\"answer\" value=\"f\"$addon></td><td>f)</td>\n"; print "<td><input type=\"text\" name=\"f\" size=\"30\" value=\"$f\"></td></tr>\n"; print "<tr><td colspan=\"3\"><font size=\"2\" face=\"verdana\">Reasoning for answer</font></td></tr>\n"; print "<tr><td colspan=\"3\"><textarea cols=\"34\" rows=\"3\" name=\"reason\">$reason</textarea></td></tr>\n"; print "<tr><td colspan=\"3\" align=\"right\"><input type=\"submit\" name=\"action\" value=\"Update\"></td></tr>"; print "</table>\n</form>\n"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>NueQuiz - © 2000 <a href=\"http://www.nuedream.com\'>http://www.nuedream.com\">NueDream Inc.</a></b></font>\n"; last; } } } elsif ($FORM{'action'} eq "Remove") {# going to remove a specific question print "Content-type: text/html\n\n"; open(DATA,$file) or dienice("Couldn't open $file :: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server seek(DATA,0,0); @data = <DATA>; close(DATA); foreach $i ("beginner", "novice", "expert") { $nextnum{$i} = 0; } foreach $line (@data) { chomp($line); ($quizin,$num,$question,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\Q$spacer/,$line); if ($quizin eq $FORM{'quiz'} && $question eq $FORM{'question'} && $num eq $FORM{'number'}) { } else { $nextnum{$quizin}++; $string = $quizin.$spacer; $string .= $nextnum{$quizin}.$spacer.$question.$spacer.$ans.$spacer; $string .= $a.$spacer.$b.$spacer.$c.$spacer.$d.$spacer.$e.$spacer.$f.$spacer; $string .= $reason; push (@result, $string); } } open(DATA,">".$file) or dienice("Couldn't open $file for overwriting:: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server seek(DATA,0,0); sort @result; foreach $line (@result) { print DATA $line."\n"; } close(DATA); ##### REMOVED QUESTION DISPLAY ##### print "<html><head><title>:::: $quizname Administration Page ::::</title></head>\n<body bgcolor=\"white\">"; print "<font size=\"1\" face=\"verdana\">"; print "<font size=\"4\"><b>Administrative Menu</b></font><br>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>You have successfully Removed a question in the $FORM{'quiz'} $quizname quiz</b></font><br>\n"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><br>You may now return to the <a href=\"$editurl\">administration page</a>.</font><br><br>"; print "<hr color=\"#000000\" width=\"450\" align=\"left\" noshade>"; print "<font size=\"1\"><b>NueQuiz - © 2000 <a href=\"http://www.nuedream.com\'>http://www.nuedream.com\">NueDream Inc.</a></b></font>\n"; } else { dienice("You have not used a valid way to access this program go to the <a href=\"$editurl\">Admin Page</a>"); } } else { print "Content-type: text/html\n\n"; print <<Passpage <html> <head> <title>:::: NueQuiz Admin Page :::: www.nuedream.com</title> </head> <!-- © NueDream Inc. 2000-2002 --> <body> <font size="1" face="verdana"> <font size="4"><b>Password Check</b></font> <br> <hr color="#000000" width="450" align="left" noshade> <b>Please input the password to administrate quiz.</b> <hr color="#000000" width="450" align="left" noshade> <form method="post" action="$editurl"> <input type="password" name="pass" size="10" maxlength="8"> <input type="hidden" name="check" value="pass"> <input type="hidden" name="action" value="check"> <input type="submit" value="Validate"> </form> <hr color="#000000" width="450" align="left" noshade> <b>NueQuiz - © 2000 <a href="http://www.nuedream.com">NueDream Inc.</a></b> </font> </body> </html> Passpage } ############## DYING SUBROUTINE ############ sub dienice { my($msg) = @_; print "Content-type: text/html\n\n"; print ("<br><hr><br><h1>FATAL ERROR</h1><hr><br>\n"); print ($msg); exit; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FisyX Geschrieben 28. Juli 2003 Autor Teilen Geschrieben 28. Juli 2003 #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); # © NueDream Inc. 2000-2002 (www.nuedream.com) ############## GLOBAL CONSTANTS ############ $file = "questions.db"; # This is the name of your questions file. $quizname = "NueQuiz"; # This is what appears in the TITLE. $spacer = '|'; # The delimeter used in the database. $result1 = "You need to think a little harder before you answer next time."; # Message Displayed when user gets below 50%. $result2 = "You did pretty good. Some of those questions are harder than they look."; # Message Displayed when user gets between 51%-80%. $result3 = "Wow! You did excellent, looks like you know your stuff."; # Message Displayed when user get above 80%. $cheater = "Cheating won't get you anywhere in life."; # Message Displayed when user cheated. $fontface = "verdana, tahoma, arial"; # Font Type. $anticheat = 1; # Enables or disables the anti-cheating feature # (1-Enabled, 0-Disabled). ############## PROGRAM START ############ @pairs = split(/&/, $ENV{'QUERY_STRING'} ); foreach $pair (@pairs) { ($name,$value) = split (/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("c", hex($1))/eg; $value =~ s/\n/ /g; $value =~ s/\r//g; $value =~ s/\cM//g; $GET{$name} = $value; } $cookie = $ENV{'HTTP_COOKIE'}; (@cookies) = split(/;/, $cookie); $content = $ENV{'QUERY_STRING'}; ($type, $question) = split(/=/, $content); if($question eq "") { $question = 1; } $current = $question-1; $correct = 0; if($GET{'action'} eq "") { print "Content-type: text/html\n\n"; print "<html>\n<head>\n<title>$quizname</title>\n</head>\n\n<body bgcolor=\"white\">\n"; print "\n<!-- NueQuiz. © NueDream Inc. 2000-2002. (www.nuedream.com) -->\n\n"; print "<center>\n<table width=\"450\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n<tr>\n<td>\n"; print "<font face=\"$fontface\" size=\"2\">\n"; open(DATA,$file) or dienice("Couldn't open $file :: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server seek(DATA,0,0); @data = <DATA>; close(DATA); # Calculating total number of questions. $total = 0; foreach $line (@data) { ($quiz,$num,$q,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\|/,$line); if ($quiz eq $type) { $total++; } } $total++; # Printing Quiz results. if ($question == $total) { print "<br><b>QUIZ Results:</b><br><hr width=\"450\" align=\"left\" color=\"black\" NOSHADE><br>"; print "<font size=\"1\">"; foreach $part (@cookies) { if ($part =~ /$type/) { ($name, $value) = split(/=/,$part); (@answers) = split(/-/,$value); foreach $a (@answers) { ($questionc, $answerc) = split(/_/,$a); foreach $line (@data) { chomp($line); ($quiz,$num,$q,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\|/,$line); ##################################################################### if ($quiz eq $type && $questionc eq $num) { if(substr($answerc,0,1) eq $ans) { $tempa = substr($answerc,0,1); $tempb = substr($answerc,1,1); print "<b>$questionc.</b> $q<br>You Answered: <b>$tempa</b>. <font color=\"#33cc00\"><b>CORRECT!</b></font><ol>$reason</ol>"; $correct++; } else { $tempa = substr($answerc,0,1); $tempb = substr($answerc,1,1); print "<b>$questionc.</b> $q<br>You Answered: <b>$tempa</b>. <font color=\"red\"><b>INCORRECT!</b></font><br>Correct Answer: <b>$tempb</b>.<ol>$reason</ol>"; } } } } } } print "</font>"; print "<br><hr width=\"450\" align=\"left\" color=\"black\" NOSHADE>"; $percent = ($correct/$current)*100; printf ("<b>$correct</b> / <b>$current</b> = <b> %4.1f", $percent, "%</b><br><br>"); print "%</b><br><br>"; if ( ($correct/$total) < 0.5) { print "$result1"; } elsif (($correct/$total) < 0.8) { print "$result2"; } elsif (($correct/$total) <= 1.0) { print "$result3"; } else { print "$cheater"; } } else { foreach $line (@data) { chomp($line); ($quiz,$num,$q,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\|/,$line); if ($quiz eq $type && $question eq $num) { print "<form action=\"quiz.cgi?$type=$question&action=check\" method=\"GET\">\n"; print "<br><b>$question. $q</b><br>"; if ($a ne "") { print "<input type=\"radio\" name=\"$num\" value=\"a\" checked>A. $a<br>\n"; } if ($b ne "") { print "<input type=\"radio\" name=\"$num\" value=\"b\">B. $b<br>\n"; } if ($c ne "") { print "<input type=\"radio\" name=\"$num\" value=\"c\">C. $c<br>\n"; } if ($d ne "") { print "<input type=\"radio\" name=\"$num\" value=\"d\">D. $d<br>\n"; } if ($e ne "") { print "<input type=\"radio\" name=\"$num\" value=\"e\">E. $e<br>\n"; } if ($f ne "") { print "<input type=\"radio\" name=\"$num\" value=\"f\">F. $f<br>\n"; } print "<br><input type=\"hidden\" name=\"$type\" value=\"$num\">\n"; print "<br><input type=\"hidden\" name=\"action\" value=\"check\">\n"; print "<input type=\"submit\" value=\"Continue »\">\n</form>\n"; } } } print "</font>\n</td>\n</tr>\n</table>\n</center>\n</body>\n</html>"; } elsif ($GET{'action'} eq "check") { $content = $ENV{'QUERY_STRING'}; ($temp, $temp2, $temp3) = split(/&/, $content); ($question, $answer) = split(/=/, $temp); ($type, $question) = split(/=/, $temp2); ($temp4, $act) = split(/=/,$temp3); $start = $question+1; $url = "quiz.cgi?$type=$start"; $tempv = ""; (@cookies) = split(/;/, $ENV{'HTTP_COOKIE'}); foreach $crum (@cookies) { ($name, $value) = split(/=/, $crum); if($name =~ /$type/) { $tempv = $value; last; } } open(DATA,$file) or dienice("Couldn't open $file :: $!\n"); #flock(DATA,0); # uncomment this line if using unix based server seek(DATA,0,0); @data = <DATA>; close(DATA); foreach $line (@data) { chomp($line); ($quiz,$num,$q,$ans,$a,$b,$c,$d,$e,$f,$reason) = split(/\|/,$line); if ($quiz eq $type && $question eq $num) { if($tempv ne "") { if ($tempv =~ /$question/) { if($anticheat == 1) { print "Content-type: text/html\n\n"; print "<br><br><center><font face=\"verdana\" size=\"2\"><b>$cheater</b><br><br>If you did not try to cheat, try again. This time do not double click the next button.<br> Click once and wait until the next question is fully displayed before clicking again.</font></center>"; } else { print "Location: $url\n\n"; } } else { $tempcookie = "$tempv" . "-" . $question . "_" . $answer . $ans; print "Set-cookie: $type=$tempcookie\n"; print "Location: $url\n\n"; } } else { $tempcookie = $question . "_" . $answer . $ans; print "Set-cookie: $type=$tempcookie\n"; print "Location: $url\n\n"; } } } } ############# DYING SUBROUTINE ############ sub dienice { my($msg) = @_; print ("<br><hr><br><h1>FATAL ERROR</h1><hr><br>\n"); print ($msg); exit; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sebbel Geschrieben 28. Juli 2003 Teilen Geschrieben 28. Juli 2003 hast du die files im ascii mode hochgeladen? wenn nicht kann es mit ein grund für diese fehlermeldung sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
raiser Geschrieben 28. Juli 2003 Teilen Geschrieben 28. Juli 2003 ja, habs via internet explorer hochgeladen. Soll ichs mal mit FTP progg versuchen??? Wieso kann das eigentlich damit zusammenhängen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FF Geschrieben 28. Juli 2003 Teilen Geschrieben 28. Juli 2003 teste mal ein ganz einfaches Script mit #!/usr/bin/perl print "irgendwas"; Mein Provider ist irgenwie komisch! Die führen aus Sicherheitsgründen keine Scripts mit den Rechten 777 aus und am anfang des Perlscripts muss folgendes stehen: #!/usr/bin/perl -w Ohne -w geht das Script nciht Durfte desshalb das halbe Script umprogrammieren (Bin immernoch dran), weil das Script jetzt Bedienungen wie if($Data eq "") nicht mehr erlaubt! Und noch einiges mehr. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FisyX Geschrieben 29. Juli 2003 Autor Teilen Geschrieben 29. Juli 2003 Also das mit dem nicht im ASK. Mode Hochladen hat nicht geklappt. immer noch Server Fehler! Das mit dem -w hintendran bin ich gestern durch zufall auch drauf gestoßen funktioniert aber auch nicht. Was natürlich sein kann, das man das script nun ebenfalls umschreiben müsste Ich hab ne CGI Test Page draufgeladen und die ging werde aber mal das -w vornedrann wegnehmen und dann schauen obs geht! Ach ja.... hat ned jemand nen funktionierendes modul zum online test erstellen? Kann GGI oder PHP oder von mir aus auch Java Script sein... Währe nett! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FisyX Geschrieben 29. Juli 2003 Autor Teilen Geschrieben 29. Juli 2003 hab nen paar neue scripte gefunden... allerdings auch in cgi..... hoffe die gehen nun !!! hm.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
alligator Geschrieben 29. Juli 2003 Teilen Geschrieben 29. Juli 2003 Servus, wenn trotz use CGI::Carp qw(fatalsToBrowser); keine Fehler-Ausgabe auf dem Browser erfolgt ist es sehr schlecht zu raten, da muss der Error.log des Webservers her. Was sagt denn der ? cya alligator Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FF Geschrieben 29. Juli 2003 Teilen Geschrieben 29. Juli 2003 onlinetestscript?? Das billigste ist in HTML geschrieben (man glaub es kaum ): Machst eine Tabelle mit einer Zeile und einer Spalte. Als Hintergrund in der Tabelle ein Bild und in der Tabelle ein normales Bild! Das Hintergrundbild zeigt z.B. ein Offlinebild. Wird der Server gefunden, wird das Onlinebild von dem Server runtergeladen und angezeigt (das offline wird überdeckt). Voraussetzung: Es sind deine Server, das heisst du musst auf dem zu testenden Server dieses onlinebild hochladen. Wenn du nicht hochladen kannst, musst dus wohl mit cgi/perl machen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Art Geschrieben 30. Juli 2003 Teilen Geschrieben 30. Juli 2003 ich glaube er meinte sowas wie multiple chioce tests, soweit ich es verstanden habe, kaum zu glauben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FisyX Geschrieben 30. Juli 2003 Autor Teilen Geschrieben 30. Juli 2003 Ja genau, diese art von tests.... am besten noch mit einer punktezahl am ände diese zusammengerechnet wurde. Nu ja, der Supporter mit dem ich sprach war ratlos und meinte, soweit würde alles gehen allerdings könnte er mir jetzt nict das script debuggen. Ich weiß ned, aber von der website von der ich des habe, gibts auch nen demo script und des läuft einwandfrei wie bei mir aufm lokalen webserver! Ich denke, es liegt wirklich an dieser ******e von schreib leseberechtigung das die aus sicherheitsgründen nur so und so lauten darf :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jomama Geschrieben 30. Juli 2003 Teilen Geschrieben 30. Juli 2003 Ich hab da so einen Test auf meiner Page http://www.planet-trash.de unter der Rubrik Special/Meinungstest. Geht über mehrere Seiten und am Ende wird die Punktzahl zusammengerechnet. Kucks dir mal an, ob es das ist, was du brauchst. Ist aber in PHP. Ich schick dir dann die Dateien zu, du musst sie halt nur anpassen und die Globalen Variablen ersetzen(War noch in meiner Anfangszeit). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FisyX Geschrieben 30. Juli 2003 Autor Teilen Geschrieben 30. Juli 2003 Jo des isses.... genau sowas stell ich mir vor! wenn du´den mir schicken kannst dan send ihn an minestrator@surfeu.de THX :uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 3. August 2003 Teilen Geschrieben 3. August 2003 Kannst du mal die Dateiattribute posten? Mir ist schon passiert, dass die Datei nicht ausführbar war. Wenn du nämlich mit cgi arbeitest, arbeitest du normalerweise mit ausführbaren Programmen. Probier doch mal deine Dateien als Perl-Skript auszuführen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.