« 1 2
Autor Zpráva
rotorod
Profil
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
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
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
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
achjo.....tohle mi funguje Rasty normálně......dpc problém je někdé v té cestě.....takže hledám hledám....
RastyAmateur
Profil
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
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
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].'">&nbsp;X</a>
zaměnit za:
<a href="spravce-souboru.php?delete='.$images2[($i*$cols)+$ii].'">&nbsp;X</a>
RastyAmateur
Profil
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
Lonanek:
vyzkouším zítra, sem v práci, díky zatím
rotorod
Profil
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>";
      }
    }
Prostě a jednoduše, místo řádky
if($unlink) echo "<h1>Soubor ".$delete." byl smazán!</h1>"; else echo "<h1>Někde se stala chyba, soubor nebyl smazán!</h1>";
vlož:
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
Po úspěšném smazání vložte do scriptu:
header ('Location: http://www..../admin/?spravce-souboru=1');
rotorod
Profil
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>&bull;&nbsp;".$images2[($i*$cols)+$ii].'<a href="?delete='.$images2[($i*$cols)+$ii].'">&nbsp;X</a></td>';
                }
              else{
                break;
                }
              }
            echo "</tr>";
            }  
        ?>
      </table>
    </div>    
  </body>
</html>
Vyznačená část je adresa k přesměrování. Zkoušel jsem to na localu a mělo by to fungovat, tak snad...
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
RastyAmateur [#22]:
děkuji Rasty a Lonanek, funguje paradně a bez dalších mých požadavků. klobouk dolů. díky
RastyAmateur
Profil
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
ok tedy, P.S.odeslán email
a tady to můžeme ukončit
DÍKY
« 1 2

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: