Avatar billede trevi Nybegynder
03. juni 2005 - 10:09 Der er 21 kommentarer og
1 løsning

Upload virker ikke helt?

Hej

Jeg har et uploade script som skal ligge en fil op på min server samt skriver adr. og andre oplysninger ind i min DB. Det virker fint. det er ikke det.. Men jeg vil gerne have det sådan at man undlade at ligge en fil op når man opretter andre data med den, for det er ikke altid der er et billede.. Lige nu siger den "Ingen fil valgt tilbage" .. Men stadig ligger den det op i min DB. Men den skriver stadig denne
$upfile = "http://xxxxxxxxxx.dk/xxx/xxx/pic/" . $_FILES['upfile']['name'];
op i min DB

hele siden ser sådan her ud:

if (isset($_FILES['upfile'])) {
  $filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream"); 
  if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") {
    echo"Ingen fil valgt! <a href=\"#\">tilbage</a>";
  } elseif (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "Ikke tilladt til upload! <a href=\"#.php\">tilbage</a>";
  }
  if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {
    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
      $uldir = '../pics/xxx/';
      $ulfile = $uldir.basename($_FILES['upfile']['name']);
      move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile);
    }
  }
}
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$dato = date("d/m-y - H:i:s");
$upfile = $_POST['upfile'];
$upfile = "http://xxxxxxxxxx.dk/xxx/xxx/pic/" . $_FILES['upfile']['name'];
mysql_query("INSERT INTO xxxx (xx, xx, xx, xx, xx, xx, xx) VALUES ('$xx, '$xx, '$xx, '$xx, '$xx, '$xx, '$xx)") or die(mysql_error());
echo "<div align=\"center\" class=\"tekst_linkThin\">Ting blev oprettet</div>";
Avatar billede sukos Juniormester
03. juni 2005 - 10:37 #1
Nu kan jeg ikke lige gennemskue $uldir og $ulfile, men du kan:

if (trim($_FILES['upfile']['name']) !="")) {

$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream");

    if (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "Ikke tilladt til upload! <a href=\"#.php\">tilbage</a>";
    exit();
    }

    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
      $uldir = '../pics/xxx/';
      $ulfile = $uldir.basename($_FILES['upfile']['name']);
      $upfile = "den værdi som gemems i db";
      move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile);
    }else{
    $upfile = "";
    }

}else{
$upfile = "";
}
Avatar billede trevi Nybegynder
03. juni 2005 - 10:52 #2
if (trim($_FILES['upfile']['name']) !="")) {

$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream");

    if (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "Ikke tilladt til upload! <a href=\"#.php\">tilbage</a>";
    exit();
    }

    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
      $uldir = '../pics/xxx/';
      $ulfile = $uldir.basename($_FILES['upfile']['name']);
      $upfile = "den værdi som gemems i db";
      move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile);
    }else{
    $upfile = "";
    }

}else{
$upfile = "";
}
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$dato = date("d/m-y - H:i:s");
$upfile = $_POST['upfile'];
$upfile = "http://xxxxxxxxxx.dk/xxx/xxx/pic/" . $_FILES['upfile']['name'];
mysql_query("INSERT INTO xxxx (xx, xx, xx, xx, xx, xx, xx) VALUES ('$xx, '$xx, '$xx, '$xx, '$xx, '$xx, '$xx)") or die(mysql_error());
echo "<div align=\"center\" class=\"tekst_linkThin\">Ting blev oprettet</div>";

så koden kommer til at se sådan herud?
Avatar billede sukos Juniormester
03. juni 2005 - 10:58 #3
Nej da, du ændrer jo $upfile igen!
Og b.t.w. er det ikke så smart at bruge et navn på en variabel som allerede er sat.
(+ en lille tilføjelse mere...)


if (trim($_FILES['upfile']['name']) !="")) {

$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream");

    if (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "Ikke tilladt til upload! <a href=\"#.php\">tilbage</a>";
    exit();
    }

    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
      $uldir = '../pics/xxx/';
      $ulfile = $uldir . $_FILES['upfile']['name'];
   
          if(move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile)) {
          $newfile = "den værdi du vil gemme i DB";
          }else{
          $newfile = "";
          }

    }else{
    $newfile = "";
    }

}else{
$newfile = "";
}

$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$dato = date("d/m-y - H:i:s");


mysql_query("INSERT INTO xxxx (xx, xx, xx, xx, xx, xx, xx) VALUES ('$xx, '$xx, '$xx, '$xx, '$xx, '$xx, '$xx)") or die(mysql_error());
echo "<div align=\"center\" class=\"tekst_linkThin\">Ting blev oprettet</div>";

Det er så
          $newfile = "den værdi du vil gemme i DB";
du skal ændre til det du vil gemme i DB
Avatar billede sukos Juniormester
03. juni 2005 - 11:01 #4
Eller:

$newfile = "";

if (trim($_FILES['upfile']['name']) !="")) {

$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream");

    if (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "Ikke tilladt til upload! <a href=\"#.php\">tilbage</a>";
    exit();
    }

    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
      $uldir = '../pics/xxx/';
      $ulfile = $uldir . $_FILES['upfile']['name'];
 
        if(move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile)) {
        $newfile = "den værdi du vil gemme i DB";
        }
    }
}
Avatar billede trevi Nybegynder
03. juni 2005 - 11:04 #5
er det så newfile jeg skal ligge op i min db, altså $newfile = $_POST['newfile'];

