VARNOST CGI-BIN okolja??
Isto vprašanje za skripto v CGI
(podatki se pošljejo po mailu in shranijo na neki spletni strani)
#####################################################################
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;
$value =~ s/]|\n)*>//g;
$INPUT{$name} = $value;
}
($sec, $min, $hour, $day, $month, $year, $wday, $ydat, $isdst) =
gmtime(time()+2*3600);
$year+=1900; $month+=1; # v perlu se leta zacnejo 1900, mesec pa z 0
$date=”$day. $month. $year ob $hour:$min:$sec”;
&noname unless $INPUT{‘name’};
open (FILE,”$guestpath”);
@lines = ;
close(FILE);
open (GUEST,”>$guestpath”);
foreach $line (@lines) {
if ($line =~ //) {
print GUEST (“\n”);
if ($INPUT{’email’}) {
# print GUEST (“”);
# print GUEST (“$INPUT{’email’}”);
print GUEST (“%$INPUT{’email’}%”);
}
print GUEST (“$INPUT{‘name’}”);
print GUEST (“\n\n”);
print GUEST (“-$date\n\n”);
} else {
print GUEST (“$line”);
}
}
close (GUEST);
open (MAIL, “|$mailprog $youmail”);
if ($INPUT{’email’}) {
print MAIL (“From: $INPUT{‘name’} \n”);
} else {
print MAIL (“From: $INPUT{‘name’}\n”);
}
print MAIL (“Subject: Vpis \n\n”);
print MAIL (“$INPUT{‘name’} je vpisal .\n\n”);
print MAIL (“Tukaj je nov vnos:\n”);
if ($INPUT{’email’}) {
print MAIL (“$INPUT{’email’}\n”);
}
print MAIL (“-$date\n”);
close (MAIL);
# Send info to visitor
if ($INPUT{’email’}) {
if ($INPUT{’email’} =~ /(.*)@(.*)/) {
open (MAIL, “|-“) || exec $mailprog,$INPUT{’email’} || die “Can’t open $mailprog!\n”;
print MAIL (“From: $yourname \n”);
print MAIL (“Subject: Hvala za registracijo \n\n”);
print MAIL (“$INPUT{‘name’},\n\n”);
print MAIL (“Hvala za vašo registracijo! “);
print MAIL (“Pozdrav,\n\n”);
print MAIL (“- $yourname\n\n”);
close (MAIL);
}
}
&htmlafter;
# Error Messages
sub noname {
print (“Content-type: text/html\n\n”);
print (“Brez imena\n”);
print (“Manjka priimek in ime…\n”);
print (“vpis ne bo dodan.\n”);
print (“Vrnite se nazaj na vnos \n”);
print (“\n”);
print (“\n”);
print (“\n”);
exit;
}
# Print Follow Up HTML
sub htmlafter {
print (“Content-Type: text/html\n\n”);
print (“Hvala\n”);
print (“Podatki, ki ste jih posredovali:\n”);
print (“$INPUT{‘name’}\n”);
if ($INPUT{’email’}) {
print (“”);
print (“$INPUT{’email’}”);
}
exit;
}
Forum je zaprt za komentiranje.