
[php] Problém s FTP funkcema
Čaute. Mám nějaký takovýto kód:
@session_start();
$id = $_GET['id'];
if ( !is_numeric($id) ) exit('Neplatny parametr.');
# soubor s FTP pripojenim
include('ftp_connect.php');
# vyber z DB udaje - pozadovanou slozku se souborem
@$sql = MySQL_Query(" SELECT * FROM nejaka_db WHERE ID = '$id' LIMIT 1 ");
if ( !$sql ) exit('Nepodarilo se zpracovat sql dotaz.');
$zaznam = @MySQL_Fetch_Array($sql);
# zjisti jmeno slozky + soubor
$slozka = explode(".", $zaznam['redirect_domena']);
$jmeno_slozky = $slozka[1].'_'.$slozka[2];
$soubor = $jmeno_slozky.'/index.htm'; // soubor, ktery prijde vymazat
# presun se do slozky se souborem abys jej mohl vymazat
$slozka_se_souborem = ftp_chdir($ftp_conn, $jmeno_slozky);
/***** doposavad funkcni - nehaze zadnou chybu *****/
# smaz soubor
if ( !ftp_delete($ftp_conn, $soubor) ) exit('Nepodarilo se vymazat koncovy soubor.'); // tady me se mi to s*re
/* no a dal nevim zda je to funkcni */
# ted vymaz slozku
if ( !ftp_rmdir($ftp_conn, $jmeno_slozky) ) exit('Nepodarilo se vymazat cilovou slozku.');
ftp_close($ftp_conn); // ukonci ftp spojeni
# je to vklidu - vymazano, ted jeste vymazat udaje v DB
@MySQL_Query(" DELETE FROM spravadomen WHERE ID = '$id' LIMIT 1 ") or die('Nefaka sql dotaz na vymazani.');
/**** tak a mame to vse, presmeruj zpet s hlaskou ****/
$_SESSION['chyba'] = 'Udaj byl uspesne vymazan.';
header('Location: '.$_SERVER['HTTP_REFERRER'].'');
Háže to chybu:
Warning: ftp_delete() [function.ftp-delete]: Could not delete nejakadomena_cz/index.htm: No such file or directory in /usr/local/www/webs/com/tvorba-www/navrh/spravadomen/scripts/del_redirect.php on line 24
Nepodarilo se vymazat koncovy soubor.
Problém mi dělají ty fce ftp_delete. Buďte shovívaví, moc dlouho neprogramuju a je mě sotva 17 . Díky moc za pomoc.
Honza
Před řádek # smaz soubor si nech echem vypsat jaký je obsah proměnných $ftp_conn a $soubor?
Takže, obsah proměnné $ftp_conn je 'Resource id #7' a obsah proměnné $soubor je (když chci vymazat např. www.nejakadomena.cz) tak je to 'nejakadomena_cz/index.htm'
'nejakadomena_cz/index.htm' ???
To je nějaká blbost, ne? Za prvé tam chybí protokol (http://) a za druhé místo podtržítka by tam měla být normálně tečka, ne? Ten soubor (resp. stránka) musí existovat, když ji chceš smazat.
Není to blbost. Ta proměnná soubor je správná. Abych upřesnil co přesně chci: mám pár domén, které jsou zaparkované na hostingu, kde je právě tato administrace. V administraci si zadám doménu, odkud se to má přesměrovat (viz např. www.nejakadomena.cz - toto napíše do adresy laik uživatel) a vytvoří se složka se stránkou (viz nejakadomena_cz/index.htm). V indexu je nějaký obsah a odkaz na stránku kam to má jít (franta). No a vlastně ten nejakadomena_cz/index.htm je zdrojový soubor pro www.nejakadomena.cz...
díky
No, snad jsem to vysvětlil srozumitelně
Každopádně bych zkusil cestu zadat absolutně, tedy včetně http://. Když ji zadáváš relativně, můžeš snadno udělat chybu, protože ta cesta k souboru se bere vůči skriptu, kterým spouštíš to mazání.
Ok, chápu, vím jak to myslíš. Zkusím to a řeknu. Ale nevím jestli ještě dnes
dík za odpověď
Honza