Avatar billede Slettet bruger
07. december 2002 - 14:58 Der er 1 løsning

Uploade billede

Hej. Er der en der kan hjælpe mig med et script som skal kunne uploade et billede til en annonce. Nu virker det med at man kan lave et link til et billede, men jeg vil gerne have så man kan uploade et billede istedet for. Det må gerne have en begrænsning på at det er kun gif og jpg og at det ikke må fylde mere end 100 kb. Her er det script jeg bruger og det kan ses på www.triumphmc.dk under Køb & Salg i menuen:

#!/usr/bin/perl

$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','Tordag','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;
}
Avatar billede Slettet bruger
08. januar 2003 - 23:48 #1
lukker spm
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