Autor Zpráva
dzarda94
Profil
Mam 2 soubory index.php a edit.php. Edit.php mi zpracuje data z formuláře ($nazev a $obsah), to uloží do souboru a ten soubor se zároveň jmenuje jako $nazev.V index.php výpíšu obsah složky kde mam ty soubory uložené z edit.php jako odkazy na ně. Jde nějak udělat aby po kliknutí na odkaz se ten obsah vypsal v index.php na místě kde je ten výpis složky a ten pak zmizel?
Šéva
Profil
dzarda94:
if(!IsSet($_POST["zobraz"]))
{
  //nějaký kód
}
if(IsSet($_POST["zobraz"]))
{
//kód pro zobrazení obsahu
}
dzarda94
Profil
Udělal sem z toho tohleto, ale pořád se mi otevírá ten soubor, neinkluduje se na tu stránku.
<?php
          $slozka = dir("clanky");
          while ($soubor=$slozka->read())
          {
            if (!isset($_REQUEST[$soubor]))
            {
              if ($soubor != "." && $soubor != "..")
              {     
              echo "<a href=\"clanky/$soubor\">" . $soubor . "</a><br />";  
              }
            }
            if (IsSet($_REQUEST[$soubor]))
            {
            include($soubor);
            }
          }         
?>
Šéva
Profil
dzarda94:
Aha,takhle ty to máš...tak v tom případě

<?php
          $slozka = dir("clanky");
          $i=0;
          $soubory=array();
          while ($soubor=$slozka->read())
          {
            if (!isset($_GET["zobraz"]))
            {
              if ($soubor != "." && $soubor != "..")
              {     
              echo "<a href=\"clanky/$soubor?zobraz=zde&poz=$i\">" . $soubor . "</a><br />";  
              $soubory[]=$soubor;
              $i++;
              }
            }
            if (IsSet($_GET["zobraz"]) and $_GET["zobraz"]=="zde")
            {
            echo $soubory[$_GET["poz"]];
            }
          }         
?>

pozor na vstupy, musís si je ošetřit. jinak nevím co je to za soubory co chceš číst, takže místo toho echa si tam pak udělej co budeš potřebovat.
dzarda94
Profil
dumal sem nad tim včera dlouho, hledal sem na netu a nic, zkoušel sem ten tvůj upravenej script ale pořád se mi ten soubor otevírá jako samostaná stránka, jinak sou to txt soubory
Šéva
Profil
dzarda94:
Tak to už se můžu konečně od něčeho odpíchnout...
<?php
$cesta="nejaka/cesta/";
if(!IsSet($_POST["zobraz"]))
{
if(is_dir($cesta))
  {
  $otevrit=opendir($cesta);
  $files=array();
  $koncovka=array("txt");
  while (($file = readdir($otevrit))!==false):
  if ((is_dir($cesta.$file)) || ($file==".") || ($file=="..") || (!in_array(strtolower(pathinfo($file, PATHINFO_EXTENSION)), $koncovka))) continue;
  $files[]=$file;
  endwhile;
  }
  if(count($files)>0)
  {
    sort($files);
    for($a=0;$a<count($files);$a++)
    {
      echo "<form action='' method='post'>
      <input type='hidden' name='soubor' value='$files[$a]'>$files[$a]\t
      <input type='submit' name='zobraz' value='Zobrazit'>
      </form><br>";
    }
  }
  else
  {
  echo "Nejsou zde žádné soubory";
  }
}
if(IsSet($_POST["zobraz"]))
{
  $soubor=fopen($_POST["soubor"],"r");
  $text=fread($soubor,filesize($_POST["soubor"]));
  echo $text;
  fclose($soubor);
}
?>

EDIT: zapomněl jsem zavřít soubor
dzarda94
Profil
Asi to není přesně to co sem chtěl, ale to nevadí. Když kliknu na zobrazit tak se jen načte prázdná stránka, mohlo by vadit že v tom txt souboru jsou html tagy? Cestu mam správnou.
Šéva
Profil
dzarda94:
když klikneš na to Zobrazit, tak se pak podívej do zdrojoveho kódu, jestli je prázdný nebo v něm něco je... BTW, máš to pod Linuxem a nebo Woknama? V případě Linuxu si nastav práva na ty soubory
dzarda94
Profil
Na tom místě kde by se měl ten soubor vypsat jsou akorát ty odkazy, nic z toho souboru kterej se měl otevřít. Jinak mam Widle.
dzarda94
Profil
Tak se mi podařilo přesně to co sem chtěl. Místo odkazu sem dal tlačítko nastylovaný jako odkaz.
<?php
 $soubory = array();
 $cesta = dir("clanky/");
  if(!IsSet($_GET["soubor"])) 
  {
  while ($soubor=$cesta->read())
    {
    $soubory[] = $soubor;
    if ($soubor != "." && $soubor != "..")
    {
    $i++;
    $soubor = ereg_replace(".txt","","$soubor");
    echo "<form action='' method='get'>
          <input type='submit' name='$i' value='$soubor' id='odkaz'> <br />
          <input type='hidden' name='soubor' value='$soubor'>
          </form>";
    }
    }
  }
  if (IsSet($_GET["soubor"]))
  {
  $pom = ereg_replace("#","",$_GET["soubor"]);
  include("clanky/" . $pom . ".txt");
  }           
  
?>

Když sem se pokoušel dostat k tomuhle funkčímu scriptu, tak při jeho "tvoření" sem si všiml že se mi v url za každym názvem toho souboru dělá #, tak sem to přes ereg_replace smazal. Ted když mi to chodilo tak sem si myslel, že je to tam zbytečný, ale ejhle při smazání té funkce se mi soubor nenačetl. Zajímavý je, že se mi ale už ten # v url nezobrazuje. Možná proto mi nechodily ty scripty od tebe.
smid83
Profil *
Ahoj udělal jsem to přesně jak to napsal dzarda94:
funguje to dobře ale nešlo by to trochu vylepšit že když kliknu na ten odkaz tak se mi soubor smaže?zkoušl jsem to ale bohužel nevim jak

<?php
          $slozka = dir("clanky");
          $i=0;
          $soubory=array();
          while ($soubor=$slozka->read())
          {
            if (!isset($_GET["zobraz"]))
            {
              if ($soubor != "." && $soubor != "..")
              {     
              echo "<a href=\"clanky/$soubor?zobraz=zde&poz=$i\">" . $soubor . "</a><br />";  
              $soubory[]=$soubor;
              $i++;
              }
            }
            if (IsSet($_GET["zobraz"]) and $_GET["zobraz"]=="zde")
            {
            echo $soubory[$_GET["poz"]];
            }
          }         
?>
smid83
Profil *
tak jsem to vyřešil takto
 
<?php
          $slozka = dir("novy");
          $i=0;
          $soubory=array();
          while ($soubor=$slozka->read())
          {
            if (!isset($_GET["zobraz"]))
            {
              if ($soubor != "." && $soubor != "..")
              {     
              echo "<a href=\"../zkouska/novy.php?del=novy/" . $soubor . "\">" . $soubor . "</a><br />";  
              $soubory[]=$soubor;
              $i++;
              }
            }
            if (IsSet($_GET["zobraz"]) and $_GET["zobraz"]=="zde")
            {
            echo $soubory[$_GET["poz"]];
            }
          }         
?>


<?php

// PHP
// soubor delete.php
if(file_exists($_GET['del']))
unlink($_GET['del']); ?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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