mazani souboru

14 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Cau potreboval bych vedet jak smaznout jednoduse soubor. V manualu jsem nasel jen,ze se na to pouziva unlink. Nechavam uzivatele at si sami vyberou obrazek k jejich jmenu napr do diskuze. Chci jim ale dat i moznost, aby onen obrazek molhli smaznout, kdyby se jim znelibil a neotravovali tim me. Tenhle kod mi vzdy napise, ze se soubor nepodarilo nahrat: if($smaz_obr="smaz") //smazani obrazku { $nacteni_obr=mysql_query("SELECT * FROM `obrazky` WHERE `identifikator` LIKE '$id'"); while($zaznam=mysql_fetch_array($nacteni_obr)) { $obr=$zaznam["id_obrazku"]; if(unlink("cesta/$obr")){ $smazano="true"; } } if($smazano=="true") { mysql_query("DELETE FROM `obr` WHERE `identifikator` LIKE '$id'"); } else { echo "Nepodarilo se obrazek smazat."; } } dik za rady
  2. Doporučuju postupně si zobrazovat jednotlivý proměný, abys našel v čem to je... Třeba co vypadá podezřele, tak že jednou vybíráš z tablu `obrazky` a pak to mažeš z tablu `obr`. To máš duplovaný? Třeba si se přepsal a tudíž je $zaznam prazdnej a nedojde k nastevení $smazano na true a tudíž k else clausu :)
  3. V manuálu je u unlink poznámka: "Tato funkce nemusí na Windows fungovat". Osobně s tím zkušenosti nemám, jsem na wz. Pokud jsi na wz taky, tak zkus zkontrolovat práva, nebo použitou cestu k souboru. Doporučuju cestu jako na disku: /3w/w.cz/g/gonzik/.../$obr
  4. ahaaaaa! No nejspis to bude tema tabulkama! Fakt dik, nekdy to clovek proste nevidi.
  5. ne zas takovej jouda nejsem, anebo prave naopak jsem jeste vetsi :) chyba v tabulkach neni a nikdy nebyla, to jsem jen prepsal tabulku obr na obrazky v premire snahy chranit se pred pripadnymi hakery, jenze u te druhe jsem to prepsat zapomel. Jinak te poznamky v manualu jsem si vsiml, ale nevim k cemu mi je, proste to bud fungovat bude nebo ne, zadny navod, jak se s tim vyporadat... nejspis probrouzdam net...
  6. if($smaz_obr="smaz") //smazani obrazku { $nacteni_obr=mysql_query("SELECT * FROM `obrazky` WHERE `identifikator` LIKE '$id'"); while($zaznam=mysql_fetch_array($nacteni_obr)) { $obr=$zaznam["id_obrazku"]; if(unlink("cesta/$obr")){ $smazano="true"; } } if($smazano=="true") { mysql_query("DELETE FROM `obr` WHERE `identifikator`= '$id' "); } else { echo "Nepodarilo se obrazek smazat."; } }
  7. Hele vyechuj si tu cestu, kterou se snažíš ten obrázek smazat. Podle: $obr=$zaznam["id_obrazku"]; if(unlink("cesta/$obr")){ $smazano="true"; } to vypadá, že v $obr máš číslo id místo jména souboru (s koncovkou). A co je ta "cesta" ? To je nějaký adresář? Nechceš zkusit: $obr=$zaznam["id_obrazku"]; if(unlink("./cesta/$obr")){ $smazano="true"; }
  8. hej diky za snahu pomoct mi. Nakonec jsem chybu objevil uplne nekde jinde v kodu. unlink funguje v pohode, cesta znamena cesta do adresare, kde je obr ulozen(jen jsem to trochu zjednodusil, jak jsem psal - ochrana proti hackerum :) , id_obrazku je nazev souboru. Chyby jsem nasel dve, prvni byla v tom, ze jsem si nacetl jednu tab do asoc. pole zaznam a par kroku na to jsem toto asoc. pole blbe prepsal nactenim z jine tab. A druha chyba byla v tom, ze u if, else apod. muzete pouzit pro zjednoduseni: <? if($pozdrav==1) { ?> <b>Ahoj!</b> <? } ?> u cyklu to ale asi nejde, me to neslo u while pri vypisovani zaznamu z asoc. pole. Takze na to si je nutne dat tez pozor. Ale unlink funguje v poho :)
  9. mimo tema: if($smazano=="true") <-- ale fuj! ty uvozovky nechapu uz vubec. jinak co to dela: porovna to hodnotu $smazano s true - vyjde true, pak zjistuje jestli vyslo true a pokud jo, vykona prikazy za if. kdyz napises jenom if($smazano), tak se jenom zjisti, jestli je $smazano true. to tvoje je jakobys napsal if(true==true), coz ti jiste prijde jako blbost. no a kdyz uz jsme u toho, tak ta promenna je tam uplne k nicemu (pokud ji teda nepouzivas jeste nekde jinde): if(unlink("cesta/$obr"))   mysql_query("DELETE FROM `obr` WHERE `identifikator` LIKE '$id'"); else   echo "Nepodarilo se obrazek smazat."; jo a ten identifikator mas jako int nebo varchar?
  10. hele pokud hledate ve sloupci urcity retezec, pouzivejte spis WHERE `identifikator` = '$id' (ne LIKE) ... a druha vec: kdyz mazete jeden jedinej radek z databaze, doporucuju na konec napsat LIMIT 1; pri eventualni chybe v dotazu se muzete vyhnout nechtenemu smazani cele tabulky (a pokud jste takovi lemplove jako ja a nezalohujete, tak to docela zamrzi).
  11. to Tonik: moc se mi nechtelo mazat zaznam, kdyz ho projizdim v cyklu while. identifikator je varchar.... jinak samozrejme souhlasim, jen jsem se to tak spatne naucil a ted to tak pouzivam.
  12. to Tonik: nejsem si jist jestli je if($promena) to same jako if($promena=="true") podle me if($promena) zjistuje zda promena vubec existuje, nebo jestli ma nejakou hodnotu. Takze takova podminka propusti dalsi chod skriptu ikdyz je $promena="false".
  13. jendakenda: ne. if($promenna) vezme promennou, pretypuje ji na typ boolean a pokud vyjde true, provede prikazy za if. pokud false, tak je neprovede. vice viz manual: http://www.php.net/manual/en/language.control-structures.php#control-structures.if a odkazy u toho. jestli promenna existuje se zjistuje pomoci funkce isset() - http://mirrors.inway.cz/manual/en/function.isset.php pak jeste existuji funkce empty(), is_null(), defined() navic ty uvozovky! "true" se pretypuje na true, ale "false" taky! retezec je po pretypovani na boolean false jenom pokud je prazdny ("") nebo obsahuje jen a pouze 0 ("0") - http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
  14. jeste k tem uvozovkam: ano, pokud udelas $promenna = "false", tak se to pretypuje na true a projde to. pokud ale udelas $promenna = false, nic se nepretypuje a neprojde to. pis to bez tech uvozovek. doporucuju nastudovat tuto kapitolku z manualu: http://www.php.net/manual/en/language.types.php

← Zpět na všechna témata