Avatar billede Slettet bruger
06. juli 2007 - 14:31 Der er 15 kommentarer og
2 løsninger

upload formular

Hej eksperter!

Jeg har et PHP script som sender nyhedsbreve fra en HTML form, hvor jeg også kan uploade et billede eller tekst fil, som så bliver uploadet til serveren, og modtagerne af nyhedsbrevet modtager så et link til den uploaded fil.

Men jeg kan ikke få den til at uploade filen, så ville hører om der var nogle her der kunne se fejlen, eller hvad der nu er galt.

Mit Script:
<?php
$content = $_POST['content'];
$subject = $_POST['subject'];
$filepath = $_POST['filepath'];
$startuser = $_POST['startuser'];

if($startuser == "")
    $startuser = 0;

$FileUpload = false;
$FullPath = "";
$BaseName = "";

if($filepath != "")
{
    $FileUpload = true;
    $FullPath = $filepath;
    $path_parts = pathinfo($filepath);
    $BaseName = $path_parts['basename'];
}
else
{
    $path_parts = pathinfo($_FILES['billede']['name']);
   
    $uploadfile = time() . "." . $path_parts['extension'];
    $BaseName = $path_parts['basename'];
   
    $path_parts = pathinfo($_SERVER['PHP_SELF']);
    $FullPath = "http://www." . $_SERVER['SERVER_NAME'] . $path_parts['dirname'] . "/billeder/" . $uploadfile;
   
    if (move_uploaded_file($_FILES['billede']['tmp_name'], $uploadfile))
    {
          rename($uploadfile, "billeder/" . $uploadfile);
        $FileUpload = true;
    }
}


include('../scripts/info.php');

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass);
mysql_select_db($sqldb);
$oldContent = $content;
$resultat1 = mysql_query("SELECT * FROM ".$sqlemailtabel." ORDER BY 'id' ASC LIMIT $startuser, 25");

while ($raekke = mysql_fetch_array($resultat1)) {
        $navn = $raekke['navn'];
        $idnummer = $raekke['id'];       
        $email = $raekke['email'];
        $from = "didde_juul@hotmail.com";


        extract($raekke);
        $to = $email;
        $content = "Hello $navn\n\n\n".
                  "$oldContent \n\n".
                  ($FileUpload ? "\nAttached File: \n<a href=\"$FullPath\">$BaseName</a>" : "") .
                  "\n".
                  $from."\n".
                  "http://www.deedee-dk.com\n\n\n\n\n\n\n".
                  $delete_user_besked."\n".
                  "http://".$dinwebsite.$stitilfiler."/delete_user.php?id=".$idnummer;
        if(mail($to, $subject, $content,
              "From: $from\r\n"
              ."Reply-To: $from\r\n"
              ."X-Mailer: PHP/" . phpversion()))
                  {
                    echo "Mail afsendt med <u><b>succes</b></u> til: $navn med følgende emailadresse: $email<br>";
                }    else
                {
                    echo "Kunne ikke sende en mail til: $navn med følgende emailadresse: $email<br>";
                }
              flush();
}
echo '<form name="laaner_formular" method="post" action="send.php">'.
        '<input type="hidden" value="'.$oldContent.'" name="content">'.
        '<input type="hidden" value="'.$subject.'" name="subject">'.
        ($FileUpload ? '<input type="hidden" value="'.$FullPath.'" name="filepath">' : "") .
        '<input type="hidden" value="'. ($startuser + 25) .'" name="startuser">'.
        '<input type="submit" name="send" value="Send Til De Næste 25">'.
        '</form>';
?>
Avatar billede erikjacobsen Ekspert
06. juli 2007 - 16:56 #1
Jeg kan ikke se at du nogetsted forsøger at uploade en fil.
Du skal gøre som i: http://www.eksperten.dk/artikler/1098
Avatar billede Slettet bruger
06. juli 2007 - 18:23 #2
Tak for dit svar

