Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odbieranie i zapisywanie plików *.txt
Forum PHP.pl > Forum > PHP
Thymson
Co powinienem zrobić jeżeli chcę:
1. Zrobić formularz (To już umiem tongue.gif)
2. Formularz zapisuje się jako plik *.txt
3. Plik *.txt otwiera się w index.php/index.htm w czytelnej formie
Chodzi o notki takie jak blogu, oczywiście prostrze...
Podsumuję tongue.gif
1. Formularz:
  1. <form name="news" action="?questionmark.gif" method="?questionmark.gif">
  2. <center><input type="text" name="tytul" value="Tytuł Posta" />
  3. <select name="priorytet">
  4. <option />Normalny
  5. <option />Ogłoszenie
  6. <option />Bardzo ważne ogłoszenie
  7. <textarea name="tresc">Treść Posta</textarea>
  8. <input type="submit" value="wyślij">

2. Wysyła się do pliku *.txt
3. "Odbiera go" strona index.htm/index.php
(?)
strife
Witam,

Poprawny formularz powinien mieć atrybuty:
  1. <form name="news" action="index.php" method="POST">

Ale widzę, że budowanie formularzy jest Ci trochę obce, więc odsyłam do tutorial'a.

Natomiast, jeśli chodzi o odebranie tych danych z niego po wysłaniu, tutaj musisz posłużyć metodą $_POST. Więcej na temat zmiennych predefiniowanych znajdziesz w manual'u.

Przykładowe odebranie jakiś danych z formularza może wyglądać w ten sposób:
  1. <?php
  2. if ( isset( $_POST['zmienna'] ) ) {
  3. echo 'Wpisales w pole <b>' . $_POST['zmienna'] . '</b>';
  4. }
  5. ?>


Co do zapisywania/odczytywania tych danych do pliku to posłuż się file_put_contents" title="Zobacz w manualu php" target="_manual/file_get_contents" title="Zobacz w manualu php" target="_manual, a jeśli nie masz php5 to starszymi metodami, fwrite" title="Zobacz w manualu php" target="_manual.

Pozdrawiam!
winnetu
Akurat siedze nad czyms podobnym wiec chyba bede mogl pomoc.
Formularz zrobilbym nieco inaczej:

  1. <form name="news" action="dodaj.php" method="POST">


kod skryptu dodaj.php
pliki beda nazwane 1.txt, 2.txt... itd

  1. <?php
  2. $news = $_POST['zmienna'];
  3. $i = 1;
  4. $news = fopen($i++.'.txt', 'w+');
  5. fwrite($news, $info);
  6. fclose($news);
  7. echo '<br><center>';
  8. echo 'News zostal dodany';
  9. ?>


a teraz kod pliku index.php, ktory bedzie wyswietlal dodane uprzednio news'y

  1. <?php
  2. foreach (glob('*.txt') as $filename) {
  3.  $news = fopen($filename, 'r');
  4.  $zmienna = fgets($news);
  5.  echo $zmienna;
  6.  echo '<br><hr>';
  7.  fclose($news);
  8. }
  9. ?>


powinno dzialac... smile.gif
Thymson
Jeszcze nie sprawdziłem, ale ufam, że działa, na prawdę wielki dzięki, mogę to zastosować też do "możliwości komentowania mojej strony" (?)...

Hmm... Pliki *.txt się wcale nie zapisują :/, nic nie rozumiem, próbuję właśnie "skonfigurować pod siebię" skrypt
"fwrite"..., bo w sumie mi nie zależy, żeby się zapisywal plik, tylko żeby mieć system newsów... Najprostrza wersja mnie interesuje...

Mam tutaj taki skrypcik (nazwa - "Komentarze txt"
  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  4. </head>
  5. <body>
  6. <?
  7. /*
  8.  
  9. annotate.php3 
  10.  
  11. This is a module that can be placed on any php3 page to allow users to add
  12. their comments. The comments are stored in a file in the current directory,
  13. whose name is constructed by adding ".comment" to the calling page's name,
  14. and merged into the calling page dynamically. (The calling page is not
  15. modified.)
  16.  
  17. I wrote this because I wanted a simple way to add this functionality to my
  18. pages without requiring that mySQL be available.
  19.  
  20. In the message input, blank lines are converted to paragraph tags. No other
  21. conversions are applied. If you don't want your users to be able to input
  22. html, uncomment the "strip_tags" line.
  23.  
  24. Note that the directory must be writable by the web server.
  25.  
  26. Put this module in some convenient location and then embed it in your pages
  27. like so:
  28.  
  29. require("/some/full/path/annotate.php3");
  30. or, relative to the docroot:
  31. require($DOCUMENT_ROOT . "/relativepath/php3");
  32.  
  33. Steve Yelvington <steve@yelvington.com>
  34.  
  35. */
  36. if ($message)
  37. {
  38. /* uncomment the next two lines to strip out html from input */
  39. /* $name = strip_tags($name); */
  40. /* $message = strip_tags($message); */
  41. $message = ereg_replace("rnrn", "n<P>", $message);
  42. $date = date("l, F j Y, h:i a");
  43. $message = "<B>$name </B> -- $date<P> $message <BR><HR>";
  44. $fp = fopen (basename($PHP_SELF) . ".comment", "a");
  45. fwrite ($fp, $message);
  46. fclose ($fp);
  47. }
  48. @readfile(basename(($PHP_SELF . ".comment")));
  49. ?>
  50. <FORM method="post">
  51. <b>Your name:</b><BR><INPUT name="name" type="text" size="55"><BR>
  52. <b>Your comment:</b><BR><TEXTAREA name="message" rows=10 cols=55 wrap=virtual>
  53. </TEXTAREA><BR>
  54. <INPUT name="submit" type="submit" value="Post your comment">
  55. </FORM>
  56. </body>
  57. </html>

Jest coś nie tak z skryptem, bo wcale mi nie działa :/ (?)
winnetu
Jezeli nie wyrzuca Ci zadnych bledow to wywal '@' sprzed readfile i powiedz jaki wtedy wyskakuje blad.

PS - ustawiles prawa dostepu do katalogu ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.