Avatar billede Slettet bruger
24. februar 2009 - 10:57 Der er 10 kommentarer og
1 løsning

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>&nbsp;</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 >>&nbsp;&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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
Avatar billede breum Nybegynder
02. marts 2009 - 21:38 #1
Jeg har selv løst problemet således:
1) Lav en ekstra tekstbox på din formular
2) Skriv til brugeren at de skal skrive ordet "menneske" i boxen
3) Lad scriptet teste at der er skrevet "menneske" i boksen - ellers giv en fejlmeddelelse.

Det fjerner mindst 99% af spambots, jeg har ikke modtaget mails fra spambots siden jeg indførte dette. Hvis du ønsker noget bedre kan du google "free captcha"
Avatar billede breum Nybegynder
02. marts 2009 - 21:40 #2
Du kan f.eks se det er brugt på http://www.navnebetydning.dk/drengenavn/Mads.shtml
Avatar billede Slettet bruger
03. marts 2009 - 00:08 #3
Tak for dit input, er det sådan at jeg kan se hvordan du har intregreret det i dit script, det er der jeg har lidt mangler. Men ellers er det lige sådan jeg havde tænkt det skulle gøres.

T2C
Avatar billede breum Nybegynder
04. marts 2009 - 18:06 #4
Det er 2 rettelser, den ene er at tilføge det ekstre felt i formularen der vises til brugeren:


Efter linien:

  print "<font face=$fonts color=ffffff>Telefon nummer: *<br></font>";
    print "<input class=form maxlength=8 type=text size=40 name=telefonnummer value=\"\"><br>";

Tilføjes linien:
  print "<font face=$fonts color=ffffff>Skriv ordet "menneske" i dette felt: *<br></font>";
    print "<input class=form maxlength=8 type=text size=40 name=mennesketest value=\"\"><br>";
Avatar billede breum Nybegynder
04. marts 2009 - 18:14 #5
nå jeg ser lige at scriptet af en eller anden årsag benytter rækkefølgen af input, så den linie jeg siger du skal tilføje skal være lige før submitknappen, for ellers ændres numrene.
Avatar billede breum Nybegynder
04. marts 2009 - 18:15 #6
I mit script benytter jeg så noget der minder om dette:

if ($input{'mennesketest'} ne "menneske")
{
$print"Du glemte at skrive 'menneske'<br>Klik på tilbageknappen i den browser.<br>\n\n";
exit;
}
Avatar billede breum Nybegynder
04. marts 2009 - 18:23 #7
ved dig skal du formentlig erstatte

$input{'mennesketest'}
med
$value[5]

i mit eksempel.

Du kan indsætte testen lige efter variablerne er lavet altså lige inden:

# tid
Avatar billede breum Nybegynder
04. marts 2009 - 18:25 #8
Jeg ender op med nedenstående der ikke er testet:

#!/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);
      }
    }

if ($value[5] ne "menneske")
{
print "Content-type: text/html\n\n";
print "Du glemte at skrive 'menneske'<br>Klik på tilbageknappen i den browser.<br>\n\n";
exit;
}



# 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>&nbsp;</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 >>&nbsp;&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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 "<font face=$fonts color=ffffff>Skriv ordet "menneske" i dette felt: *<br></font>";
    print "<input class=form maxlength=8 type=text size=40 name=mennesketest value=\"\"><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>&nbsp;</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;
}
Avatar billede breum Nybegynder
04. marts 2009 - 18:27 #9
Jeg har skrevet forkert i #6
Der skulle have stået:


I mit script benytter jeg så noget der minder om dette:

if ($input{'mennesketest'} ne "menneske")
{
print "Content-type: text/html\n\n";
print "Du glemte at skrive 'menneske'<br>Klik på tilbageknappen i den browser.<br>\n\n";
exit;
}

Det står korrekt i #8
Avatar billede Slettet bruger
05. marts 2009 - 00:28 #10
Et godt bud men det virker ikke. Du kan finde scriptet i funktion på triumphmc.dk under Køb og Salg hvis det hjælper dig lidt.

T2C
Avatar billede breum Nybegynder
12. marts 2009 - 19:03 #11
Så er der sikkert en tyrkfejl eller også her jeg indsat kode forskert sted. Jeg kan ikke helt gennemskue den kode du har postet.

Princippet fejler intet, men jeg har ikke tid til at finde fejlen - held og lykke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester