[PHP] Jak stworzyć formularz, który zapisze dane do pliku tekstowego, aby potem jego zawartość dołączyć do strony WWW?
Chcesz stworzyć prosty formularz, który będzie mógł zapisać do pliku tekstowego dane wprowadzone przez Ciebie lub użytkownika serwisu, a następnie plik ten dołączyć do dowolnej innej strony.
Taki formularz przydaje się gdy często zmieniasz zawartość serwisu, np. wprowadzasz nowe promocje lub chcesz zmieniać komunikaty z poziomu przeglądarki, bez ingerencji w kod strony.
Może być ogólnie dostępny, aby każdy mógł za jego pomocą wyrazić co w danej chwili myśli, a przynajmniej do momentu, kiedy ktoś inny nie zmieni treści tego pliku. Może być też tajny, dostępny na hasło dla administratora.
Skrypt nie jest skomplikowany i łatwo go wykonasz. Oto zawartość pliku index.php z formularzem:
<center>
<form action="index.php" method="post">
<textarea rows="3" cols="20" name="tresc"></textarea>
<br><input type="submit" value="OK">
</form>
</center>
<?
$tresc=stripslashes(trim($_POST["tresc"]));
$f=fopen("plik.txt","w");
fputs($f,$tresc);
fclose($f);
?>
Po wypełnieniu pola tresc w formularzu i naciśnięciu guzika "OK" jego zawartość zostanie przesłana do skryptu. Tutaj za pomocą tablicy $_POST pobieramy zawartość tego pola i od razu usuwamy zbędne spacje za pomocą funkcji trim().
Dodatkowo funkcją stripslashes() likwidujemy ukośniki, które dodawane są przed znakami specjalnymi, np. cudzysłowami. Teraz pozostaje otworzyć plik tekstowy do zapisu za pomocą funkcji fopen(), w której umieszczamy nazwę pliku i sposób zapisu.
Opcja "w" podczas otwierania pliku oznacza, że jego zawartość zostanie zamieniona na aktualnie wprowadzoną w formularzu. Jeżeli umieścisz opcję "a", wtedy do starej zawartości dodasz to co wpiszesz za pomocą formularza.
Funkcją fputs() dodajemy zawartość zmiennej $tresc do pliku i zamykamy plik. W tej chwili w pliku znajduje się to, co wpisaliśmy w formularzu.
Aby dodać zawartość pliku tekstowego na stronę wystarczy wywołać prostą funkcję include() w tym miejscu na stronie, gdzie chcesz dodać zawartość pliku tekstowego:
<?
include("plik.txt");
?>