Avatar billede lsskaarup Nybegynder
18. august 2004 - 12:13 Der er 3 kommentarer og
1 løsning

Fanger ikke file-upload

Jeg har et træls problem, for at sige det på godt jysk.

Jeg har lavet en side, hvor brugeren kan uploade, et billede og noget tekst hertil. Disse uploads skal sende kunne ændres, og det fungere også godt nok, i en anden fil jeg har, men bare ikke i denne. Nu har jeg efterhånden fået stiret mig blind på problemet, så jeg tænkte at I sikkert kunne hjælpe mig.

Koden som tilhører redigeringen er her:

if (isset($_POST['submit']) && $_POST['submit'] == "Upload" && $_POST['rettype'] == "redigere") {
    $source = $_FILES['personBillede']['tmp_name'];
    $navn = $_POST['personNavn'];
    $stilling = $_POST['personStilling'];
    $afdeling = $_POST['personAfdeling'];
   
    if ( isset($_POST['personBillede']) ) {
        echo "sådan";
    } else {
        echo "lort";
    }
    if (isset($_POST['personBillede'])) {//Fanger hvis billede ikke skal ændres
        echo "hej";
        if (is_uploaded_file($source)) {
            if (tjektype($_FILES['personBillede']['type'])) {
                $dest = $uploaddir . $_FILES['personBillede']['name'];
                $dest = tjekfilnavn($dest);
                //Sletning af det tidligere billede
                $queryGammelSti = mysql_query("SELECT sti FROM RS_Medarbejder WHERE personId = $_POST[personId]");
                $gammelSti = mysql_fetch_array($queryGammelSti);
                if (file_exists($gammelSti[sti])) {//Tjekker om den gamle fil findes, så den kan slettes hvis true
                    if (move_uploaded_file($source, $dest)) {
                        unlink($gammelSti[sti]);//Sletter det gamle billede
                        mysql_query("UPDATE RS_Medarbejder SET navn='$navn', stilling='$stilling',
                                    afdeling='$afdeling', sti='$dest' WHERE id = '$_POST[personId]'");
                        //header("location: adminPerson.php?personId=$_POST[personId]");
                    } else {
                      $besked = "Der blev ikke gemt noget";
                    }
                } else {
                    $besked = "Du prøvede at slette en fil som ikke findes";
                }
            } else {
                $besked = "Du prøvede at gemme et billedeformat som ikke er tilladt. Du kan gemme billeder i JPEG og PNG formaterne.";
            }
        } else {
            $besked = "Ulovlig handling!";
        }
    } else { //Opdater info hvis ikke billedet skal ændres
        echo "ikke sat";
        mysql_query("UPDATE RS_Medarbejder SET navn='$navn', stilling='$stilling',
                    afdeling='$afdeling' WHERE id = '$_POST[personId]'");
//        header("location: adminPerson.php?personId=$_POST[personId]");
    }
}

og koden fra formen er her :

                                                    <form name="admin" method="post" action="<?echo $PHP_SELF?>" enctype="multipart/form-data">
                                                    <? if (isset($_GET[personId])) {?>
                                                        <table width="510" border="0" cellpadding="0" cellspacing="0">
                                                            <tr>
                                                                <td><a href="adminPersonale.php" target="_self">Tilbage til personaleoversigt</a></td>
                                                            </tr>
                                                            <tr>
                                                                <td align="left" valign="top" Overskrift="Overskrift"></td>
                                                            </tr>
                                                            <tr>
                                                                <td align="left" valign="top" background=""></td>
                                                            </tr>
                                                            <tr>
                                                                <td align="left" valign="top" background=""></td>
                                                            </tr>
                                                            <tr>
                                                                <td align="center" valign="top" background="" width="482" height="336">
                                                                    <table>
                                                                        <? $person = mysql_query("SELECT * FROM RS_Medarbejder WHERE id = '$_GET[personId]'");
                                                                        while ($personen = mysql_fetch_array($person)){?>
                                                                            <tr>
                                                                                <td>Navn:</td><td colspan="3"><input name="personNavn" type="text" value="<?=$personen[navn]?>" maxlength="50" size="50"></td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>Stilling:</td><td colspan="3"><input name="personStilling" type="text" value="<?=$personen[stilling]?>" maxlength="50" size="50"></td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>Afdeling:</td><td colspan="3"><input name="personAfdeling" type="text" value="<?=$personen[afdeling]?>" maxlength="50" size="50"></td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>Nuværende billede:</td><td><img src="<?=$personen[sti]?>" height="168" width="123"></td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td>Nyt billede:</td><td colspan="3"><input name="personBillede" type="file" size="37"></td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td><input name="rettype" type="hidden" value="redigere"><input name="personId" type="hidden" value="<?=$_GET[personId]?>"><input name="submit" type="submit" value="Upload"></td>
                                                                            </tr>
                                                                            <tr>
                                                                                <td><?=$besked?></td>
                                                                            </tr>
                                                                        <? }?>
                                                                    </table>
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td width="510" align="left" valign="top" background=""></td>
                                                            </tr>
                                                        </table>
                                                    <? } else {?>
til oprettelse af ny medarbejder
<?}?>
</form>

Det er "isset($_POST['personBillede'])" som er problemet, og I kan nok se at jeg har været ved at tjekke om den bliver fanget, hvilket den ikke gør???
Avatar billede detox Nybegynder
18. august 2004 - 12:24 #1
Den skal 'fanges' med $_FILES array'et.
Avatar billede detox Nybegynder
18. august 2004 - 12:26 #2
Hvilket du osse gør rigtigt her:

$source = $_FILES['personBillede']['tmp_name'];
og:
if (is_uploaded_file($source)) {
Avatar billede lsskaarup Nybegynder
18. august 2004 - 12:47 #3
Okay, så synes jeg bare det er mærkeligt, at det virker i en anden side, jeg har lavet, men anyway, nu er den også blevet rettet. Tak for hjælpen, jeg vidste der var en som kunne løse problemet for. Det er jo ikke så'n når man ikke kan se skoven for bare træer ;-)

Kast et svar.
Avatar billede detox Nybegynder
18. august 2004 - 12:48 #4
Velbekommen
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