#!/usr/bin/perl require parser; print "Content-type:text/html\n\n"; read(STDIN,$buffer,$ENV{CONTENT_LENGTH}); @pairs = split(/&/,$buffer); $reg_count = 0; foreach $pairs ( @pairs ) { ($name,$value) = split(/=/,$pairs); $value =~ s/\+/ /g; $value =~ s/%(..)/pack("c",hex($1))/ge; $name =~ s/%(..)/pack("c",hex($1))/ge; if ( $name =~ /^registration/ ) { @reg[$reg_count++] = $value; next; } elsif ( $name eq "submit_button" ) { $action = $value; $next; } elsif ( $name eq "reg_index" || $name eq "id" || $name eq "farm" ) { $IN{$name} = $value; next; } else { $IN{$name} = $value; @new_data[$count2++] = $pairs; } } &loginUser; $new_reg = join("&",@new_data); if ( $reg_count < 1 && $action eq "Annuler" ) { &printTemplate("templates/login.template"); exit; } elsif ( $reg_count < 1 && $IN{f16} eq "" ) { &printTemplate("templates/registration.template"); exit; } if ( $IN{f16} ne "" && ( $action eq "Soumettre" || $action eq "Autre enregistrement" ) ) { &checkEmpty; @reg[$reg_count] = $new_reg; } if ( $action eq "Soumettre" || $action eq "Annuler" ) { &printTemplate("templates/confirmation.template"); exit; } elsif ( $action eq "Autre enregistrement" ) { &printTemplate("templates/registration.template"); exit; } elsif ( $action =~ /Annuler l'enregistrement/ ) { $to_delete = $action; $to_delete =~ s/[^0-9]//g; $to_delete--; splice( @reg, $to_delete, 1); if ( $reg_count < 2 ) { &printTemplate("templates/registration.template"); exit; } &printTemplate("templates/confirmation.template"); exit; } elsif ( $action =~ /Modifier l'enregistrement/ ) { $to_edit = $action; $to_edit =~ s/[^0-9]//g; $show_reg_index = ""; $to_edit--; @pairs = split( /&/ , @reg[$to_edit] ); foreach $pairs ( @pairs ) { ( $name, $value ) = split( /=/, $pairs ); $value =~ s/\+/ /g; $value =~ s/%(..)/pack("c",hex($1))/ge; $name =~ s/%(..)/pack("c",hex($1))/ge; $CHECKED{$name.$value} = " CHECKED "; if ($value eq "Mâle") { $CHECKED{'f12Male'}= " CHECKED " } eval("\$".$name."= \'$value\'"); } &printTemplate("templates/edit.template"); exit; } elsif ( $action eq "Envoyer les modifications" ) { &checkEmpty; $IN{reg_index}--; @reg[$IN{reg_index}] = $new_reg; &printTemplate("templates/confirmation.template"); exit; } elsif ( $action eq "Envoyer" ) { if ( !$IN{email} ) { $ENV{QMAILUSER} = "registration"; $ENV{QMAILHOST} = "ayrshire-canada.com"; $user = "online_registration"; $domain = "ayrshire-canada.com"; } else { ( $user, $domain ) = split( /\@/, $IN{email} ); $ENV{QMAILUSER} = $user; $ENV{QMAILHOST} = $domain; } open ( MAIL, "| sendmail chad\@ayrshire-canada.com rwelsh"); print MAIL "From: $user\@$domain\n"; print MAIL "To: chad\@ayrshire-canada.com\n"; print MAIL "Subject: New Registrations from $IN{farm}, $IN{id}\n"; print MAIL "Membership ID : $IN{id}\n"; print MAIL "Farm : $IN{farm}\n"; $count2=1; foreach $reg ( @reg ) { print MAIL "Registration $count2 \n-----------------------------------------\n"; @pairs = split ( /&/, $reg ); foreach $pairs ( @pairs ) { ( $name, $value ) = split ( /=/,$pairs ); $name = &decode2($name); $value = &decode2($value); eval("\$"."$name='$value'"); } print MAIL " Animal TE : $f00 Numéro d'embryon : $f01 Numéro d'enregistrement de la mère : $f02 Nom de la mère : $f03 Numéro d'enregistrement du père : $f04 Nom du père : $f05 IA : $f06 Facture IA : $f07 Date de saillie : $f08 Tatouage oreille droite : $f09 Tatouage oreille gauche : $f10 Date de naissance : $f11 Sexe : $f12 Jumeau : $f13 Sans Cornes : $f14 Engendrée par : Numéro ID du membre : $f15 Nom de l'animal : $f16 "; print MAIL "--------------------------------------------\n\n"; $count2++; } close MAIL; &printTemplate("templates/thankyou.template"); exit; } elsif ( $action eq "Annuler tout" ) { &printTemplate("templates/login.template"); exit; } else { &setDefaults; &printTemplate("templates/registration.template"); exit; } sub printReg { $count = 1; foreach $reg ( @reg ) { $reg_count = "registration".$count++; print "\n"; } return; } sub printConfirm { $count = 1; foreach $reg ( @reg ) { print ""; print ""; @pairs = split(/&/,$reg); foreach $pairs ( @pairs ) { ( $name, $value ) = split(/=/,$pairs); $name = &decode2($name); $name =~ s/_/ /g; $value = &decode2($value); eval("\$".$name."='".$value."'"); } print " "; print "
Enregistrement $count
Animal TE $f00
Numéro d'embryon $f01
Numéro d'enreg. de la mère $f02
Nom de la mère $f03
Numéro d'enreg. du père $f04
Nom du père $f05
IA $f06
Facture IA $f07
Date de saillie $f08
Tatouage oreille droite $f09
Tatouage oreille gauche $f10
Date de naissance $f11
Sexe $f12
Jumeau $f13
Sans cornes $f14
Engendrée par : Numéro du membre $f15
Nom de l'animal $f16
"; print "

 
"; $count++; } } sub decode2 { @_[0] =~ s/%(..)/pack("c",hex($1))/ge; @_[0] =~ s/\+/ /g; return @_[0]; } sub setDefaults { #$CHECKED{Male} = " CHECKED "; #$CHECKED{ET} = " CHECKED "; } sub checkEmpty { open(FN,"french_names.txt");@fn=;close (FN); $IN{f15} = "X" ; $IN{f07} = "X" ; if ( $IN{f00} eq "Non" ) { $IN{f01} = "X" } $IN{f10} = "X" ; foreach $k ( keys( %IN )) { if ( $IN{$k} eq "" ) { $k =~ s/^f//g; $missing_fields .= "
@fn[$k]"; $tripped = "TRUE"; } } if ( $tripped ) { $error_message = " Erreur, il n'y a pas de valeur pour : $missing_fields
S.V.P. Vous devez inscrire une valeur pour chaque champ sauf si le champ est identifié optionel.
Utilisez le button \"back\" pour retourner en arrière, au formulaire d'enregistrement. "; &printTemplate("templates/error.template"); exit; } } sub loginUser { if ( !$IN{id} ) { &printTemplate("templates/login.template"); exit; } else { $IN{id} =~ s/ +//ge; open( DATA, "../../en/registration/ayrnet.dat" ); while ( ) { chop($_); $id =~ s/[^0-9]//g; ($id,$IN{farm},$f1,$f2) = split ( /\t/, $_ ); if ( $id == $IN{id} && $f2 =~ /Y/ ) { $IN{farm} =~ s/ +$//g; $found = 1; last; } } if ( !$found ) { &printTemplate("templates/failed_login.template"); exit; } } }