Autor Zpráva
xxx01
Profil
dobrý den,
mám svoji stránku http://filebot.xf.cz/cache.php, můj problém je takový, že pokaždé když něco zadám do zadávacího pole, v místě, kde se má zobrazit to, co jsem předtím zadal, se zobrazí jen to, co je napsané na tlačítku="odeslat dotaz".
Kód mojí stránky je:
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">    
    


<head>
   <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
   <title>věci</title>
   <link href="Kopie - style.css" rel="stylesheet" type="text/css" />
</head>
<style>
#prvek {background-image: url(bgimage.jpg); }
#vnoreny-prvek {background-image: url(bgimage.jpg);}
</style>
<table onMouseOver="mHigh()" onMouseOut="mBack()" bgcolor="orange" bordercolor="black" frame="vsides" cellpadding="5" cellspacing="0" style="width:100%">
<tr>


</tr>
</table>
<font size=+3>
Věci:</font>
<font size=+2>
<br>

     <iframe src="6.php" width="300" height="100">
</iframe>
věc 1:
<?

  $cesta = "chatkasest.txt";
 
  $soubor = fopen($cesta, "r");
 
  $r = fread($soubor, filesize($cesta));
 
 
  echo $r;

  fclose($soubor);
?> (<a href="#explore" onclick="this.style.display = 'none'; document.getElementById('vice').style.display = 'block';">upravit</a>
<div id="vice" style="display: none;">
<form method="POST">
<textarea name="a"></textarea>
<?

if($_POST){

$soubor=fopen($cesta, "w");

fwrite($soubor,$_POST["a"]);

fclose($soubor);

}
?><input type="submit" name="a"></div>)<br>

     <iframe src="7.php" width="300" height="100">
</iframe>

věc 2 : 
<form method="POST">

<?

  $cesta = "chatkasedm.txt";
 
  $soubor = fopen($cesta, "r");
 
  $r = fread($soubor, filesize($cesta));
 
 
  echo $r;

  fclose($soubor);
?> (<a href="#explore" onclick="this.style.display = 'none'; document.getElementById('mene').style.display = 'block';">upravit</a>
<div id="mene" style="display: none;">
<textarea name="b"></textarea>
<?

if($_POST){

$soubor=fopen($cesta, "w");

fwrite($soubor,$_POST["b"]);

fclose($soubor);

}
?>
<input type="submit" name="b">
</div>)<br>
     <iframe src="8.php" width="300" height="100">
</iframe>
věc 3: 
<form method="POST">

<?

  $cesta = "chatkaosm.txt";
 
  $soubor = fopen($cesta, "r");
 
  $r = fread($soubor, filesize($cesta));
 
 
  echo $r;

  fclose($soubor);
?> (<a href="#explore" onclick="this.style.display = 'none'; document.getElementById('minjevic').style.display = 'block';">upravit</a>
<div id="minjevic" style="display: none;">
<textarea name="c"></textarea>
<?

if($_POST){

$soubor=fopen($cesta, "w");

fwrite($soubor,$_POST["c"]);

fclose($soubor);

}
?>
<input type="submit" name="c">
</div>)<br>

     <iframe src="9.php" width="300" height="100">
</iframe>

věc 4:
<form method="POST">

<?

  $cesta = "chatkadevet.txt";
 
  $soubor = fopen($cesta, "r");
 
  $r = fread($soubor, filesize($cesta));
 
 
  echo $r;

  fclose($soubor);
?> (<a href="#explore" onclick="this.style.display = 'none'; document.getElementById('funguje').style.display = 'block';">upravit</a>
<div id="funguje" style="display: none;">
<textarea name="d"></textarea>
<?

if($_POST){

$soubor=fopen($cesta, "w");

fwrite($soubor,$_POST["d"]);

fclose($soubor);

}
?>
<input type="submit" name="d" value="$_POST">
</div>)<br>

     <iframe src="10.php" width="300" height="100">
</iframe>


věc 5: 
<form method="POST">

<?

  $cesta = "chatkadeset.txt";
 
  $soubor = fopen($cesta, "r");
 
  $r = fread($soubor, filesize($cesta));
 
 
  echo $r;

  fclose($soubor);
?> (<a href="#explore" onclick="this.style.display = 'none'; document.getElementById('nefunguje').style.display = 'block';">upravit</a>
<div id="nefunguje" style="display: none;">
<textarea name="e"></textarea>
<?

if($_POST){

$soubor=fopen($cesta, "w");

fwrite($soubor,$_POST["e"]);

fclose($soubor);

}
?>
<input type="submit" name="e">
</div>)<br>
</font><br><br><br>


</form>


</body>
</html>
   
   
   
Děkuju za jakoukoliv pomoc.
juriad
Profil
Musíš textareu pojmenovat jinak než odesílací tlačítko. Teď mají stejné name.
Pozor, celý ten kód není pěkný. Je dost náchylný na chyby. Doufám, že nikdo (žádný zákazník, uživatel) nemá přístup k tomuto formuláři.
Joker
Profil
To není chyba ve fread, ale naopak ve způsobu, jak je udělaný ten zápis.

Jinak ten skript celkově není moc dobrý:
1. Kéž by tak existoval způsob, jak udělat tu samou věc vícekrát za sebou, aby nebylo nutné pořád kopírovat ten kód…
2. Formulářová políčka se nemohou jmenovat stejně, pak se přenese jen hodnota toho posledního z nich (v tomto případě submit tlačítka). To je první příčina toho popsaného problému.
3. fopen v režimu "w" smaže původní obsah souboru (což může být i zamýšlené chování).
4. Na odesílacím tlačítku "d" podle mě bude pokaždé text "array", což je asi překlep.
5. Až to bude zobrazovat text ze zadávacího políčka, pokud tam zadám HTML kód, může to rozsypat celou stránku.
6. Pro přečtení celého souboru do řetězce existuje funkce file_get_contents, která má oproti fopen+fread(filesize) jednodušší použití a lepší výkon (podle manuálu).

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: