Autor Zpráva
pito
Profil
Zdravím,
Mám administrativu přes kterou nahrávám a mažu obrázky které jsou uložené v složkách na serveru.Jenomže když chci odstranit obrázek tak mi ho smaže,ale v daabázi zůstane název obrázku a správně se to mnělo smazát taky.Kde muže být chyba? prosím o pomoc. Dík

odstranit.php
<?
if (!isset($_GET['k'])){


if (!isset($_POST['kategorie'])){
?>
<h3>Vyber kategorii</h3><br>
<form method="post">
    
     <select size="1" name="kategorie">
                              <?php require "config.php";
                              $dotaz=mysql_query("SELECT kategorie FROM slozky")or die(mysql_error());
                              while ($vysledek=mysql_fetch_array($dotaz)):
                                  echo "<option value=\"$vysledek[kategorie]\">$vysledek[kategorie]</option>";
                                endwhile;?>
                                  echo "</select>
        <input type="submit" name="kat" value="Odeslat">
  </form>

<br><br><br>


<?php
}else{
$kat=$_POST['kategorie'];
echo"<h3>Vyber obrazek k odstranění - po kliknutí na fotografií ji odstraníš </h3><br>
";
require "config.php";
$radek=mysql_query("SELECT * FROM $kat ")or die (mysql_error());
while($vysledek=mysql_fetch_array($radek)):
$img= ereg_replace(".jpg","mini.jpg",$vysledek['obrazek']);

$k=$vysledek['obrazek'];

echo "<a class=\"d\" href=\"index.php?id=odstranit&amp;k=$k&amp;kat=$kat\"><img src=\"../images/".$kat."mini/".$img."\"></a>";
endwhile;

}

}else{
echo "<p>".$_GET['k']."</p>";
  $q=$_GET['k'];
  $kat=$_GET['kat'];
    $a= ereg_replace(".jpg","mini.jpg",$q);
    $b= ereg_replace(".jpg","big.jpg",$q);
      $soubor_mini="../images/".$kat."mini/".$a."";
      $soubor_big="../images/".$kat."big/".$b."";
        unlink($soubor_mini);
        unlink($soubor_big);
          require "config.php";
          mysql_query("DELETE FROM $kat WHERE obrazek='$k'");
}
?>
Tori
Profil
$k=$vysledek['obrazek'];
"index.php?id=odstranit&amp;k=$k"
$q=$_GET['k'];
"DELETE FROM $kat WHERE obrazek='$q'"
Používejte escapování (mysql_real_escape_string pro řetězce, intval pro čísla), jinak vám každý šťoural smaže všechny fotky jedním dotazem. Bylo by lepší jako identifikátor fotky používat číselné ID, jak v DB, tak v URL.

edit: Lepší návrh DB by byl tento: tabulka kategorií (id_kat, název), tabulka fotek (id_fotky, id_kat, filename,...). Stačily by vám tak jen dvě tabulky, bez ohledu na to, kolik budete mít kategorií.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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