Autor | Zpráva | ||
---|---|---|---|
rotorod Profil |
#1 · Zasláno: 16. 2. 2016, 17:58:46
tak sem si myslel jestli to je tou složkou že bych měl jinde. Tak jsem si vytvořil v složce ADMIN složku OBRAZKY a tam mam i spravce-souboru.php, kde je napsan cely tento kod přesně tak. Ale taky nic. Nahravat to nahrava ale mazat to nemaže. Tak nevím kde muže byt chyba. V atributech?
|
||
Lonanek Profil |
V atributech (CHMODu) asi ne, když to do složky nahraje. Jinak by při mazání unlink() vyhodil FALSE - můžete také testovat, zda bylo vymazáno.
Zkusím se zeptat ještě jednou: popište nám strukturu adresářů na FTP. |
||
rotorod Profil |
#3 · Zasláno: 16. 2. 2016, 18:15:49
adresář WWW
v ní složka mezi jinými ADMIN, OBRAZKY,.... v složce ADMIN soubor spravce-souboru.php kde je napsan ten kod. když jsem přestěhoval složku OBRAZKY do složky ADMIN tak se taky nic nezměnilo |
||
Lonanek Profil |
#4 · Zasláno: 16. 2. 2016, 18:28:46
Přestěhoval znamená ve Vašem slangu PŘESUNOUT?
WWW - ADMIN -- OBRAZKY - ... - OBRAZKY Je to správná struktura? Pokud máte název složek velkými písmeny, musí také být velkými písmeny uvedená složka. Obsah na FTP je CASE-SENSITIVE!!! |
||
rotorod Profil |
#5 · Zasláno: 16. 2. 2016, 18:47:51
ano přesunul....struktura je spravna a slova mám všechna malými písmeny a jsou uplně stejně napsané jako v kodu. to jsem kontroloval. Bohužel to prostě nejde a nevím proč:-(
|
||
RastyAmateur Profil |
rotorod:
Zazipuju ti to a nahraju někam...... čekej Odkaz je: www.uscho vna.cz/zasilka/HM43AZ9AZC584PBJ-PFA/UJZMSMMLY6 Je tam mezera, něšlo mi to odeslat :D |
||
rotorod Profil |
#7 · Zasláno: 16. 2. 2016, 19:12:47
achjo.....tohle mi funguje Rasty normálně......dpc problém je někdé v té cestě.....takže hledám hledám....
|
||
RastyAmateur Profil |
#8 · Zasláno: 16. 2. 2016, 19:22:46
rotorod:
Takže te stažené funguje, nebo ne? |
||
rotorod Profil |
jjo to jede normálně, už asi vím kde je problém......
že v administraci když otevřu správce, tak se mi zobrazí url www.../admin/?spravce-souboru=1 tady ale to nahravani funguje normálně, ale to mazani prostě ne když změnim cestu odkazu spravce, a zobrazí se mi url www.../admin/spravce-souboru.php tak tady funguje i nahravani i mazani. Takže kod je dobry, jen ja mám divnou odkazovou cestu na spravce, ale je divne že to nahravani jede normálně a mazani ne takže díky, -------------------------- RastyAmateur: chtěl bych ti něco napsat,dát nějakou nabídku, ale osobně. Koukám že tady asi nejsou žádně soukromé zprávy. Bylo by tě možné nějak kontaktovat, třeba na email? |
||
RastyAmateur Profil |
rotorod:
pokud byl na serveru nějaký script, kdy pomocí adresy www.../admin/?spravce-souboru=1 jsi se dostal "jakoby" do toho souboru, tak pak je jasné, že se to nesmaže. Odkaz na smazání totiž vede na stránku www.../admin/?delete=xxx.jpg, čímž vlastně dojde k tomu, že už to není soubor spravce-souboru.php |
||
Lonanek Profil |
#11 · Zasláno: 16. 2. 2016, 20:39:27
Pokud je to opravdu jak uvádí RastyAmateur, pak stačí uvést do <form> spouštěný soubor s QSA a v něm pak na konci provést redirekt na původní stránku administrace.
|
||
RastyAmateur Profil |
#12 · Zasláno: 16. 2. 2016, 20:43:43
Lonanek:
Tak to je moc složité i na mě... Není jednodušší to špouštět pod www.../admin/spravce-souboru.php ? |
||
rotorod Profil |
děkuji rasty, uloženo, do konce týdne se ozvu
ano je to tak jak uvádí Rasty |
||
RastyAmateur Profil |
rotorod:
Já děkuji! Osobně bych raději používat to, co jsem zde uváděl, tj. url www.../admin/spravce-souboru.php. Ale pokud je opravdu nutné původní řešení, doporučuji Lonankovo řešení. Ovšem s tím já nepomohu, jelikož mé zkušenosti nesahají tak hluboko. rotorod: Teď, jak jsem smazal ten e-mail, tak jsem si uvědomil, že jsem vlastně nezkontroloval překlepy. Takže v případě, že neodepíšu do 48 hodin, prosím o upozornění zde, na místní diskusi! :D |
||
Lonanek Profil |
RastyAmateur:
„Tak to je moc složité i na mě...“ Respektive jsem si neuvědomil, že to je v odkazu <a href="?delete='.$images2[($i*$cols)+$ii].'"> X</a> <a href="spravce-souboru.php?delete='.$images2[($i*$cols)+$ii].'"> X</a> |
||
RastyAmateur Profil |
#16 · Zasláno: 16. 2. 2016, 21:22:02
Lonanek:
Tak tomu naštěstí už rozumím. Nebo by možná mohlo fungovat i ?spravce-souboru=1&delete=image.jpg, ovšem s tím bych si nebyl uplně jist. Může také záviset na tom souboru... |
||
rotorod Profil |
#17 · Zasláno: 16. 2. 2016, 21:44:31
Lonanek:
vyzkouším zítra, sem v práci, díky zatím |
||
rotorod Profil |
#18 · Zasláno: 17. 2. 2016, 07:29:36
Lonanek [#15]:
tak tohle funguje, tohle to smaže, super, kdyby šlo ještě poslední, aby po smazani to zpátky "přesměrovalo" na původní http://www.../admin/?spravce-souboru=1
|
||
RastyAmateur Profil |
rotorod:
To echo nahraď funkcí header() $delete = isset($_GET["delete"]) ? $_GET["delete"] : null; if(!empty($delete)){ $dir = "obrazky"; if(file_exists($dir."/".$delete)){ $unlink = unlink($dir."/".$delete); if($unlink) header("Location: http://www.../admin/?spravce-souboru=1"); else echo "<h1>Někde se stala chyba, soubor nebyl smazán!</h1>"; } else{ echo "<h1>Soubor nenalezen!</h1>"; } } if($unlink) echo "<h1>Soubor ".$delete." byl smazán!</h1>"; else echo "<h1>Někde se stala chyba, soubor nebyl smazán!</h1>"; if($unlink) header("Location: http://www.../admin/?spravce-souboru=1"); else echo "<h1>Někde se stala chyba, soubor nebyl smazán!</h1>"; V případě úspěšného smazání se to přesměruje, jinak ne a napíše to, proč a kde se stala chyba... |
||
Lonanek Profil |
#20 · Zasláno: 17. 2. 2016, 10:08:39
Po úspěšném smazání vložte do scriptu:
header ('Location: http://www..../admin/?spravce-souboru=1'); |
||
rotorod Profil |
#21 · Zasláno: 17. 2. 2016, 14:40:14
RastyAmateur:
když nahradim cely ten řádek, tak sice mi to obrázek smaže, ale nepřesměruje, a ještě vypiše chybu Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/65708/virtual/www/admin/spravce-souboru.php:21) in /data/web/virtuals/65708/virtual/www/admin/spravce-souboru.php on line 28 |
||
RastyAmateur Profil |
rotorod:
Mám pocit, že před header() nesmí být žádný output (výytup) což ti vlastně (asi) řiká i ta chyba. Řešení je to dát uplně na začátek dokumentu a případnou chybu uložit do proměnné, kterou následně vypsat... Vím, že toto ti asi nijak nepomůže, ale z tabletu více neudělám. Asi za 30 minut budu na pc, tak ti to sem hodím... rotorod: Tak jsem se nepletl. Celý kód bude vypadat následovně: <?php $delete = isset($_GET["delete"]) ? $_GET["delete"] : null; if(!empty($delete)){ $dir = "../obrazky"; if(file_exists($dir."/".$delete)){ $unlink = unlink($dir."/".$delete); if($unlink) header("Location: http://localhost/images2/index/index.php"); else $err = "<h1>Někde se stala chyba, soubor nebyl smazán!</h1>"; } else{ $err = "<h1>Soubor nenalezen!</h1>"; } } ?> <!doctype html> <head> <meta charset="utf-8"> </head> <body> <?php $err = isset($err) ? $err : null; echo $err; $uploadDir = '../obrazky'; // adresar, kam se maji nahrat obrazky (bez lomitka na konci) $allowedExt = array('jpg', 'jpeg', 'png', 'gif', 'pdf'); // pole s povolenymi priponami // zpracovani uploadu if(!empty($_FILES['obrazky']) && is_array($_FILES['obrazky']['name'])) { $counter = 0; $allowedExt = array_flip($allowedExt); foreach($_FILES['obrazky']['name'] as $klic => $nazev) { $fileName = basename($nazev); $tmpName = $_FILES['obrazky']['tmp_name'][$klic]; if(file_exists($uploadDir."/".$_FILES['obrazky']['name'][$klic]) || !isset($allowedExt[strtolower(pathinfo($fileName, PATHINFO_EXTENSION))])){ continue; } if(move_uploaded_file($tmpName, "{$uploadDir}".DIRECTORY_SEPARATOR."{$fileName}")) { ++$counter; } } if ($counter > 0) echo "<p>Bylo nahráno {$counter} z ".sizeof($_FILES['obrazky']['name'])." obrázků!</p>"."<br>"; else echo "!!!Při nahrávání souboru došlo k chybě, nic se nenehrálo!!!"."<br>"; } ?> <br> <form method="post" enctype="multipart/form-data"> <input type="file" name="obrazky[]" multiple="multiple" /> <input type="submit" value="Nahrát" /> </form> <br> <div id="table"> <table> <?php # Výpis všech obrázků $cols = 3; # počet sloupců $images = scandir($uploadDir); $images2 = array(); foreach($images as $img){ if($img !== "." and $img !== "..") $images2[] = $img; } $size = count($images2); for($i=0; $i<ceil($size/$cols); $i++){ echo "<tr>"; for($ii=0; $ii<$cols; $ii++){ if(!empty($images2[($i*$cols)+$ii])){ echo "<td>• ".$images2[($i*$cols)+$ii].'<a href="?delete='.$images2[($i*$cols)+$ii].'"> X</a></td>'; } else{ break; } } echo "</tr>"; } ?> </table> </div> </body> </html> Jinak se změnil pouze ten začátek - byl přesunut, a na řádce 20 a 21 něco je něco víc... |
||
rotorod Profil |
#23 · Zasláno: 17. 2. 2016, 17:49:31
RastyAmateur [#22]:
děkuji Rasty a Lonanek, funguje paradně a bez dalších mých požadavků. klobouk dolů. díky |
||
RastyAmateur Profil |
#24 · Zasláno: 17. 2. 2016, 18:01:12
rotorod:
Klobouk nahoru, to bylo lehké. Jen mě udivuje, že jsem si na to nevzpomněl již v [#19]... Až bude zase něco tak piš :-) |
||
rotorod Profil |
#25 · Zasláno: 17. 2. 2016, 18:40:17
ok tedy, P.S.odeslán email
a tady to můžeme ukončit DÍKY |
||
Časová prodleva: 9 let
|
0