Avatar billede davidskp Nybegynder
14. oktober 2004 - 13:54 Der er 2 kommentarer og
1 løsning

Upload script

Jeg har følgende upload script hvor folk kan uploade .cfg filer. Det virkede fint før serveren valgte at sætte register_globals = off...jeg har prøvet at rette scriptet men kan ikke få det til at virke med de nye settings. Er der nogen som kan finde fejlen(e)?

<?
include("head.inc");

echo "<br>";

$userfile = $_POST['userfile'];
$userfile_name = basename($userfile);
$bruger = $_COOKIE['bruger'];

if ($_GET['action'] == "slet") {
if (file_exists("configs/$bruger.cfg") == true) {
unlink("configs/$bruger.cfg");
echo "<center>Din config er nu slettet fra serveren.<br><br><br><a href=\"java script:history.back()\">Tilbage</a></center>";
}
else echo "<center>Du har ingen config liggende på serveren.</center>";
}
else {

if ($_GET['action'] == "upload") {
   
    if($userfile_name == "") echo "<center><font class='red'>Fejl ved upload</font><br><br>Du har ikke valgt en fil $userfile<br><br><br><a href=\"java script:history.back()\">Tilbage</a></center>";
    else {

    $usertype = substr($userfile_name,-3);
    $usersize = round(filesize($userfile) / 1025, 0);

    if($usertype != "cfg") echo "<center><font class='red'>Fejl ved upload</font><br><br><font class='blue'>$userfile_name</font> kunne ikke uploades, da <font class='blue'>$usertype</font> ikke er en gyldig filtype. Kun filer af typen <font class='blue'>cfg</font> er gyldige.<br><br><br><a href=\"java script:history.back()\">Tilbage</a></center>";
    else {

    if($usersize > 20) echo "<center><font class='red'>Fejl ved upload</font><br><br>Filen må højst fylde <font class='blue'>20 kb</font>, men din fylder <font class='blue'>$usersize kb</font>.<br><br><br><a href=\"java script:history.back()\">Tilbage</a></center></center>";
    else {

    if(move_uploaded_file($userfile, "configs/$bruger.cfg") == true) echo "<center>Din config er blevet uploadet og gemt som <a href='configs/$bruger.cfg' target='_blank'>$bruger.cfg</a>.<br><br>For senere at hente din config skal du gå ind på din profil hvor der nederst på siden er linket til den.</center>";
          else echo "<center><font class='red'>Fejl ved upload</font><br><br><font class='blue'>$userfile_name</font> kunne ikke uploades. $bruger $userfile<br><br><br><a href=\"java script:history.back()\">Tilbage</a></center></center>";
        }
        }
    }

}

else {
?>
<br>
Kun filer af typen <font class='blue'>cfg</font> kan uploades.<br>
Filen må højst fylde <font class='blue'>20 kb</font>.<br>
Når du uploader en ny config bliver den gamle automatisk overskrevet.<br>

<center>
<form action="<? echo $_SERVER['PHP_SELF']; ?>?action=upload" method="post">
<input type="file" name="userfile" style="width:300px;"><br><br>
<input type="submit" name="submit" value="Upload config">
</form>

Hvis du allerede har uploadet din config, og gerne vil slette den igen skal du klikke <a href="<? echo $_SERVER['PHP_SELF']; ?>?action=slet">her</a>.

</center>

<?
}
}
}
include("foot.inc");
?>
Avatar billede hmortensen Nybegynder
14. oktober 2004 - 18:48 #1
Prøv at læse den her guide:
http://www.webcafe.dk/artikler/php/upload/

Du mangler enctype="multipart/form-data" på din form.
En uploadet fil, ligger ikke i post arrayet, men files arrayet
$_FILES['userfile']['tmp_name']
$_FILES['userfile']['name']
Avatar billede davidskp Nybegynder
16. oktober 2004 - 17:20 #2
Jeg fik rodet lidt med det og det virker nu :) tak for hjælpen - smid lige et svar hvis du vil ha points :)
Avatar billede hmortensen Nybegynder
16. oktober 2004 - 23:20 #3
Ok :)
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