Autor Zpráva
verča
Profil *
Ahoj mám takovýto sript pro mazání uloženého souboru. A potřebovala bych ho upravit aby mi mazal více souboru najednou. Prostě aby smazal všechny soubory z adresáře,které mají stejne zaznam_id

$id=$_GET["id"];
$query = "SELECT foto FROM foto WHERE zaznam_id = '$id'";
$vysledek = mysql_query($query, $link) or die("SQL dotaz nešlo provézt");
while ($zaznam = mysql_fetch_array($vysledek))
     {
      $file=$zaznam["foto"];
      echo ($file);
      if(strpos($file, "../foto/home") === false && strpos($file, __FILE__) === false && is_file($file)) {
      unlink($file);
     }
else {
  echo "Pokus o smazani selhal";
}
$vysledek=mysql_query("delete from foto where id = $id");
$path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/../../administrace/home.php'; 
Header("Location:".$path); 
}
exit; 
__construct
Profil
Máš to rozbité.
verča
Profil *
__construct:
Proč rozbité? Tohle mi normálně funguje akorát nevím jak udělat mazání více souborů...
Taps
Profil
verča:
podívej se na funkci http://tw2.php.net/manual/en/function.readdir.php
verča
Profil *
Taps:
Tak zkouším co jsi mi poradil, tím sice načtu soubory které mám v adresáři ale stejně nevím jak mám potom ty konkrétní soubory najednou vymazat
Alphard
Profil
verča:
Hromadné mazaní PHP nepodporuje, ale když cyklem procházíte soubory v adresáři, můžet je snadno po jednom mazat pomocí unlink().
verča
Profil *
Tak jsem to myslela že bych to udělala cyklem ale bohužel sem se do toho nějak zamotala a moc nevím jak na to
Taps
Profil
verča:
zkus níže uvedené.



   if ($handle = opendir('./'.$id)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
           unlink($file);
        }
    }
    closedir($handle);
}


verča
Profil *
tak sem to upravila takto viz dole ale hlásí to tuo chybu:
Warning: opendir(./mozaika 3,12x3,12.bmp) [function.opendir]: failed to open dir: No error in C:\wamp\www\sadrokartony\www\foto\home\odstranit_home.php on line 21
řádek 21 je:
if ($handle = opendir('./'.$foto)) {


$id=$_GET["id"];
$query = "SELECT foto FROM foto WHERE zaznam_id = '$id'";
$vysledek = mysql_query($query, $link) or die("SQL dotaz nešlo provézt");
while ($zaznam = mysql_fetch_array($vysledek))
{
   $foto=$zaznam['foto'];

   if ($handle = opendir('./'.$foto)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
           unlink($file);
        }
    }
    closedir($handle);
}
$path= 'http://' . $_SERVER['SERVER_NAME'] . dirname($_SERVER['SCRIPT_NAME']) . '/../../administrace/home.php'; 
Header("Location:".$path);
} 
exit; 
Taps
Profil
verča:
ta chyba signalizuje špatně zadanou cestu k adresáři $foto. Zkus smazat tečku
xmark
Profil
verča:
if ($file != "." && $file != "..") {

Ještě napůl spím, ale nepatří tam spíš !== ?
__construct
Profil
Taps:
ta chyba signalizuje špatně zadanou cestu k adresáři $foto. Zkus smazat tečku
Skús si ešte raz prečítať tú chybovú hlášku a opraviť sa - opendir(./mozaika 3,12x3,12.bmp);
Funkciou opendir() ťažko vytvorí handler na adresár, ak mu ako parameter dá súbor.

xmark:
Ještě napůl spím, ale nepatří tam spíš !== ?
Prečo by si chcel ešte overovať typ premennej?

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:

0