Do you mean addreport never gets called, or is never loaded?  Should be 
loaded as it is in the same file as the eval, it appears you are trying 
to call "addreport" from the input variable of "action" but I don't see 
where that value is ever tested/used?

(you might consider use strict; on a side note)


Soheil Shaghaghi wrote:
> Hi everyone,
> Can anyone please tell me what's wrong with this code?
> When I try to submit the form, it just reloads the page.
> It never gets to the "sub addreport"
> Thanks so much.
> 
> #!/usr/bin/perl
> 
> # Locate and load required files
> eval {
>       # Get the script location (for UNIX and Windows)
>       ($0 =~ m,(.*)/[^/]+,)   && unshift (@INC, "$1");
> 
>       # Get the script location (for Windows)
>       ($0 =~ m,(.*)\\[^\\]+,) && unshift (@INC, "$1");
> 
>       # Load files
>       require "settings.cgi";
>       require "common.sub";
> };
> 
> # Read the form
> &readform;
> 
> &reportit;
> 
> 
> 
> 
> ########################### SUBROUTINES ###########################
> 
> 
> # Display new member registration form
> sub reportit {
> 
>       # Load common vocabulary
>       require "$tmplpath/common.txt";
> 
>       # Load Registration Form template
>       require "$tmplpath/reportit.tmpl";
> 
>       # Smut filter indicator
>       $showsmutswitch = "<a
> href=\"javascript:popup('$scripturl/members.cgi?action=showsmut')\">$commonv
> oc[35]</a>$commonvoc[36]" if $badwords;
> 
> 
>       # Registration Form
>       $FORM_SUB = qq(<SCRIPT LANGUAGE="JavaScript">
> <!-- Hide from non-JavaScript browsers
> function Check_Data() {
>       if (!document.adform.name.value || !document.adform.email.value ||
> !document.adform.title.value ||
>                       !document.adform.description.value) {
>               alert("$commonvoc[30]");
>               return false;
>       } else {
>               return true;
>       }
> }
> function popup(url)
> {
>       newwindow=window.open(url,'name','height=200,width=300,scrollbars');
>       if (window.focus) {newwindow.focus()}
> }
> // Stop hiding --->
> </SCRIPT>
> <div align="center">
>   <h3><font face="$fontname" size="$fontsize"><b>$tempvoc[0]</b></font></h3>
>   <form method="post" action="$scripturl/reportit.cgi" name="adform"
> onSubmit="return Check_Data();">
>     <input type="hidden" name="action" value="addreport">
>     <table width="$tablewidth" border="0" cellspacing="1" cellpadding="3">
>       <tr>
>         <td bgcolor="$headcolor" colspan="2"><font face="$sfontname"
> size="$sfontsize">$tempvoc[1]</font></td>
>       </tr>
>       <tr bgcolor="$primcolor">
>         <td><font face="$fontname"
> size="$fontsize"><b>$commonvoc[66]*</b></font></td>
>         <td>
>           <input type="text" name="name" maxlength="35" size="30">
>         </td>
>       </tr>
>       <tr bgcolor="$seconcolor">
>         <td><font face="$fontname"
> size="$fontsize"><b>$commonvoc[67]*</b></font></td>
>         <td>
>           <input type="text" name="email" maxlength="50" size="30">
>         </td>
>       </tr>
>       <tr bgcolor="$seconcolor">
>         <td><font face="$fontname"
> size="$fontsize"><b>$commonvoc[68]*</b></font></td>
>         <td bgcolor="$seconcolor">
>           <input type="text" name="title" maxlength="100" size="30">
>         </td>
>       </tr>
>       <tr bgcolor="$primcolor">
>         <td><font face="$fontname"
> size="$fontsize"><b>$commonvoc[69]*</b></font></td>
>         <td>
>               <textarea NAME="description" WRAP="virtual" ROWS="6" 
>COLS="40"></textarea>
>         </td>
>       </tr>
>       <tr>
>         <td bgcolor="$headcolor" colspan="2"><font face="$sfontname"
> size="$sfontsize">$commonvoc[21] $showsmutswitch</font></td>
>       </tr>
>     </table>
>     <br>
>     <input type="submit" name="submit" value="$commonvoc[24]">
>     <input type="button" name="cancel" value="$commonvoc[26]"
> onClick="history.back()">
>     <br>
>   </form>
> </div>);
> 
>       # Perform template substitutions
>       $temphtml =~ s/\{FORM\}/$FORM_SUB/g;
> 
>       # Display the screen
>       &showscreen;
> }
> 
> 
> # Add new member to the database
> sub addreport {
> 
>       # Check referring URL
>       &urlcheck;
> 
>       # Check form fields
>       if ($FORM{'name'} !~ /\S/) {
>               push(@badfields, 3);
>       }
> 
>       if ($FORM{'email'} !~ /[\w\-]+\@[\w\-]+\.[\w\-]+/) {
>               push(@badfields, 4);
>       }
> 
>       if ($FORM{'title'} !~ /\S/) {
>               push(@badfields, 6);
>       }
> 
>       if ($FORM{'description'} !~ /\S/) {
>               push(@badfields, 7);
>       }
>       # Display errors, if any
>       &formerror;
> 
>       # Block Checker
>       &blocker($ENV{'REMOTE_ADDR'}, "IP Address",
>                $FORM{'email'}, "E-Mail Address");
> 
>       # Check for bad/rude words
> 
> &smut_detect($FORM{'name'},$FORM{'email'},$FORM{'title'},$FORM{'description'
> });
> 
>       # Strip html tags
> 
> &htmlstrip($FORM{'name'},$FORM{'email'},$FORM{'title'},$FORM{'description'})
> ;
> 
>       # Get current time
>       $curtime = time();
> 
> 
>               # Add member to the waiting list
>               open(RLIST,">>$membpath/reportit.cgi") || err("Could not update
> reportit.cgi: $!");
>               flock(RLIST,2);
>               seek(RLIST,0,2);
>               print RLIST
> "$ENV{'REMOTE_ADDR'}\t$curtime\t$FORM{'name'}\t$FORM{'email'}\t$FORM{'title'
> }\t$FORM{'description'}\n";
>               close(RLIST);
> 
>               # Notify administrator of new application
>               if ($regadmin) {
>                       $msgtext = "$FORM{'name'} has just applied to register with 
>your Top
> Sites script!\n".
> 
> "-----------------------------------------------------------------------\n\n
> ".
>                                  "Note: this message was generated by Top Sites 
>script.\n".
>                                  "You can turn this notification off by adjusting 
>the script
> options.\n";
>                       &sendmail($adminemail, $adminemail, "New Top Sites membership
> application!", $msgtext);
>               }
> 
>               # Send Waiting Approval Message
>               if ($appuseremail) {
>                               $appmsg =~ s/\[name\]/$FORM{'name'}/g;
>                               $appmsg =~ s/\[email\]/$FORM{'email'}/g;
>                               $appmsg =~ s/\[title\]/$FORM{'title'}/g;
>                               &sendmail($adminemail, $FORM{'email'}, $appsubject, 
>$appmsg);
>               }
> 
>               # Show Success Screen
>               &confirm(14,8,"$scripturl/index.cgi");
> 
> }
> 
> 
> 



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to