Avatar billede htmlkongen Novice
13. april 2004 - 16:50 Der er 1 løsning

Hvad skal der ændres?

Jeg skal ha lavet en uploadfil sådan at folk kan uploade direkte til min FTP.

1) Hvad sker der ændres i følgende?
2) Hvad skal filen hedde som jeg gemmer?
3) Hvad skal I ha at vide for at det vil virke. Kode til ftp etc.
4) Skriv venligst med STORT der hvor jeg bevidst skal ændre noget, så skriv: HER SKAL DIN KODE STÅ TIL DIN FTP OG HER SKAL DIN BRUGER STÅ. osv. Jeg er meget newbie hvad agår PHP , så vær sød at være konkret :)

<?php

/* Funktion der åbner en forbindelse til en specifik database */

function aabn_forbindelse() {
   
    $server = "localhost";
    $bruger = "";
    $kodeord = "";
    $database = "";

    if (!mysql_connect("$server", "$bruger", "$kodeord")) {
        udskriv_fejl("Kunne ikke oprette en forbindelse til MySQL");
    }
   
    if (!mysql_select_db("$database")) {
        udskriv_fejl("Kunne ikke vælge databasen: $database");
    }
}

/* Funktion der klarer sql-forespørgsel der IKKE modtager data */

function sql_spoerg($query) {
   
    $resultat = mysql_query($query);

    if (!$resultat) {
        udskriv_fejl("Kunne ikke udføre: <b>$query</b>");
    }
}

/* Funktion der lukker forbindelsen til databasen */

function luk_forbindelse() {
   
    if (!mysql_close()) {
        udskriv_fejl("Kunne ikke lukke forbindelsen til MySQL");
    }
}

/* Funktion der udskriver fejl */

function udskriv_fejl($fejl) {

    echo "<p>$fejl</p>";

    if ($mysql_fejl = mysql_error()) {
        echo "<br />Fejlen er: <b>$mysql_fejl</b>";
    }

    exit;
}

/* Hovedfunktioen */

function upload_fil($fil, $overskrift, $navn, $email, $website, $beskrivelse, $underskrift, $max_stoerrelse = 100, $bibliotek = "default", $filtyper_tilladt = "default") {

    if ($bibliotek == "default") {
        $bibliotek = "/upload";
    }

    if ($filtyper_tilladt == "default") {
        $filtyper_tilladt = array("image/bmp", "image/jpeg", "image/tiff", "image/png", "image/gif", "application/pdf", "application/zip", "application/arj", "application/x-zip-compressed", "application/octet-stream");
    }

    if ($fil["size"] > 0) {
       
        $filnavn = strtolower(ereg_replace(" ", "_", $fil["name"]));
        $fil_sti = $bibliotek . "/" . $filnavn;
        $fra = $fil["tmp_name"];
        $fil_stoerrelse = filesize($fra)/1024;
        $filtype = $fil["type"];
        $fejl = "0";

        if(!in_array($filtype, $filtyper_tilladt)) {
            echo "<p>Filtypen '$filtype' er ikke tilladt. De tilladte filtyper er '" . implode("', '", $filtyper_tilladt) . "'. Filen $filnavn kan derfor ikke uploades!</p>";
            $fejl = "1";
        }
        if ($fil_stoerrelse > $max_stoerrelse) {
            echo "<p>Filen '$filnavn' er for stor og kan ikke uploades. Den fylder " . ceil($fil_stoerrelse) . " kb og der kan maximalt uploades $max_stoerrelse kb!</p>";
            $fejl = "1";
        }
        if ($fejl == "0") {
            if (file_exists(getcwd() . $fil_sti)) {
               
                $pos = strrpos($filnavn, ".");
                $navn = substr($filnavn, 0, $pos);
                $type = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1));
                $i = 2;
               
                echo "<p>Filen '$filnavn' eksisterer allerede i '" . $bibliotek . "' og filen omdøbes derfor til ";
               
                while (file_exists(getcwd() . $fil_sti)) {
                    $filnavn = $navn . "(" . $i . ")." . $type;
                    $fil_sti = $bibliotek . "/" . $filnavn;
                    $i++;
                }
                echo "'$filnavn'</p>";
            }

            $til = $_SERVER["DOCUMENT_ROOT"] . $fil_sti;

            if (move_uploaded_file($fra, $til)) {
                echo "<p>Filen '$filnavn' er uploadet!</p>";
                aabn_forbindelse();
                sql_spoerg("INSERT INTO dintabel (overskrift, billedet, navn, email, website, beskrivelse, underskrift) VALUES ('$overskrift', '$fil_sti', '$navn', '$email', '$website', '$beskrivelse', '$underskrift')");
                luk_forbindelse();
            } else {
                echo "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>";
                return false;
            }
        }
    } else {
        echo "<p>Der er ikke vedhæftet nogen fil!</p>";
    }
}

?>

<html>

<head>
</head>

<body>

<div>

<?php
if ($_POST[sendknap] && $_POST[overskrift] && $_POST[navn] && $_POST[email] && $_POST[website] && $_POST[beskrivelse] && $_POST[underskrift]) {

    $fil = $_FILES["upfil"];
    $max_stoerrelse = 1000;
    $upload_mappe = "/upload/diverse";
    $filer_tilladt = array("image/pjpeg", "image/bmp", "image/jpeg", "image/tiff", "image/png", "image/gif", "image/jpg");

    upload_fil($fil, $overskrift, $navn, $email, $website, $beskrivelse, $underskrift, $max_stoerrelse, $upload_mappe, $filer_tilladt);

} else {
?>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<fieldset>
  Overskrift<br />
  <input type="text" name="overskrift" value="<?php echo "$overskrift"; ?>" size="30" /><br />
  Navn<br />
  <input type="text" name="navn" value="<?php echo "$navn"; ?>" size="30" /><br />
  Email<br />
  <input type="text" name="email" value="<?php echo "$email"; ?>" size="30" /><br />
  Website<br />
  <input type="text" name="website" value="<?php echo "$website"; ?>" size="30" /><br />
  Beskrivelse<br />
  <input type="text" name="beskrivelse" value="<?php echo "$beskrivelse"; ?>" size="30" /><br />
  Underskrift<br />
  <input type="text" name="underskrift" value="<?php echo "$underskrift"; ?>" size="30" /><br />
  Vedhæft billede<br />
  <input type="file" name="upfil" size="30" /><br />
  <input type="submit" name="sendknap" value="Upload" />
</fieldset>
</form>

<?php
}
?>

</div>

</body>

</html>
Avatar billede htmlkongen Novice
15. april 2004 - 07:37 #1
Well :)
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