#!/usr/bin/perl # # ResooSite v.0.9 - Resoo 2002 # resooboard.pl # require "resooboardconf.pl"; ########################################################################### # Subroutine # Obtenir le nb de messages (data) &get_number; # Obtenir les informations du formulaire &parse_form; # Mettre les champs dans des variables &get_variables; # Ouvrir un nouveau fichier et y ecrire les infos &new_file; # Ouvrir le fichier principal et ajouter un lien &main_page; # Retourner une page HTML a l'utilisateur &return_html; # Incrementer le compteur &increment_num; ######################################## # Obtenir le nb de messages - Subroutine sub get_number { $wfile1 = "$mondir/$datafiletmp"; if (!(-e $wfile1)){open(NEW,"> $wfile1");print NEW "0";close(NEW); } open(NUMBER,"$wfile1"); $num = ; close(NUMBER); if ($num == 99999) { $num = "1"; } else { $num++; } } ##################################################### # Obtenir les informations du formulaire - Subroutine sub parse_form { # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; if ($allow_html != 1) { $value =~ s/<([^>]|\n)*>//g; } else { unless ($name eq 'body') { $value =~ s/<([^>]|\n)*>//g; } } $FORM{$name} = $value; } } ################################################### # Mettre les champs dans des variables - Subroutine sub get_variables { if ($FORM{'followup'}) { $followup = "1"; @followup_num = split(/,/,$FORM{'followup'}); $num_followups = @followups = @followup_num; $last_message = pop(@followups); $origdate = "$FORM{'origdate'}"; $origname = "$FORM{'origname'}"; $origsubject = "$FORM{'origsubject'}"; } else { $followup = "0"; } if ($FORM{'name'}) { $name = "$FORM{'name'}"; $name =~ s/"//g; $name =~ s///g; $name =~ s/\&//g; } else { &error(no_name); } if ($FORM{'semail'} =~ /.*\@.*\..*/) { $semail = "$FORM{'semail'}"; } if ($FORM{'subject'}) { $subject = "$FORM{'subject'}"; $subject =~ s/\&/\&\;/g; $subject =~ s/"/\"\;/g; } else { &error(no_subject); } if ($FORM{'url'} =~ /.*\:.*\..*/ && $FORM{'url_title'}) { $message_url = "$FORM{'url'}"; $message_url_title = "$FORM{'url_title'}"; } if ($FORM{'img'} =~ /.*tp:\/\/.*\..*/) { $message_img = "$FORM{'img'}"; } if ($FORM{'body'}) { $body = "$FORM{'body'}"; $body =~ s/\cM//g; $body =~ s/<//g; $body =~ s/"/"/g; } else { &error(no_body); } if ($quote_text == 1) { $hidden_body = "$body"; $hidden_body =~ s//>/g; $hidden_body =~ s/"/"/g; } } ############################################################## # Ouvrir un nouveau fichier et y ecrire les infos - Subroutine sub new_file { $wfile2 = "$mesgdir/$num\.$ext"; open (NEWFILE,">$wfile2") || die $!; if ($use_SSI == 1) { print NEWFILE "$resooSSIhm"; } else { print NEWFILE "\n"; print NEWFILE " \n"; print NEWFILE " $subject\n"; print NEWFILE " \n"; print NEWFILE " $page\n"; print NEWFILE " $fonttxt\n"; print NEWFILE "
\n"; print NEWFILE "

$subject
$bbstitle:$num\.$ext

\n"; print NEWFILE "
\n"; } print NEWFILE "
\n"; print NEWFILE "
[ Retour page validation ]
\n"; print NEWFILE "

\n"; if ($followup == 1) { print NEWFILE "

\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "
\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "
Nom:
E-Mail:
Titre:
Message:
\n"; print NEWFILE "
\n"; print NEWFILE "
\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "
\n"; } else { print NEWFILE "
\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "
\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "
Nom:
E-Mail:
Titre:
Message:
\n"; print NEWFILE "
\n"; print NEWFILE "
\n"; print NEWFILE "\n"; print NEWFILE "\n"; print NEWFILE "
\n"; } print NEWFILE "
\n"; print NEWFILE "
[ Retour page validation ]
\n"; if ($use_SSI == 1) { print NEWFILE "$resooSSIfm"; } else { print NEWFILE "$fontend\n"; } close(NEWFILE); } ############################################################# # Ouvrir le fichier principal et ajouter un lien - Subroutine sub main_page { $wfile3 = "$mon_dir/$fileboardvalid\.$ext"; open(MAIN,"$wfile3") || die $!; @main =
; close(MAIN); use CGI qw(:all); open(MAIN,">$wfile3") || die $!; foreach $main_line (@main) { if ($main_line =~ //) { print MAIN "\n"; print MAIN "
  • $subject - $name $date IP:", remote_host, " \($bbstitle\)\n"; } else { print MAIN "$main_line"; } } close(MAIN); } ###################################################### # Retourner une page HTML a l'utilisateur - Subroutine sub return_html { print "Content-type: text/html\n\n"; if ($use_SSI == 1) { &headbbs; } else { print "Message envoyé: $subject\n"; print "$page\n"; print "$fonttxt\n"; } print "

    Message envoyé: $subject

    \n"; print "Les informations suivantes seront ajoutées au Forum dans les prochaines heures:
    \n"; print "(Following message will soon be added to the forum:)


    \n"; print "Nom: $name
    \n"; print "E-Mail: $semail
    \n"; print "Titre: $subject
    \n"; print "Message:

    \n"; $body =~ s/\n\n/

    /g; $body =~ s/\n/
    /g; print "

      $fontmess$body$fontend

    \n"; print "Ajouté le: $date

    \n"; print "


    \n"; print "
    [ Retour au Forum ]
    \n"; if ($use_SSI == 1) { &footbbs; } else { print "$fontend\n"; } } ###################################### # Incrementer le compteur - Subroutine sub increment_num { open(NUM,">$mondir/$datafiletmp") || die $!; print NUM "$num"; close(NUM); } ############################################## # Formulaire de saisie utilise en fond de page sub rest_of_form { print "
    \n"; print "
    \n"; if ($followup == 1) { print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } print "\n"; print "\n"; if ($error eq 'no_subject') { print "\n"; } else { print "\n"; print "\n"; } print "\n"; print "\n"; print "
    $fonttxt Nom: $fontend
    $fonttxt E-Mail: $fontend
    $fonttxt Titre: $fontend
    $fonttxt Titre: $fontend $FORM{'subject'}
    $fonttxt Message: $fontend
    \n"; print "
    \n"; print "

    \n"; if ($show_faq == 1) { print "
    [ Voir l'aide ] [ Retour au Forum ]
    \n"; } else { print "
    [ Retour au Forum ]
    \n"; } if ($use_SSI == 1) { &footbbs; } else { print "$fontend\n"; } }