eller er det stadig "$upfile = $_POST['upfile'];"

mysql_query("INSERT INTO xxxx (newfile, xx, xx, xx, xx, xx, xx) VALUES ('$newfile, '$xx, '$xx, '$xx, '$xx, '$xx, '$xx)") or die(mysql_error());
Avatar billede sukos Juniormester
03. juni 2005 - 11:16 #6
Hvis du bruger mit sidste eks., så er det $newfile + de andre ting du vil gemme, men som ikke har noget som sådan med selve filupload at gøre.

Grunden til at det er dumt at bruge navnet $upfile er fordi det navn jo bruges i uploadformen.
Og på servere med register_globals sat til On, kan der nemt opstå "forvirring"
Avatar billede trevi Nybegynder
03. juni 2005 - 11:19 #7
okay, det var jeg ikke klar over. så jeg skal ændre upfile til newfile? undskyld jeg spørger dumt.. men vil bare være sikker
Avatar billede sukos Juniormester
03. juni 2005 - 11:31 #8
Jups!

Men nu siger du "ændre", vil da gerne se scriptet du vil prøve :O)

Og der er jo ingen dumme spm. kun dumme svar! :O)
Avatar billede trevi Nybegynder
03. juni 2005 - 11:31 #9
den siger fejl her:

if (trim($_FILES['upfile']['name']) !="")) {
Avatar billede trevi Nybegynder
03. juni 2005 - 11:32 #10
med at sige "ændre" mener jeg om jeg skal ændre feltet i min DB fra upfile til newfiel også :)
Avatar billede sukos Juniormester
03. juni 2005 - 11:32 #11
Ja, der er sgu lige ) for meget:

if (trim($_FILES['upfile']['name']) !="") {
Avatar billede sukos Juniormester
03. juni 2005 - 11:33 #12
Nåh, nej, det behøver du ikke!
Det er php variabler der kan gi' bøvl
Avatar billede sukos Juniormester
03. juni 2005 - 11:34 #13
Og så mangler du jo iøvrigt en del ' i din query.
Avatar billede trevi Nybegynder
03. juni 2005 - 11:48 #14
Det virker ikke helt med at den skal fortælle ind i min DB hvor billedet ligger.. den skriver ik noget i feltet "upfile".. men den ligger fint billedet op
Avatar billede sukos Juniormester
03. juni 2005 - 12:00 #15
Prøv a tvise den kode du bruger
Avatar billede trevi Nybegynder
03. juni 2005 - 12:02 #16
if ($_POST['koll'] == 1) {
include 'db.php';

$newfile = "";

if (trim($_FILES['upfile']['name']) !="") {

$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream");

    if (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "Ikke tilladt til upload! <a href=\"#.php\">tilbage</a>";
    exit();
    }

    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
      $uldir = '../pics/vrag/';
      $ulfile = $uldir . $_FILES['upfile']['name'];
 
        if(move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile)) {
        $newfile = "den værdi du vil gemme i DB";
        }
    }
}
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$dato = date("d/m-y - H:i:s");
$upfile = $_POST['upfile'];
mysql_query("INSERT INTO xxxx (upfile, xx, xx, xx, xx, xx, xx) VALUES ('$upfile, '$xx, '$xx, '$xx, '$xx, '$xx, '$xx)") or die(mysql_error());
echo "<div align=\"center\" class=\"tekst_linkThin\">Ting blev oprettet</div>";
Avatar billede sukos Juniormester
03. juni 2005 - 12:04 #17
if ($_POST['koll'] == 1) {
include 'db.php';

$newfile = "";

if (trim($_FILES['upfile']['name']) !="") {

$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png", "application/x-zip-compressed", "application/octet-stream");

    if (!in_array($_FILES['upfile']['type'], $filetyper)) {
    echo "Ikke tilladt til upload! <a href=\"#.php\">tilbage</a>";
    exit();
    }

    if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {
      $uldir = '../pics/vrag/';
      $ulfile = $uldir . $_FILES['upfile']['name'];

        if(move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile)) {
        $newfile = "den værdi du vil gemme i DB";
        }
    }
}
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$xx = $_POST['xx'];
$dato = date("d/m-y - H:i:s");

mysql_query("INSERT INTO xxxx (upfile, xx, xx, xx, xx, xx, xx) VALUES ('$newfile', '$xx', '$xx', '$xx', '$xx', '$xx', '$xx')") or die(mysql_error());
echo "<div align=\"center\" class=\"tekst_linkThin\">Ting blev oprettet</div>";
Avatar billede trevi Nybegynder
03. juni 2005 - 12:13 #18
lige nu tager den tmp_name at ligger op.. er det fordi jeg skal ændre denne:

VALUES ('$newfile', '$xx' ......... ??

men har jo ik dette felt "newfile"
Avatar billede trevi Nybegynder
03. juni 2005 - 12:17 #19
VENT.. det var mig der ikke lige brugte hovedet :D 2 sek
Avatar billede trevi Nybegynder
03. juni 2005 - 12:31 #20
Det virker nu :D:D.. smider du et svar
Avatar billede sukos Juniormester
03. juni 2005 - 13:14 #21
johh, kan jeg godt.

Der er nu ingen problemer i at stille spm. om noget andet også!
Hvis nogen ikke kan li' det, kan du jo blot oprette et nyt spm. :O)
Avatar billede trevi Nybegynder
06. juni 2005 - 08:31 #22
ja det er rigtigt ;)..

-lukket-
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