Autor Zpráva
kozusnik.jan
Profil *
Ahoj. Potřeboval bych poradit se zápisem do souboru. Pořád se mi to zapisuje až nakonec, i když nastavím
rewind($fp);
.
Tady přikládám zdroják:
<?php
  $fp = fopen("zapisy.txt", "a+") or die ("NELZE OTEVRÍT ZADANÝ SOUBOR!");
  rewind($fp);
if($ok) {
  $tab = "<tr><td width=\"300\" >".$jmeno."</td>
<td align=\"right\">".Date(" d/m/Y  H:i:s")."</td>
</tr><tr><td colspan=\"2\">".$vzkaz."</td>
</tr><tr><td width=\"150\">".$mail."</td>
</tr><tr><td colspan=\"2\"><hr size=\"1\"></td>
</tr>
"; 

  fwrite($fp, $tab);
fclose($fp);
}
$fp2 = fopen("zapisy.txt", "a+") or die ("NELZE OTEVRÍT ZADANÝ SOUBOR!");
rewind($fp2);
$vypis = fread($fp2,filesize("zapisy.txt"));  
fclose($fp2);
echo ($vypis);
?>
Beavis
Profil
kozusnik.jan:
Myslím, že je problém v
fopen("zapisy.txt", "a+")
, nahradil bych "a+" za "w+".
kozusnik.jan
Profil *
no jo, ale ten soubor, do kterého zapisuju příspěvky po odeslání smaže :-(
Laman
Profil
jedna možnost by byla nechat zapisovat na konec a pak při vypisování příspěvky nějak přehazovat (třeba pomocí file()), nebo musíš soubor načíst (třeba file_get_contents()), připojit jeho obsah k novému příspěvku a celé to pak tím módem w zapsat znovu
kozusnik.jan
Profil *
to jsem nepochopil, ale dík :-)
Laman
Profil
jde o to, že pokud je mi známo, psát na začátek souboru normálně nejde. takže máš dvě možnosti: 1. smířit se s tím, zapisovat na konec souboru a nějakým způsobem ty zprávy zpracovávat a přeházet při vypisování (třeba kdyby byla jedna zpráva na řádek, tak pomocí file() načteš celý soubor do pole a můžeš pak zprávy vypisovat od konce). 2. vzít novou zprávu, načíst celý obsah souboru, spojit je a celé to znovu zapsat tím zapisovacím módem "w" (místo "a")
příklad k postupu číslo 2:
$stareZpravy=file_get_contents("zapisy.txt"); //načteš staré zprávy
$fp = fopen("zapisy.txt", "w"); //původní soubor zahodíš
$tab=$tab.$stareZpravy; //přidáš staré zprávy na konec
fwrite($fp,$tab); //celé zapíšeš

_ale_ řekl bych, že první způsob je lepší
AM_
Profil
Mnohem elegantněji se to řeší přes databázi, tohle má jednu vadu na kráse - až budeš mít 100 tisíc příspěvků, server se pořádně zapotí, než přidá nový. A naučit se mysql na té úrovni, abys zvládl tohle, trvá tak jedno odpoledne ;)
kozusnik.jan
Profil *
no, ja to s databází trochu umím, tak by to nemusel být problém

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:

0