okay, vil også godt indrømme at jeg ikke har lavet dette script alene :)
Men hvordan får jeg indlemmet det i mit ovenstående script, skal jeg lave en seperat fil hvor jeg har upload scriptet i, og så include den? eller skal jeg bare smide det hele ind i ovenstående script? og hvor henne i scriptet?
På forhånd tak
Avatar billede cronick Nybegynder
06. juli 2007 - 23:43 #3
" if (move_uploaded_file($_FILES['billede']['tmp_name'], $uploadfile))
    {
          rename($uploadfile, "billeder/" . $uploadfile);
        $FileUpload = true;
    } " er da at finde i den ovenstående kode. Så et forsøg på upload må vel være godtaget. Nu er jeg ikke helt sikker, men er du sikker på, at man i sin destination kan skrive "http:// og sin server-adresse, med i det samlede?
Avatar billede Slettet bruger
07. juli 2007 - 01:10 #4
Nej det er jeg faktisk ikke, som sagt så har jeg fået en del hjælp til dette script, så ved faktisk ikke om det er "lovligt"
Men tager jeg helt fejl når jeg siger: at jeg da sådan set bare kan tage php scriptet fra det link du gav mig, og erstatte med det file upload der er i mit script?
Avatar billede coderdk Praktikant
07. juli 2007 - 01:12 #5
du mangler en enctype="multipart/form-data" i dit <form>-tag...
Avatar billede Slettet bruger
07. juli 2007 - 19:31 #6
Fandt ud af at den faktisk uploadet de filer jeg bad den om, men grunden til at linket ikke virkede var at $FullPath blev bedt om at tilføje WWW foran internet adressen, men det gjorde åbenbart at der kom 2 gange WWW, så derfor virkede linket ikke.

Men jeg har et tillægs spørgsmål:
I modtager mailen ser linket til den uploadet fil således ud:
<a href="http://www.deedee-dk.com/nyhedsbrev/billeder/1183829056.jpg">preloadlogo.jpg</a>

Hvordan for jeg det til at se ordentligt ud, så man ikke kan hele html koden?

PHP koden som generere ovenstående ser således ud:
($FileUpload ? "\nAttached File: \n<a href=\"$FullPath\">$BaseName</a>" : "")
Avatar billede Slettet bruger
09. juli 2007 - 15:23 #7
Kan jeg ikke få jer alle 3 til at skrive et svar, så kan i dele pointene
Avatar billede coderdk Praktikant
09. juli 2007 - 15:34 #8
(c:
Avatar billede cronick Nybegynder
09. juli 2007 - 17:31 #9
(:
Avatar billede Slettet bruger
10. juli 2007 - 14:37 #10
Mangler stadig lige et svar fra den sidste, men hvis han ikke svare i løbet af dagen, så er det bare ærgeligt.
Men er der en af jeg som kan svaret på mit "link" spørgsmål?
Avatar billede coderdk Praktikant
10. juli 2007 - 14:44 #11
Jeg er ikke sikker på at jeg forstår dit spørgsmål... Sætter du Content-Type til text/html; charset=iso-8859-1 ?
Avatar billede Slettet bruger
10. juli 2007 - 16:54 #12
Det jeg mener er: At når jeg sender nyhedsbrev vha. det øverste script, og med det nyhedsbrev sender jeg også et billede.
Linket til det billede ser ud som beskrevet lige ovenfor, men vil gerne have det til at der bare står 'preloadlogo.jpg' istedet for at man kan se hele stien til hvor billedet bliver gemt.

Håber det er til at forstå :)
Avatar billede coderdk Praktikant
10. juli 2007 - 20:19 #13
Nope, jeg forstår stadig ikke - Vil du ikke have HTML i din mail eller hvad? For så kan du jo bare køre indholdet af mailen igennem strip_tags()
Avatar billede Slettet bruger
10. juli 2007 - 21:21 #14
Nej, jeg vil ikke have at man kan se HTML'en kun navnet på filen, men hvordan gør man med sådan et strip_tags()?
Avatar billede coderdk Praktikant
10. juli 2007 - 21:42 #15
$text = "<b>Fed tekst</b>! <img src='http://site/billlede.jpg'> hej!";
echo strip_tags( $text );
Avatar billede coderdk Praktikant
10. juli 2007 - 21:42 #16
(Udskriver: Fed tekst! hej!)
Avatar billede Slettet bruger
11. juli 2007 - 16:35 #17
cool, tak, det prøver jeg lige
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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