Avatar billede Slettet bruger
08. marts 2003 - 14:43 Der er 8 kommentarer og
1 løsning

Hjælp med upload

Er der en der kan hjælpe med at lave et upload felt i en form. Det jeg har nu er et felt hvor der kan skrives et link til et billede. Men jeg ville gerne have at folk kunne uploade et billede istedet.
Siden kan ses her: http://www.triumphmc.dk/indexdk.htm og så under Køb & Salg i menuen. Hvis der er en der mener at kunne hjælpe mig vil jeg gerne vise koden i scriptet.

T2C
Avatar billede mahler Nybegynder
08. marts 2003 - 15:02 #1
Prøv at kigge på
http://netfactory.dk/technology/perl/graphics/#image_advanced

I download-pakken ligger der et eksempel (upload2file.cgi), der viser et eksempel  du hurtigt burde kunne arbejde videre med.
Avatar billede Slettet bruger
08. marts 2003 - 15:28 #2
Hmm....det tror jeg ikke jeg kan få til at virke.

Jeg smider lige koden til scriptet:

#!/usr/bin/perl

$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
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;
}

T2C
Avatar billede mahler Nybegynder
08. marts 2003 - 15:42 #3
kan du ikke lige fortælle om du har CGI-modulet installeret?
Avatar billede Slettet bruger
08. marts 2003 - 16:00 #4
Nu er jeg ikke helt med på hvad du mener. Men jeg kan godt køre cgi hvis det er det du mener!

T2C
Avatar billede mahler Nybegynder
08. marts 2003 - 16:02 #5
Det er det ikke. Det er modulet, der hedder CGI.

http://search.cpan.org/author/JHI/perl-5.8.0/lib/CGI.pm#NAME
Avatar billede mahler Nybegynder
08. marts 2003 - 16:03 #6
hvis følgende linje kun skriver "ok." så har du det:
perl -MCGI -e'print "ok.\n"'

Hvis det giver en fejl, har du det IKKE.
Avatar billede Slettet bruger
08. marts 2003 - 16:04 #7
Jeps det tror jeg helt sikkert jeg har installeret på serveren. Er der en måde jeg kan tjecke det?

T2C
Avatar billede Slettet bruger
08. marts 2003 - 16:09 #8
Den skriver tilbage:
Can´t find sting terminator "'" anyware before EOF at -e line 1.

T2C
Avatar billede Slettet bruger
01. december 2004 - 11:57 #9
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