Web Analytics Made Easy -
StatCounter Can anyone configure a cgi file for my html form? - CodingForum

Announcement

Collapse
No announcement yet.

Can anyone configure a cgi file for my html form?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Can anyone configure a cgi file for my html form?

    Ok, I'm sick of trying to understand why my form isn't working. Would anyone be able to take a look at my html form fix it until both the cgi and html are working? Maybe test it on your server? I really don't have a clue what I'm doing but if someone out there knows their stuff it'd be a great help! I just need a html form that looks like that, which sends me an email through the server rather than Outlook or whatever..

    I have a paid geocities account that accepts php, perl, cgi and all that, so at the moment I don't think it's anything to do with that.

    Help would be amazing

    bnbform.pl

    Code:
    #!/usr/bin/perl
    
    
    #required:    comma delimited list of required entry fields
    #data_order:  comma delimited list indicating what fields to actually
    #             print and in what order.
    #outputfile:  the name of the file to save the data in if using a file.
    #             the file will automatically be named ending with .bout
    #emailfile:   the name of the file to hold only the sender e-mail address
    #             the file will automatically be named ending with .bemf
    #ok_url:      URL to go to if successful
    #not_ok_url   URL to go to if unsuccessful
    #submit_to:   email address of person to input receive data by mail
    #             this can be a comma seperated list of e-mail addresses
    #cc_to:       email address of Cc Recipient
    #             this can be a comma seperated list of e-mail addresses
    #submit_by:   email address of person completing form
    #autorespond: NO LONGER USED AS OF JAN 31, 2000
    #automessage: text to print for autoconfirmation e-mail
    #             the file will automatically be named ending with .baut
    #form_id:     name of form for e-mail subject
    #countfile:   name of file for serial number counter
    #             the file will automatically be named ending with .bcnt
    #okaydomains: prevents calling the script from other sites,
    #             without restricting e-mail addresses.
    #             replaces $SECURE_NAME from earlier versions.
    #             use only lower case letters.
    #SMTP_SERVER: the full host name of the server providing e-mail
    #             gateway service
    ##################################################################
    
    
    ## MAIN ##########################################################
    
    # uncomment the line below, and change bignosebird to your domain
    # name if you wish to make is so the script can only be called
    # from your site.
    
    @okaydomains=("http://p10.hostingprod.com/@gothamcityheartattack.com/");     
    
    #SMTP_SERVER: indicates the name of the host acting as the e-mail
    #             gateway. "localhost" should work on most systems.
    
    $SMTP_SERVER="localhost";
    
    #OR IF SMTP IS UNAVAILABLE TO YOU, USE SEND_MAIL-
    # BUT NOT BOTH!
    
    #$SEND_MAIL="/usr/lib/sendmail -t";
    
    $lockfile="/tmp/bnbform.lck";
    
       $SD=&sys_date;
       $ST=&sys_time;
    
       &decode_vars;
    
       &valid_page;
    
       if ($fields{'countfile'} ne "") { &get_number; }
    
       &valid_data;
    
       &write_data;
    
       if ($fields{'automessage'} ne "") { &answer_back; }
    
       if ($fields{'ok_url'} ne ""){
         print "Location: $fields{'ok_url'}\n\n"; exit;
       }
         else { &thank_you; }
    
    ##################################################################
    sub write_data
    {
    
       if ($fields{'submit_by'} ne "") {
           if (&valid_address == 0) {
              &bad_email;
              exit;
           }
       }
       
       if ($fields{'submit_by'} ne "" && $fields{'emailfile'} ne "") {
          open (EMF,">>$fields{'emailfile'}");
          print EMF "$fields{'submit_by'}\n";
          close (EMF);
       }
    
       if ($fields{'submit_to'} ne "") {
         $msgtext="";
         $msgtext .= "On $SD at $ST,\n";
         $msgtext .=  "The following information was submitted:\n";
         $msgtext .=  "From Host: $ENV{'REMOTE_ADDR'}\n";
       }
    
       if ($fields{'outputfile'} ne "") { 
          &get_the_lock; 
          open(OUT_FILE,">>$fields{'outputfile'}"); 
       }
    
       foreach $to_print (@sortlist) {
          if ($fields{'outputfile'} ne "")
           { print OUT_FILE "$fields{$to_print}\|"; }
          if ($fields{'submit_to'} ne "")
           { $msgtext .= "$to_print = $fields{$to_print}\n"; }
       }
       if ($fields{'outputfile'} ne "") {
         print OUT_FILE "$SD\|$ST\|\n";
         close(OUT_FILE);
         &drop_the_lock;
       }
    
       foreach $to_get (@recipients) {
          $mailresult=&sendmail($fields{submit_by}, $fields{submit_by}, $to_get, $SMTP_SERVER, $fields{form_id}, $msgtext);
          if ($mailresult ne "1") {
           print "Content-type: text/html\n\n";
           print "MAIL NOT SENT. SMTP ERROR: $mailcodes{'$mailresult'}\n";
           exit
          }
        }
       foreach $to_cc (@cc_tos) {
          $mailresult=&sendmail($fields{submit_by}, $fields{submit_by}, $to_cc, $SMTP_SERVER, $fields{form_id}, $msgtext);
          if ($mailresult ne "1") {
           print "Content-type: text/html\n\n";
           print "MAIL NOT SENT. SMTP ERROR: $mailcodes{'$mailresult'}\n";
           exit
          }
        }
    
    }
    
    ##################################################################
    sub decode_vars
     {
      $i=0;
      read(STDIN,$temp,$ENV{'CONTENT_LENGTH'});
      @pairs=split(/&/,$temp);
      foreach $item(@pairs) {
        ($key,$content)=split(/=/,$item,2);
        $content=~tr/+/ /;
        $content=~s/%(..)/pack("c",hex($1))/ge;
        $content=~s/\t/ /g;
        $content=~s/\0//g; #strip nulls
        $fields{$key}=$content;
        if ($key eq "data_order") {
           $content=~s/\012//g;
           $content=~s/\015//g;
           $content=~s/ //g;
           $content=~s/ //g;
           @sortlist=split(/,/,$content);
        }
        if ($key eq "required") {
           $content=~s/\012//g;
           $content=~s/\015//g;
           $content=~s/ //g;
           @mandatory=split(/,/,$content);
        }
        if ($key eq "submit_to") {
           $content=~s/\012//g;
           $content=~s/\015//g;
           $content=~s/ //g;
           @recipients=split(/,/,$content);
        }
        if ($key eq "cc_to") {
           $content=~s/\012//g;
           $content=~s/\015//g;
           $content=~s/ //g;
           @cc_tos=split(/,/,$content);
        }
    
       }
        if  (
         ( ($fields{automessage}=~ /^([-\/\w.]+)$/ || $fields{automessage} eq "") &&
          ($fields{countfile}=~ /^([-\/\w.]+)$/ || $fields{countfile} eq "") &&
          ($fields{emailfile}=~ /^([-\/\w.]+)$/ || $fields{emailfile} eq "") &&
          ($fields{outputfile}=~ /^([-\/\w.]+)$/ || $fields{outputfile} eq "") )
        ) {$donothing=0;}
        else {
           print "Content-type: text/html\n\n sorry, invalid characters...\n";
           exit;
        }
       if ($fields{automessage} ne "") {$fields{automessage} .= ".baut";}
       if ($fields{countfile} ne "") {$fields{countfile} .= ".bcnt";}
       if ($fields{emailfile} ne "") {$fields{emailfile} .= ".bemf";}
       if ($fields{outputfile} ne "") {$fields{outputfile} .= ".bout";}
    }
    
    ##################################################################
    sub valid_data
      {
       if ($fields{'data_order'} eq "")    #make sure we have work to do!
        {
          print "Content-type: text/html\n\n"; 
          print <<__W1__;
    
          <H1>NO data_order list SPECIFIED!</H1>
    
    __W1__
          exit;
        }
    
       foreach $to_check (@mandatory) #test all required fields, bail on 1st bad
        {                             
          if ($fields{$to_check} eq "") {
              if ($fields{'not_ok_url'} ne "") { 
                  print "Location: $fields{'not_ok_url'}\n\n";
                  exit;
              }
                 else { &try_again; }
          }
       }
    
      }
    
    ##################################################################
    sub thank_you
      {
     print "Content-type: text/html\n\n"; 
     print <<__W2__;
       <BODY BGCOLOR="#FFFFFF">
       <CENTER>
       <TABLE WIDTH=550 BORDER=1>
        <TR>
         <TD>
          <H1>Thank you!</H1>
          Your information has been sent and I will be in touch
          with you as soon as I can
          <P>
          Here is the information you provided:
          <P>
    __W2__
    
      foreach $itm (@sortlist) {
       print <<__W2A__;
       $itm: $fields{$itm}
       <BR>
    __W2A__
      }
    
     print <<__W2B__;
      </TD>
      </TR>
     </TABLE>
    
    __W2B__
    
          exit;
      }
    
    ##################################################################
    sub try_again
      {
          print "Content-type: text/html\n\n"; 
          print <<__W3__;
    
          <H1>Missing Data!</H1>
          <B>Please press the back button and fill in
          all required fields!<P></B>
    
    __W3__
          exit;
      }
    
    ##################################################################
    sub answer_back
     {
    
       $subject = "Thank you";
       $msgtext="";
      if ($fields{'automessage'} ne "") {
        open (AM,"< $fields{'automessage'}");
        while (<AM>) {
          chop $_;
          $msgtext .= "$_\n";
        } 
        close(AM);
      }
        else {
          $msgtext =<<__W4__;
    
    Thank you for your submission. I will be
    getting in touch with you soon.
    
    __W4__
        }
      $replyaddr=$recipients[0];
      $mailresult=&sendmail($replyaddr, $replyaddr, $fields{submit_by}, $SMTP_SERVER, $subject, $msgtext);
     }
    
    ##################################################################
    
    sub get_number
     {
       $newnum=0;
       open(COUNTER,"<$fields{'countfile'}");
       while($thisnum=<COUNTER>) {
          if ($thisnum eq "") { $thisnum = 0;}
          $newnum = $thisnum + 1;
       }
       close(COUNTER);
       open(COUNTER,">$fields{'countfile'}");
       print COUNTER "$newnum";
       close (COUNTER);
       $fields{'counter'}=$newnum
     }
    
    ##################################################################
    sub valid_address 
     {
      $testmail = $fields{'submit_by'};
      if ($testmail =~/ /)
       { return 0; }
      if ($testmail =~ /(@.*@)|(\.\.)|(@\.)|(\[email protected])|(^\.)/ ||
      $testmail !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/)
       { return 0; }
       else { return 1; }
    }
    
    ##################################################################
    sub bad_email
    {
    print <<__STOP_OF_BADMAIL__;
    Content-type: text/html
    
    <FONT SIZE="+1">
    <B>
    SORRY! Your request could not be processed because of an
    improperly formatted e-mail address. Please use your browser's 
    back button to return to the form entry page.
    </B>
    </FONT>
    __STOP_OF_BADMAIL__
    }
    
    sub get_the_lock
    {
      local ($endtime);                                   
      $endtime = 60;                                      
      $endtime = time + $endtime;                         
      while (-e $lockfile && time < $endtime) 
       {
        # Do Nothing                                    
       }                                                   
       open(LOCK_FILE, ">$lockfile");                     
    }
    
    sub drop_the_lock
    {
      close($lockfile);
      unlink($lockfile);
    }
    
    
    ##################################################################
    sub valid_page
     {
      if (@okaydomains == 0)
         {return;}
      $DOMAIN_OK=0;
      $RF=$ENV{'HTTP_REFERER'};
      $RF=~tr/A-Z/a-z/;
      foreach $ts (@okaydomains) {
         if ($RF =~ /$ts/)
          { $DOMAIN_OK=1; }
      }
      if ( $DOMAIN_OK == 0) {
          print "Content-type: text/html\n\n Sorry....Cant run from here!";    
          exit;
      }
     }
    
    
    ###################################################################
    ###################################################################
    sub sendmail  {
    
    # error codes below for those who bother to check result codes <gr>
    
    # 1 success
    # -1 $smtphost unknown
    # -2 socket() failed
    # -3 connect() failed
    # -4 service not available
    # -5 unspecified communication error
    # -6 local user $to unknown on host $smtp
    # -7 transmission of message failed
    # -8 argument $to empty
    #
    #  Sample call:
    #
    # &sendmail($from, $reply, $to, $smtp, $subject, $message );
    #
    #  Note that there are several commands for cleaning up possible bad inputs - if you
    #  are hard coding things from a library file, so of those are unnecesssary
    #
    
        my ($fromaddr, $replyaddr, $to, $smtp, $subject, $message) = @_;
    
        $to =~ s/[ \t]+/, /g; # pack spaces and add comma
        $fromaddr =~ s/.*<([^\s]*?)>/$1/; # get from email address
        $replyaddr =~ s/.*<([^\s]*?)>/$1/; # get reply email address
        $replyaddr =~ s/^([^\s]+).*/$1/; # use first address
        $message =~ s/^\./\.\./gm; # handle . as first character
        $message =~ s/\r\n/\n/g; # handle line ending
        $message =~ s/\n/\r\n/g;
        $smtp =~ s/^\s+//g; # remove spaces around $smtp
        $smtp =~ s/\s+$//g;
    
        if (!$to)
        {
    	return(-8);
        }
    
     if ($SMTP_SERVER ne "")
      {
        my($proto) = (getprotobyname('tcp'))[2];
        my($port) = (getservbyname('smtp', 'tcp'))[2];
    
        my($smtpaddr) = ($smtp =~
    		     /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/)
    	? pack('C4',$1,$2,$3,$4)
    	    : (gethostbyname($smtp))[4];
    
        if (!defined($smtpaddr))
        {
    	return(-1);
        }
    
        if (!socket(MAIL, AF_INET, SOCK_STREAM, $proto))
        {
    	return(-2);
        }
    
        if (!connect(MAIL, pack('Sna4x8', AF_INET, $port, $smtpaddr)))
        {
    	return(-3);
        }
    
        my($oldfh) = select(MAIL);
        $| = 1;
        select($oldfh);
    
        $_ = <MAIL>;
        if (/^[45]/)
        {
    	close(MAIL);
    	return(-4);
        }
    
        print MAIL "helo $SMTP_SERVER\r\n";
        $_ = <MAIL>;
        if (/^[45]/)
        {
    	close(MAIL);
    	return(-5);
        }
    
        print MAIL "mail from: <$fromaddr>\r\n";
        $_ = <MAIL>;
        if (/^[45]/)
        {
    	close(MAIL);
    	return(-5);
        }
    
        foreach (split(/, /, $to))
        {
    	print MAIL "rcpt to: <$_>\r\n";
    	$_ = <MAIL>;
    	if (/^[45]/)
    	{
    	    close(MAIL);
    	    return(-6);
    	}
        }
    
        print MAIL "data\r\n";
        $_ = <MAIL>;
        if (/^[45]/)
        {
    	close MAIL;
    	return(-5);
        }
    
       }
    
      if ($SEND_MAIL ne "")
       {
         open (MAIL,"| $SEND_MAIL");
       }
    
        print MAIL "To: $to\n";
        print MAIL "From: $fromaddr\n";
        print MAIL "Reply-to: $replyaddr\n" if $replyaddr;
        print MAIL "X-Mailer: Perl Powered Socket Mailer\n";
        print MAIL "Subject: $subject\n\n";
        print MAIL "$message";
        print MAIL "\n.\n";
    
     if ($SMTP_SERVER ne "")
      {
        $_ = <MAIL>;
        if (/^[45]/)
        {
    	close(MAIL);
    	return(-7);
        }
    
        print MAIL "quit\r\n";
        $_ = <MAIL>;
      }
    
        close(MAIL);
        return(1);
    }
    
    sub sys_date
    {
     %mn = ('Jan','01', 'Feb','02', 'Mar','03', 'Apr','04',
            'May','05', 'Jun','06', 'Jul','07', 'Aug','08',
            'Sep','09', 'Oct','10', 'Nov','11', 'Dec','12' );
     $sydate=localtime(time);
     ($day, $month, $num, $time, $year) = split(/\s+/,$sydate);
        $zl=length($num);
        if ($zl == 1)
          { $num = "0$num";}
     $yyyymmdd="$year\-$mn{$month}\-$num";
     return $yyyymmdd;
    }
    
    
    sub sys_time
    {
     $sydate=localtime(time);
     ($day, $month, $num, $time, $year) = split(/\s+/,$sydate);
     return $time;
    }
    and

    bnbform.html

    Code:
    <HTML>
    <style type="text/css">
    <!--
    .style2 {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	font-size: 10px;
    }
    a:link {
    	color: #000000;
    	text-decoration: underline;
    }
    a:visited {
    	color: #000000;
    	text-decoration: underline;
    }
    a:hover {
    	color: #000000;
    	text-decoration: none;
    }
    a:active {
    	color: #000000;
    	text-decoration: underline;
    }
    body,td,th {
    	color: #000000;
    }
    body {
    	background-color: #FFFFFF;
    }
    .style3 {color: #FFFFFF}
    -->
    </style>
    <BODY>
    <CENTER class="style2">
    </CENTER>
    <FORM ACTION="/cgi-bin/bnbform.pl" METHOD="POST" enctype="multipart/form-data" class="style2">
      <fieldset><p><strong><br> 
      ORDER FORM<br>
      <br>
      Please do not bother sending us ****. </strong><br>
        <br>
        <strong>Name:    
        </strong>
        <INPUT TYPE="TEXT" NAME="name" SIZE=15 MAXLENGTH=50>
      </p>
      <p><strong>Surname:</strong>    
        <INPUT NAME="surname" TYPE="TEXT" id="surname" SIZE=15 MAXLENGTH=50>
    </p>
      <p align="left"><strong>Address:</strong><br>
        <br>
        <textarea name="address" cols="25" rows="3" id="address"></textarea>
        <br>
        <br>
        <br>
        <strong>State:</strong>
        <INPUT NAME="state" TYPE="TEXT" id="state" SIZE=15 MAXLENGTH=50>
        <br>
        <br>
        <strong>Postcode:</strong>
        <INPUT NAME="postcode" TYPE="TEXT" id="postcode" SIZE=8 MAXLENGTH=50>
        <br>    
        <br>
        <strong>Country:</strong>    <INPUT TYPE="TEXT" NAME="country" SIZE=20 MAXLENGTH=50>
        <br>
        <br>
        <strong>E-Mail Address:</strong>    <INPUT TYPE="TEXT" NAME="submit_by" SIZE=30 MAXLENGTH=50>
        <br>
        <strong><br>
        Merch:</strong><br>
        <br>
        <label><br>
        <input class="item" type="checkbox" name="item1" value="White Noise EP"/> 
        White Noise EP </label>
        <label></label><label></label>
        <strong><span class="style3">..............................</span>Qty:</strong>
        <INPUT NAME="qty1" TYPE="TEXT" id="postcode3" SIZE=5 MAXLENGTH=50>
        <br>
        <br>
        <label>
        <input class="item" type="checkbox" name="item2" value="Gotham Tee [Red print on White]" /> 
        Gotham Tee [Red print on White]<span class="style3">.....</span></label><strong>Qty:</strong>
        <INPUT NAME="qty2" TYPE="TEXT" id="qty2" SIZE=5 MAXLENGTH=50> 
        <br>
        <br>                      
        <label>
        <input class="item" type="checkbox" name="item3" value="Gotham Tee [Green print on Black]" /> 
        Gotham Tee [Green print on Black] </label>
        <span class="style3">..</span><strong></strong><strong>Qty:</strong>
        <INPUT NAME="qty3" TYPE="TEXT" id="qty3" SIZE=5 MAXLENGTH=50>
      </p>
      <script type="text/javascript">
    function getElementsByTagAndClassName(tag,cname) {
     var tags=document.getElementsByTagName(tag);
     var cEls=new Array();
     for (i=0; i<tags.length; i++) {
      var rE = new RegExp("(^|\\s)" + cname + "(\\s|$)");
       if (rE.test(tags[i].className)) {
       cEls.push(tags[i]);
       }
      }
     return cEls;
    }
    function fillBox(tag, cname, target) {
    var boxes=getElementsByTagAndClassName(tag,cname)
    for (j=0; j<boxes.length; j++) {
    	boxes[j].onclick=function() {
    			document.getElementById(target).innerHTML="";
    			for (k=0; k<boxes.length; k++) {
    				if (boxes[k].checked==true) {
    				var item=document.createTextNode(boxes[k].value+"\r");
    				document.getElementById(target).appendChild(item);
    				}
    			}
    		}
    	}
    }
    
    window.onload=function() {fillBox('input','item','order')};
    </script>
      <strong>Size:</strong><br>
      [If buying more than one tshirt and need to select more than one size, hold down Ctrl]<br>
      <br>
      <select name="select2" size="6" multiple>
        <option>Boys Small</option>
        <option>Boys Medium</option>
        <option>Boys Large</option>
        <option>Girls Small [8]</option>
        <option>Girls Medium [10]</option>
        <option>Girls Large [12]</option>
      </select>    
      <br>
      <br>
      <br>
      
      <strong>Your order:</strong><br> 
    <textarea name="order" cols="30" rows="4" id="order" type="text" />
    </textarea>
    <label><br>
    <br>
    <br>
    Payment Method:
    <select name="select">
      <option selected>Cash</option>
      <option>Cheque</option>
      <option>Other</option>
    </select>
    <br>
    </label>
            
      <br>
      <strong>Add to Mailing List: </strong>
      <INPUT TYPE="RADIO" NAME="mailing_list" VALUE="YES" CHECKED>
      Yes
      <INPUT TYPE="RADIO" NAME="mailing_list" VALUE="NO">
      No    <br>
      <br>
      <INPUT TYPE="submit" VALUE="Order!">
      <br>
      <br>
      </fieldset>
      <!--  SCRIPT CONFIGURATION SECTION -->
      <INPUT TYPE="HIDDEN" NAME="required" 
        VALUE="name,surname,address,state,postcode,country,submit_by">
      <INPUT TYPE="HIDDEN" NAME="submit_to" VALUE="[email protected]">
      <INPUT TYPE="HIDDEN" NAME="outputfile" VALUE="form1">
      <INPUT TYPE="HIDDEN" NAME="countfile" VALUE="form1">
      <INPUT TYPE="HIDDEN" NAME="emailfile" VALUE="form1">
      <INPUT TYPE="HIDDEN" NAME="form_id" VALUE="Order Form">
      <INPUT TYPE="HIDDEN" NAME="ok_url" 
         VALUE="http://www.gothamcityheartattack.com/thanks.html">
      <INPUT TYPE="HIDDEN" NAME="not_ok_url" 
         VALUE="http://www.gothamcityheartattack.com/oops.html">
      <!--  END OF SCRIPT CONFIGURATION SECTION -->
    </FORM>
    </BODY>
    </HTML>

  • #2
    That's an odd url for your domain, but it does work.

    Part of the problem is with the @okaydomains assignment. You need to escape the @ symbol in the url or use single quotes.
    Code:
    @okaydomains=("http://p10.hostingprod.com/\@gothamcityheartattack.com/");
    or
    Code:
    @okaydomains=('http://p10.hostingprod.com/@gothamcityheartattack.com/');
    Change the valid_page sub to this:
    Code:
    sub valid_page
     {
      if (@okaydomains == 0)
         {return;}
      $DOMAIN_OK=0;
    
      $RF=$ENV{'HTTP_REFERER'};
      $RF=~tr/A-Z/a-z/;
      foreach $ts (@okaydomains) {
         if ($RF =~ /\Q$ts\E/)
          { $DOMAIN_OK=1; }
      }
      if ( $DOMAIN_OK == 0) {
          print "Content-type: text/html\n\n Sorry....Cant run from here!";
          print "<br>HTTP_REFERER:$ENV{HTTP_REFERER}";
          exit;
      }
     }

    Comment


    • #3
      thanks, I'll see what happens

      Comment


      • #4
        Did you test the code on a server? Because I keep getting the same message, but if the code worked for you then it might be something wrong with my host..

        Comment


        • #5
          No, I did not test it. I just pointed out the most obvious problem.

          When you say that you keep getting the same message, I assume you mean that you're getting " Sorry....Cant run from here!"

          What was the result of this print statement?
          print "<br>HTTP_REFERER:$ENV{HTTP_REFERER}";

          Comment


          • #6
            HTTP_REFERER appeared underneath the sorry can't run from here message.

            Comment


            • #7
              Do you mean that it only printed HTTP_REFERER:

              Or did it print HTTP_REFERER:http://p10.hostingprod.com/@gothamcityheartattack.com/

              If it printed your full url, then add another print statement and print the values of $RF and $ts and compare them. It would be helpfull if you post the exact results (copy/past) in your next post.

              Comment


              • #8
                geocities probably has all the ENV stuff sanatized.

                Comment


                • #9
                  when i tried it before it said

                  Sorry....Cant run from here!
                  HTTP_REFERER:

                  with an url to my filemanager afterwards, and when I tried it just then it said just

                  Sorry....Cant run from here!
                  HTTP_REFERER:

                  Comment


                  • #10
                    does geocities have any FAQs or instructions about running CGI/perl scripts on their servers?

                    Comment


                    • #11
                      all they say on geocities about cgi files is that a cgi-bin isn't needed, uploading files just directly into the file manager will work..

                      Comment


                      • #12
                        did you make the change FishMonger pointed out above?

                        Part of the problem is with the @okaydomains assignment. You need to escape the @ symbol in the url or use single quotes.

                        Code:
                        @okaydomains=("http://p10.hostingprod.com/\@gothamcityheartattack.com/");
                        or

                        Code:
                        @okaydomains=('http://p10.hostingprod.com/@gothamcityheartattack.com/');

                        Comment


                        • #13
                          also try this, find this lin ein the script:

                          Code:
                             &valid_page;
                          and change it to:

                          Code:
                          #   &valid_page;
                          that will disable checking the referring URL. But that will also make the script even less secure than it already is.

                          Comment


                          • #14
                            Originally posted by KevinADC View Post
                            did you make the change FishMonger pointed out above?
                            Yes I did. I'll try your last suggestion

                            Comment


                            • #15
                              Originally posted by KevinADC View Post
                              also try this, find this lin ein the script:

                              Code:
                                 &valid_page;
                              and change it to:

                              Code:
                              #   &valid_page;
                              that will disable checking the referring URL. But that will also make the script even less secure than it already is.
                              Now I get the error:

                              500 Internal Server Error

                              The server has encountered an internal error or misconfiguration and was unable to complete your request.
                              I made a scripts log and this is what it reported.

                              Code:
                              %% [Mon Oct  2 03:51:15 2006] GET /bnbform.pl HTTP/1.1
                              %% 500 /z/dr/gothamcityheartattack/us1/bnbform.pl
                              %request
                              Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
                              Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
                              Accept-Encoding: gzip,deflate
                              Accept-Language: en-us,en;q=0.5
                              Connection: keep-alive
                              Cookie: BX=7rq46ft2hp567&b=3&s=71
                              Host: gothamcityheartattack.com
                              Keep-Alive: 300
                              Referer: http://us.1.p10.geocities.yahoo.com/filemanager/advancededitor
                              User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
                              %response
                              P3P: policyref="http://p3p.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE GOV"
                              %stderr
                              syntax error at /bnbform.pl line 342, near "sub bad_email
                              "
                              Execution of /bnbform.pl aborted due to compilation errors.

                              Comment

                              Working...
                              X