Zadejte hledaný výraz...

Smazání složky na ftp

table
verified
rating uzivatele
14. 1. 2015 14:06:06
Dobrý den,
chtěl bych poprosit někoho o pomoc.
Udělal jsem si script na mazání v databázi,:
include_once('../settings.php');
if(isset($_GET)) {
$db = htmlSpecialChars($_GET,ENT_QUOTES);
$inter = htmlSpecialChars($_GET,ENT_QUOTES);
$query = "DELETE FROM $db WHERE Contentgroup = '$inter'";
mysql_query($query) or die("Error in query $query");
$_SESSION = "Smazán
interpret: $inter z databáze $db
";
header("Location: index.php");
}
else
$_SESSION = "Něco je špatně
";
header("Location: index.php");
?>
Potřeboval bych do toho scriptu přidat ještě kod na smazání složky na ftp.
Složka by se měla mazat podle $inter
Prosím jestli by se tu někdo našel jestli by mi to nedopsal nebo aspoň neodkázal na nějaké hotové řešení.
Budu moc vděčný
14. 1. 2015 14:06:06
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082929
David Pohludek
verified
rating uzivatele
(3 hodnocení)
14. 1. 2015 14:09:16
Treba tady
Jinak je to rmdir('cesta');
14. 1. 2015 14:09:16
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082928
Malcánek Jan
verified
rating uzivatele
(4 hodnocení)
14. 1. 2015 14:09:51
Já k tomuto vždy používal funkce unlink.http://php.net/manual/en/function.unlink.php. V komentářích je i rekursivní funkce na smazání celé složky s obsahem.
14. 1. 2015 14:09:51
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082927
table
verified
rating uzivatele
14. 1. 2015 14:13:20
Takže např. to stačí takto?
$mask = "$inter"
array_map( "unlink", glob( $mask ) );
Já se v tom totiž vůbec nevyznám
14. 1. 2015 14:13:20
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082926
David Pohludek
verified
rating uzivatele
(3 hodnocení)
14. 1. 2015 14:14:08
Napsal table;1158187
Takže např. to stačí takto?
$mask = "$inter"
array_map( "unlink", glob( $mask ) );
Já se v tom totiž vůbec nevyznám
Unlink maze jenom soubory. Rmdir smaze slozku
Malacanek nejspis myslel toho
14. 1. 2015 14:14:08
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082925
table
verified
rating uzivatele
14. 1. 2015 14:18:40
Takže za to $dir mám dosadit tu proměnou $inter ve které je název té složky?
14. 1. 2015 14:18:40
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082924
David Pohludek
verified
rating uzivatele
(3 hodnocení)
14. 1. 2015 14:21:11
Moc sem na to nekoukal ale tohle by snad mohlo fungovat :)
14. 1. 2015 14:21:11
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082923
Malcánek Jan
verified
rating uzivatele
(4 hodnocení)
14. 1. 2015 14:21:38
Napsal Pohludek;1158188
Unlink maze jenom soubory. Rmdir smaze slozku
Malacanek nejspis myslel toho
Ano, podobná funkce je popsaná i v mnou poslaném odkazu (asi je to jedno, protože na smazání složky s obsahem je potřeba jak unlink, tak rmdir)-
Napsal table;1158191
Takže za to $dir mám dosadit tu proměnou $inter ve které je název té složky?
Ne název, ale celou cestu ke složce.
---------- Příspěvek doplněn 14.01.2015 v 14:24 ----------
Napsal Pohludek;1158192
Moc sem na to nekoukal ale tohle by snad mohlo fungovat :)
Podle mě těsně vedle :D Tak jak jsem to pochopil já bych dal rrmdir($inter); za mysql_query.
14. 1. 2015 14:21:38
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082922
David Pohludek
verified
rating uzivatele
(3 hodnocení)
14. 1. 2015 14:27:23
Napsal malacanek;1158193
Podle mě těsně vedle :D Tak jak jsem to pochopil já bych dal rrmdir($inter); za mysql_query.
ano pravda, proto ze takhle se smaze slozka i kdyz neprojde smazani v DB. Navic tam ma bejt cesta a ne $inter, takze za me takhle:
14. 1. 2015 14:27:23
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082921
table
verified
rating uzivatele
14. 1. 2015 14:33:56
Mám ještě problém s tou cestou.
Ta cesta by měla být takto?
$path = __DIR__ .htmlSpecialChars($_GET,ENT_QUOTES);
Asi bych se měl zmínit i o tom že tasložka není prázdná, jsou v ní obrázky.
Měla by se smazat celá i s obrázky
14. 1. 2015 14:33:56
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082920
David Pohludek
verified
rating uzivatele
(3 hodnocení)
14. 1. 2015 14:39:08
Napsal table;1158199
Mám ještě problém s tou cestou.
Ta cesta by měla být takto?
$path = __DIR__ .htmlSpecialChars($_GET,ENT_QUOTES);
Ja nevim kde ta slozka je na FTP ulozana a jak se menuje :) To zjistis na FTP
Ve windows by desta vypadala treba takhle "C:Program Fileszzz" a slozka zzz se smaze.
14. 1. 2015 14:39:08
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082919
table
verified
rating uzivatele
14. 1. 2015 14:40:37
Napsal Pohludek;1158202
Ja nevim kde ta slozka je na FTP ulozana a jak se menuje :) To zjistis na FTP
Ta složka je přímo v rootu webu, a to $_GET je její jméno
---------- Příspěvek doplněn 14.01.2015 v 14:45 ----------
Mohl by fungovat tento script:
include_once('../settings.php');
if(isset($_GET)) {
$db = htmlSpecialChars($_GET,ENT_QUOTES);
$inter = htmlSpecialChars($_GET,ENT_QUOTES);
$query = "DELETE FROM $db WHERE Contentgroup = '$inter'";
mysql_query($query) or die("Error in query $query");
$_SESSION = "Smazán
interpret: $inter z databáze $db
";
header("Location: index.php");
$files = scandir($inter);
foreach($files as $file){
if($file != '.' && $file != '..' && file_exists($inter.$file)){
unlink($file);
}
}
rmdir($inter);
}
else {
$_SESSION = "Něco je špatně
";
header("Location: index.php");
}
?>
Bojím se to zkoušet abych si nesmazal něco jiného, proto se ptám
14. 1. 2015 14:40:37
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082918
David Pohludek
verified
rating uzivatele
(3 hodnocení)
14. 1. 2015 14:54:15
Napsal table;1158203
Ta složka je přímo v rootu webu, a to $_GET je její jméno
---------- Příspěvek doplněn 14.01.2015 v 14:45 ----------
Mohl by fungovat tento script:
include_once('../settings.php');
if(isset($_GET)) {
$db = htmlSpecialChars($_GET,ENT_QUOTES);
$inter = htmlSpecialChars($_GET,ENT_QUOTES);
$query = "DELETE FROM $db WHERE Contentgroup = '$inter'";
mysql_query($query) or die("Error in query $query");
$_SESSION = "Smazán
interpret: $inter z databáze $db
";
header("Location: index.php");
$files = scandir($inter);
foreach($files as $file){
if($file != '.' && $file != '..' && file_exists($inter.$file)){
unlink($file);
}
}
rmdir($inter);
}
else {
$_SESSION = "Něco je špatně
";
header("Location: index.php");
}
?>
Bojím se to zkoušet abych si nesmazal něco jiného, proto se ptám
Jestli $_GET ma stejnou hodnotu jako jmeno slozky v rootu tak bych udelal tohle
include_once('../settings.php');
# recursively remove a directory
function rrmdir($dir) {
foreach(glob($dir . '/*') as $file) {
if(is_dir($file))
rrmdir($file);
else
unlink($file);
}
rmdir($dir);
}
if(isset($_GET)) {
$db = htmlSpecialChars($_GET,ENT_QUOTES);
$inter = htmlSpecialChars($_GET,ENT_QUOTES);
$query = "DELETE FROM $db WHERE Contentgroup = '$inter'";
mysql_query($query) or die("Error in query $query");
$_SESSION = "Smazán
interpret: $inter z databáze $db
";
rrmdir($_GET);
header("Location: index.php");
}
else
$_SESSION = "Něco je špatně
";
header("Location: index.php");
?>
Teda za predpokladu ze script bezi take z rootu. Jestli ne tak se musi pred $_GET nastavit cesta (treba ../ )
14. 1. 2015 14:54:15
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082917
table
verified
rating uzivatele
14. 1. 2015 15:02:32
Takže nyní to mám takto:
include_once('../settings.php');
# recursively remove a directory
function rrmdir($dir) {
foreach(glob($dir . '/*') as $file) {
if(is_dir($file))
rrmdir($file);
else
unlink($file);
}
rmdir($dir);
}
if(isset($_GET)) {
$db = htmlSpecialChars($_GET,ENT_QUOTES);
$inter = htmlSpecialChars($_GET,ENT_QUOTES);
$query = "DELETE FROM $db WHERE Contentgroup = '$inter'";
mysql_query($query) or die("Error in query $query");
$_SESSION = "Smazán
interpret: $inter z databáze $db
";
rrmdir('../'.$_GET);
header("Location: index.php");
}
else
$_SESSION = "Něco je špatně
";
header("Location: index.php");
Jelikož script není v rootu webu tak jsem cestu upravil takto:
rrmdir('../'.$_GET);
Ale ani tak se složka nesmaže a script proběhne.
Napadá mě že může být problém v tom že složka obsahuje soubory typu jpg, tzn.obrázky
---------- Příspěvek doplněn 14.01.2015 v 16:55 ----------
Vyřešeno, měl jsem špatně cestu celou dobu,
správná cesta měla být
rrmdir('../../'.$_GET);
Díky za Váš čas
14. 1. 2015 15:02:32
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082916
David Pohludek
verified
rating uzivatele
(3 hodnocení)
15. 1. 2015 08:17:06
Napsal table;1158215
Takže nyní to mám takto:
include_once('../settings.php');
# recursively remove a directory
function rrmdir($dir) {
foreach(glob($dir . '/*') as $file) {
if(is_dir($file))
rrmdir($file);
else
unlink($file);
}
rmdir($dir);
}
if(isset($_GET)) {
$db = htmlSpecialChars($_GET,ENT_QUOTES);
$inter = htmlSpecialChars($_GET,ENT_QUOTES);
$query = "DELETE FROM $db WHERE Contentgroup = '$inter'";
mysql_query($query) or die("Error in query $query");
$_SESSION = "Smazán
interpret: $inter z databáze $db
";
rrmdir('../'.$_GET);
header("Location: index.php");
}
else
$_SESSION = "Něco je špatně
";
header("Location: index.php");
Jelikož script není v rootu webu tak jsem cestu upravil takto:
rrmdir('../'.$_GET);
Ale ani tak se složka nesmaže a script proběhne.
Napadá mě že může být problém v tom že složka obsahuje soubory typu jpg, tzn.obrázky
---------- Příspěvek doplněn 14.01.2015 v 16:55 ----------
Vyřešeno, měl jsem špatně cestu celou dobu,
správná cesta měla být
rrmdir('../../'.$_GET);
Díky za Váš čas
Rad sem pomohl :)
15. 1. 2015 08:17:06
https://webtrh.cz/diskuse/smazani-slozky-na-ftp/#reply1082915
Pro odpověď se přihlašte.
Přihlásit