Mangler simpel SPAMtest i script
Hej Eksperter!Jeg har et gammelt script som jeg gerne ville have en simpel SPAMtest i, så der ikke kommer en masse junk i det.
Det ser sådan her ud:
#!/usr/bin/perl
#######################################################################################
# #
# Marked af David Nielsen - davidnielsen@jubiipost.dk #
# #
# Hjemmeside : http://www.friserverplads.dk/davidnielsen2 #
# Eksempel : http://www.friserverplads.dk/davidnielsen2/dn_marked.pl #
# Source : http://www.friserverplads.dk/davidnielsen2/kildekode.pl?dn_marked.pl #
# #
#######################################################################################
$version = "0.0.2";
$log = "marked_log";
$saelges = "marked_saelges";
$koebes = "marked_koebes";
$byttes = "marked_byttes";
$knap = "Færdig";
$fonts = "";
$vislinkbar = "ja"; # ja / nej #
$visform = "op"; # op / ned # skal formen vises øverst eller nederst
# Send the new guestbook-entry as email to recipient
$sendemail = "ja";
$mailprog = "c:/sendmail/sendmail.exe"; # path to sendmail
$recipient = "webmaster\@triumphmc.dk"; # your email address
# fjern + & = og split queryen op
if ($ENV{CONTENT_LENGTH}) {
read (STDIN,$queryen,$ENV{CONTENT_LENGTH});
@queryen_split = split(/&/, $queryen);
foreach $splitted (@queryen_split) {
($name, $value) = split(/=/, $splitted);
$value =~ tr/+/ /;
$value =~ s/%(..)/pack("C", hex($1))/eg;
push (@value,$value);
}
}
# tid
($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$liniesdst) = localtime(time);
if ($sec < 10) { $sec = "0$sec"; }
if ($min < 10) { $min = "0$min"; }
if ($hour < 10) { $hour = "0$hour"; }
$year += 1900;
@dage = ('Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag');
@maneder = ('Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December');
$datoogtid = "@dage[$wday] den $mday. $maneder[$month] $year klokken $hour:$min:$sec";
$dato = "@dage[$wday] den $mday. $maneder[$month]";
# begræns tegn i annoncen
if (length($value[1]) > 60) { $value[1] = substr($value[1],0,60) }
if (length($value[2]) > 500) { $value[2] = substr($value[2],0,500) }
if (length($value[3]) > 64) { $value[3] = substr($value[3],0,64) }
if (length($value[4]) > 8) { $value[4] = substr($value[4],0,8) }
# opret log - sælges - købes - byttes filer hvis de mangler
unless (-e $log) { open (data, ">$log") || die; }
unless (-e $saelges) { open (data, ">$saelges") || die; }
unless (-e $koebes) { open (data, ">$koebes") || die; }
unless (-e $byttes) { open (data, ">$byttes") || die; }
# test om filerne findes og er læse-bare og skriv-bare (readable & writeable)
&testfil("$log");
&testfil("$saelges");
&testfil("$koebes");
&testfil("$byttes");
# udfør kun hvis der bliver sendt data
if ($ENV{CONTENT_LENGTH}) {
# append annoncen til logfilen (før \n laves om til <br>)
open (data, ">>$log") || die;
print data "____________________________________________________________\n";
print data "Kategori: $value[0] e-mail: $value[3] Tlf: $value[4]\n";
print data "Overskrift: $value[1]\n";
print data "Annoncetekst: $value[2]\n";
close (data);
# append annoncen til endten sælges, købes eller byttes filen
# skriv kun hvis annonce tekst ikke er tom
if (($value[1]) && ($value[2])) {
if (($value[3]) || ($value[4])) {
if ($value[0] eq "saelges") { $annonceborder="ffffff"; $datocolor="ffffff"; $annoncecolor="999999"; open (data, ">>$saelges") || die; }
elsif ($value[0] eq "koebes") { $annonceborder="ffffff"; $datocolor="ffffff"; $annoncecolor="999999"; open (data, ">>$koebes") || die; }
elsif ($value[0] eq "byttes") { $annonceborder="ffffff"; $datocolor="ffffff"; $annoncecolor="999999"; open (data, ">>$byttes") || die; }
$value[2] =~ s/\n/<br>/g; # erstat newline tegn med <br>
print data "<table border=0 bgcolor=$annoncecolor align=center cellpadding=0 cellspacing=0 width=500>";
print data " <tr><td><table border=0 bordercolor=ffffff bgcolor=$annoncecolor cellpadding=2 cellspacing=1 align=center width=100%>";
print data " <tr><td background=../topbg.gif nowrap bgcolor=$annoncecolor><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td align=left><font color=ffffff face=$fonts size=+1><b>$value[1]</b></font></td><td align=right><font face=$fonts size=-1 color=$datocolor>$dato</font></td></tr></table></td></tr></color>";
print data " <tr><td valign=top bgcolor=000000><font face=$fonts>$value[2]</font>";
if ($value[5]) { $billed = $value[5]; if (length($value[5]) > 35) { $billed = substr($value[5],0,35)."..."; } print data "<br><a href=\"$value[5]\" target=\"_blank\"><img src=\"$value[5]\" width=\"130\" height=\"100\" border=\"0\">"; }
print data "</td></tr>";
# telefon nummer og email
print data " <tr><td valign=top bgcolor=000000><table border=0 cellpadding=0 cellspacing=0 align=center width=100%><tr>";
if ($value[4]) { print data "<td align=left><font face=$fonts>Telefon: $value[4]</font></td>"; }
if ($value[3]) { $email = $value[3]; if (length($value[3]) > 35) { $email = substr($value[3],0,35)."..."; } print data "<td align=right><a href=\"mailto:$value[3]\"><font face=$fonts>$email</font></td>"; }
print data "</tr></table></td></tr>";
print data " </table></td></tr>";
print data "</table>";
print data "<!-- mellemrum --><table border=0><tr><td height=10> </td></tr></table>";
print data "\n";
close (data);
&send_mail if ($sendemail eq "ja");
}
}
}
# sendmail bugfix
# Thanks to Jason <syberknight@mac.com>
sub send_mail {
open (MAIL, "|$mailprog -t");
print MAIL "To: $recipient\n";
print MAIL "From: $recipient\n";
print MAIL "Subject: Ny annonce på køb & salg\n";
print MAIL "Reply-to: $email\n\n";
print MAIL "$dato: Ny annonce på køb & salg på Triumph MC.";
print MAIL "\n";
print MAIL "\n";
print MAIL "Kategori: $value[0] Email: $value[3] Tlf: $value[4]\n";
print MAIL "Overskrift: $value[1]\n";
print MAIL "Annoncetekst: $value[2]\n";
# print MAIL "Ny annonce på køb & salg den $dato";
# print MAIL "Fra: $email\n";
# print MAIL "Annonce type: $value[0]\n";
# print MAIL "Annonce: $value[2]";
# print MAIL "Telefon: $value[4]";
close (MAIL);
}
############################
############################
#### ####
#### HTML STARTER HER ####
#### ####
############################
############################
print<<HTML;
Content-type: text/html
<body background=../bg.gif bgcolor=000000 leftMargin=0 topMargin=0 rightMargin=0 marginwidth=0 marginheight=0>
<center>
<LINK href=../style.css type=text/css rel=STYLESHEET>
HTML
if ($vislinkbar eq "ja"){
print "<TABLE width=100% border=0 align=center cellPadding=0 cellSpacing=0><TR><TD vAlign=top width=723><BR>";
print "</td></tr></table>";
print "<table bgcolor=000000 border=0 align=center cellpadding=1 cellspacing=0 width=98%>";
print "<tr><td><table width=100% background=../topbg.gif bgcolor=333366 border=0 align=center cellpadding=2 cellspacing=0><tr><td align=left><font face=$fonts color=ffffff><b>KØB & SALG</b></font></td><td align=right><font face=$fonts color=ffffff>Quickmenu >> </font></td><td><li><a href=#saelges><font face=$fonts color=ffffff>Sælges</font></a></td><td><li><a href=#koebes><font face=$fonts color=ffffff>Købes</font></a></td><td><li><a href=#byttes><font face=$fonts color=ffffff>Byttes</font></a></td></tr><TR><TD bgColor=#000000 colSpan=2>";
print "</table>";
}
print<<HTML;
<br>
<table border=0 align=center cellspacing=0 cellpadding=0 width=100% height=100%>
HTML
if ($visform eq "op"){
&printForm;
}
print<<HTML;
<tr align=center valign=middle><td>
<a name=saelges></a>
<!-- overskrift --><table width=90% bgcolor=000000 border=0 align=center cellpadding=1 cellspacing=0><tr><td><table background=../topbg.gif width=100% bgcolor=333366 border=0 align=center cellpadding=2 cellspacing=0><tr><td align=left><font face=$fonts color=ffffff><b>SÆLGES</b></font></td></tr></table></td></tr></table>
<!-- mellemrum --><table border=0><tr><td height=20> </td></tr></table>
HTML
# læser fra sælges filen
open (data, $saelges) || die;
while ($linie = <data>) { print $linie; }
close (data);
print<<HTML;
<a name=koebes></a>
<!-- overskrift --><table width=90% bgcolor=000000 border=0 align=center cellpadding=1 cellspacing=0><tr><td><table background=../topbg.gif width=100% bgcolor=333366 border=0 align=center cellpadding=2 cellspacing=0><tr><td align=left><font face=$fonts color=ffffff><b>KØBES</b></font></td></tr></table></td></tr></table>
<!-- mellemrum --><table border=0><tr><td height=20> </td></tr></table>
HTML
# læser fra købes filen
open (data, $koebes) || die;
while ($linie = <data>) { print $linie; }
close (data);
print<<HTML;
<a name=byttes></a>
<!-- overskrift --><table width=90% bgcolor=000000 border=0 align=center cellpadding=1 cellspacing=0><tr><td><table background=../topbg.gif width=100% bgcolor=333366 border=0 align=center cellpadding=2 cellspacing=0><tr><td align=left><font face=$fonts color=ffffff><b>BYTTES</b></font></td></tr></table></td></tr></table>
<!-- mellemrum --><table border=0><tr><td height=20> </td></tr></table>
HTML
# læser fra byttes filen
open (data, $byttes) || die;
while ($linie = <data>) { print $linie; }
close (data);
print "</td></tr>";
if ($visform eq "ned"){
&printForm;
}
print "</table>";
print "\n";
sub printForm{
print "<tr><td>";
print "<a name=nymarkedannonce></a>";
# sort kant
print "<P class=headings>Lav en ny køb eller salgs annonce</P>";
print "<table width=80% border=0 align=center cellpadding=0 cellspacing=0><tr><td width=26%>Annoncer bliver slettet efter ca. 1 måned. Du kan indrykke din annonce igen, ligeså længe du ønsker. Hvis din annonce skal fjernes igen før 1 måned kan du kontakte webmasteren på Email i menuen. Alle annoncer skal være på Triumph relateret materiale ellers vil det blive fjernet igen. Hvis du ikke har et billede af din vare på nettet kan du sende et til webmasteren via email på <a href=\"mailto:webmaster\@triumphmc.dk\">webmaster\@triumphmc.dk</a>. Triumph Mc Owners Club Denmark forbeholder sig ret til at ændre eller slette annoncer.</td></tr></table>";
print "<table bgcolor=FFFFFF border=0 align=center cellpadding=0 cellspacing=0>";
print "<tr><td></td></tr>";
print "<table bgcolor=000000 border=0 align=center cellpadding=8 cellspacing=0>";
print "<tr><td>";
print "<form name=kob method=post action=$ENV{SCRIPT_NAME} autocomplete=off onsubmit=\"document.kob.Send.disabled=true;\">";
print "<font face=$fonts>";
print "<font face=$fonts color=ffffff>Annonce type:<br></font>";
print "<select class=gbmenu name=kategori>";
print "<option value=saelges> Sælges";
print "<option value=koebes> Købes";
print "<option value=byttes> Byttes";
print "</select><br>";
print "<font face=$fonts color=ffffff>Overskrift / titel:<br></font>";
print "<input class=form maxlength=40 type=text size=40 name=title value=\"\"><br>";
print "<font face=$fonts color=ffffff>Annonce tekst:<br></font>";
print "<textarea class=form maxlength=500 cols=42 rows=6 name=annoncetekst wrap=on>\n</textarea><br>";
print "<font face=$fonts color=ffffff>Din e-mail: *<br></font>";
print "<input class=form maxlength=64 type=text size=40 name=email value=\"\"><br>";
print "<font face=$fonts color=ffffff>Telefon nummer: *<br></font>";
print "<input class=form maxlength=8 type=text size=40 name=telefonnummer value=\"\"><br>";
print "<font face=$fonts color=ffffff>Billede: (<font color=\"F7B518\">husk http://</font>)<br></font>";
print "<input class=form maxlength=64 type=text size=40 name=billed value=\"\"><br><br>";
print "<input name=Send class=knap type=submit value=\"$knap\" onclick=\"document.kob.Send.value='Vent venligst';this.className='knap2'\">";
print "<p>* du behøver kun at udfylde <u>et</u> af disse felter</font>";
print "</font>";
print "</form>";
print "</td></tr>";
print "</table>";
print "</td></tr>";
print "</table>";
# sort kant slut
if ($visform eq "op"){ print "<!-- mellemrum --><table border=0><tr><td height=40> </td></tr></table>"; }
print "</td></tr>";
}
sub testfil{
# test om filen findes og er læse-bare og skriv-bare (readable & writeable)
stat($_[0]);
&stop ($_[0], "filen blev ik($_[0])ke fundet") if !-e _;
&stop ($_[0], "filen kunne ikke åbnes") if !-r _;
&stop ($_[0], "filen er skrivebeskyttet") if !-w _;
}
sub stop{
print "Content-type: text/html\n\n";
print "<center>";
print "<font face=$fonts size=+1>";
print "<br><font size=+1><b>Fejl !</b></font><br><br>";
print "<b><u><font color=0000ff>$_[0]</font></u></b>";
print " $_[1] (<font color=ff0000 size=-1>$!</font>)<br>";
print "<br>";
print "</font>";
print "</center>\n\n";
exit;
}
Er der nogen der kan hjælpe med dette???
T2C