Autor Zpráva
Text
Profil *
Ahoj, potřeboval bych poradit,
jak mam udělat abych měl na stránce textové pole na vyplnění nějakého textu, který se bude ukládat po odeslání do ,,text.txt" souboru kde se bude každý nový text ukládat na nový řádek.
Pomůže mi někdo?
Děkuji
Louka
Profil
index.html
<form action="skript.php" method="post">
<textarea name="text"></textarea>
<input type="submit" value="Odeslat" name="send">
</form>


skript.php
<?php 
  if ( $_POST['text'] ) 
  {
    $soubor = fopen("text.txt","a");
    fwrite($soubor,$_POST['text']."\n");
    fclose($soubor);
  }
?>
Text
Profil *
To je ono co jsem potřeboval, moc dík.

Mohl by jsi mi ještě pomoct s jednou maličkostí?
Potřeboval bych, aby tam bylo omození třeba na 500 řádků.
Když to přesáhne 500, tak aby se automaticky vytvořil soubor text_2.txt
nebo ho klidně připravim, ale aby se to po 500 řádku začlo ukládat do toho dalšího souboru +1
Louka
Profil
parametr "a" dokáže vytvořit neexistujíci soubor sám, s tím se netrap.

<?php
  if ( $_POST['text'] ) 
  {
    $id = 0;
    
    // nejmensi pouzitelne id?
    while ( file_exists("text".$id.".txt") ) $id++;
    
    // zmenšíme id o 1 a zjistíme jestli se do posledního vytvořeného souboru ještě dá psát
    $id--;    
    $radku = 0;
    $tmp = fopen("text".$id.".txt","a");
    while ( $radek = fgets($tmp) ) $radku++; 
    
    if ( $radku >= 500 ) // nedá se psát
    {
      $id++; //další id
      $soubor = fopen("text".$id.".txt","a");
      fwrite($soubor,$_POST['text']."\n");
      fclose($soubor);
    }
    
    else { // dá se psát
      fwrite($tmp,$_POST['text']."\n");
    }
    fclose($tmp);
  }
?> 



EDIT: Formát jmen tech souborů je tady teda: text0.txt, text1.txt, .... jen pro doplnění.
Text
Profil *
jsem to zkoušel a nějak mi to nešlo.. zkusím to teď :)
a hned napíšu, dík
Louka
Profil
OK. plácal jsem to narychlo, snad tam nebude moc chyb :)...
Text
Profil *
tak jsem ten soubor text.txt musel přejmenovat pod text0.txt - jinak se to neukládalo...

if ( $radku >= 500 )
tak jsem to zkusil přepsat jen na 50 a když jsem jich udělal asi 80 řádku, tak se to stále ukládá jen do toho jednoho a toho samého textového dokumentu a nic se nevytvoří :(
Text
Profil *
Zkoušel jsem schválně mít 43 řádků v text0.txt a vytvořit jsem soubor text1.txt jestli se to pak nezačne posílat po 50 do dalšího souboru, ale bohůžel se tak nestalo, další poslané texty se posílali do toho nového text1.txt
Louka
Profil
Text:
tak jsem ten soubor text.txt musel přejmenovat pod text0.txt - jinak se to neukládalo...
Ano, na to jsem upozorňoval výše.

Mám tam chybu, promin:
while ( ($radek = fgets($tmp)) !== false) $radku++;


teď by to mělo jít.
Text
Profil *
tak jsem zkopíroval a vyměnil ten řáděk, ale je to stále to samí :( zase jsem napsal víc jak 50 řádek a je to stále v tom jednom a tom samím dokomentu text0.txt
l564
Profil
a máš nastavený chmod na 777 v dané složce?
Text
Profil *
l564:
a máš nastavený chmod na 777 v dané složce?
Zkusil jsem ho nastavit a stále bohužel nic :( pořád se to ukládá do jednoho a toho samého.
Text
Profil *
poradí te někdo? stále se mi to nedaří udělat...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0