Autor Zpráva
Jiko
Profil *
Zdravím,
po smazaná souboru se mi vypíše error, který patří úplně k jiné funkci. Vypíše se mi, že "Koncovka souboru musí být jedna z:" a zároveň se vypíše i správné oznámení, že "Soubor byl úspěšně smazán". Jak bych se měl prvního hlášení zbavit, který je v té chvíli úplně zbytečné.

<?php
$koncovky = array('png', 'jpg', 'jpeg', 'gif');   
$fcesta = "fotogalerie/". $_FILES["fsoubor"]["name"];
if (!isset($fsoubor)) {
    if (!in_array(strtolower(pathinfo($_FILES['fsoubor']['name'], PATHINFO_EXTENSION)), $koncovky)) {
        echo "Koncovka souboru musí být jedna z: " . implode(", ", $koncovky);
    
    } else {
        if (move_uploaded_file($_FILES['fsoubor']['tmp_name'], $fcesta)) {
 
            print "<div class=\"fotogalerie_up_table\">";
            print "<table border=\"1\" width=\"350\" height=\"250\">";
            print "<tr><td>File Name :</td><td>".$_FILES['fsoubor']['name']."</td></tr>";
            print "<tr><td>File Size :</td><td>".$_FILES['fsoubor']['size']."</td></tr>";
            print "<tr><td>File Type :</td><td>".$_FILES['fsoubor']['type']."</td></tr>";
            print "<tr><td>Status:    </td>"."<td>Ok</td></tr></table>";
            print '<form method="post">';
            print '<p style="text-align: left; margin: 0;">Smazat fotku: <input style="float: none; display: inline;" type="submit" name="up_delete" value="Smazat"></p>';
            print '<input type="hidden" name="filename" value="' . $_FILES['fsoubor']['name'] . '">';
            print '</form>';
            print "</div>";
            print "<div class=\"fotogalerie_up_obrazek\">";
            echo  "<a href=\"$fcesta\" target=\"_blank\"><img src=\"$fcesta\" height=\"300\" border=\"0\"></a>";
            print "</div>";
        } else {
            echo "Error";
        }
    }
}


if (isset($_POST['up_delete'])){
    unlink("fotogalerie/". $_POST['filename']);
    echo "<br>Soubor byl úspěšně smazán!";
}

print '<p><a href="login.php?id=fotogalerie">Zpět</a></p>';

?>
Werewolf
Profil
Máš špatně podmínku na řádku 4:

Nevidím definovanou proměnnou $fsoubor. Předpokládám, že jsi chtěl použít register globals. Nepoužívej register globals.

Podmínka doslovně přeložena: „Pokud není definovaná proměnná $fsoubor, udělej tohle a tamto.“ (předpokládám, že má jít o $_FILES['fsoubor']).
To znamená, že pokud uživatel nenahrát soubor, skript se bude chovat, jako by se soubor nahrát měl.
Celé to vede k tomu, že $_FILES['fsoubor']['name'] je prázdná. Když je prázdná, nemůže mít na konci png, jpg, jpeg ani gif.

Problém by se měl vyřešit nahrazením řádku 4 za:
if(isset($_FILES['fsoubor']) && !empty($_FILES['fsoubor'])) {


Není zač...
Jiko
Profil *
Zdravím,
tak dneska jsem se dostal k tomu abych na stránce pracoval a váš kod funguje. Díky moc za radu

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0