Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][TXT] Zapisywanie danych w pliku
Forum PHP.pl > Forum > Przedszkole
Puszkin4717
Ma ktoś pomysł jak rozwiązać coś takiego żeby z jednego formularza zapisywały się dane w dwóch różnych plikach
Czyli najlepiej jak by była 2 różne pola tekstowe ale jeden przycisk zapisu.

patterns.txt

san.txt
strife
Tworzysz formularz a po submit'cie odbierasz dane i zapisujesz korzystając np. z file_put_contents zapisując do dwóch różnych plików, w czym konkretnie masz problem?
Puszkin4717
Nie wiem jak zrobić by zapisywało dane w 2 różnych plikach
mmica
Hey ;]

html.html:
  1. <form action="add.php" method="post">
  2. <div>
  3. <textarea name="textarea1" cols="10" rows="10"></textarea>
  4. <textarea name="textarea2" cols="10" rows="10"></textarea>
  5. <input type="submit" value="Wyslij" />
  6. </div>
  7. </form>

add.php:
  1. <?php
  2. $text1 = $_POST['textarea1'];
  3. $text2 = $_POST['textarea2'];
  4.  
  5. if(file_put_contents('file1.txt', $text1, LOCK_EX))
  6. {
  7. echo 'Text1 added!<br />';
  8. } else
  9. {
  10. 'Text1 failure<br />';
  11. }
  12.  
  13. if(file_put_contents('file2.txt', $text2, LOCK_EX))
  14. {
  15. echo 'Text2 added!<br />';
  16. } else
  17. {
  18. 'Text2 failure<br />';
  19. }
  20. ?>


Pamiętaj o odpowiednich prawach dostępu dla plików file1.txt i file2.txt.

Pozdrawiam,
mmica
strife
Cytat(Puszkin4717 @ 5.12.2010, 15:16:34 ) *
Nie wiem jak zrobić by zapisywało dane w 2 różnych plikach


  1. <?php
  2.  
  3. // jezeli wyslalismy posta
  4. if (! empty($_POST)) {
  5. // zapisujemy odebrane dane z formularza
  6. // ponizej diagnostyczne sprawdzenie jakie dane mozemy odebrac
  7. echo "<pre>";
  8. var_export($_POST);
  9. echo "</pre>";
  10.  
  11. file_put_contents('plik1.txt', $_POST['dane']);
  12. file_put_contents('plik2.txt', $_POST['dane']);
  13. }
  14.  
  15. ?>

Teraz powinieneś sobie poradzić bez problemu.

@mmica - Twój kod wypluje trochę błędów, polecam sprawdzać czy dane istnieją (isset, empty) oszczędzi to w przyszłości większych problemów.
Puszkin4717
mmica


Z zapisem wszystko ok ale zamiast dodawać on usuwa poprzedni wpis i zastępuje go nowym
strife
Cytat(Puszkin4717 @ 5.12.2010, 15:32:49 ) *
mmica


Z zapisem wszystko ok ale zamiast dodawać on usuwa poprzedni wpis i zastępuje go nowym

Jeżeli chcesz dopisywać do plików jako 3 argument konstrukcji file_put_contents użyj FILE_APPEND. Wiedział byś to gdybyś wykazał chociaż odrobinę dobrej woli i spojrzał do manuala!
mmica
Hey ;]

@strife: No tak, mogłem wziąć to pod uwagę, ale to był tylko głupi przykład pokazujący jak zapisywać do pliku, mimo to masz rację, lepiej od razu wpajać dobre nawyki. Poprawiona wersja:
  1. <?php
  2. if(!isset($_POST['textarea1']))
  3. {
  4. die('$_POST[\'textarea1\'] is missing!');
  5. }
  6. else
  7. {
  8. $text1 = $_POST['textarea1'];
  9. }
  10.  
  11. if(!isset($_POST['textarea2']))
  12. {
  13. die('$_POST[\'textarea2\'] is missing!');
  14. }
  15. else
  16. {
  17. $text2 = $_POST['textarea2'];
  18. }
  19.  
  20. if(strlen($text1) < 1)
  21. {
  22. die('Textarea1 was empty!');
  23. }
  24.  
  25. if(strlen($text2) < 1)
  26. {
  27. die('Textarea2 was empty!');
  28. }
  29.  
  30. $file1 = 'file1.txt';
  31. $file2 = 'file2.txt';
  32.  
  33. if(!is_file($file1)) die('$file1 was not found!');
  34. if(!is_file($file2)) die('$file2 was not found!');
  35.  
  36. if(file_put_contents($file1, $text1, LOCK_EX))
  37. {
  38. echo 'Text1 added!<br />';
  39. }
  40. else
  41. {
  42. 'Text1 failure<br />';
  43. }
  44.  
  45. if(file_put_contents($file2, $text2, LOCK_EX))
  46. {
  47. echo 'Text2 added!<br />';
  48. }
  49. else
  50. {
  51. 'Text2 failure<br />';
  52. }
  53. ?>

Chyba przyznasz mi rację, że teraz Puszkin4717 miałby większe problemy ze zrozumieniem rozwiązania swojego problemu.

Moim zdaniem funkcja empty() to jakiś dziwny twór.. dla niej 0 = empty, dlatego ja używam prawie wyłącznie isset().

Pozdrawiam,
mmica

// edit:

@Puszkin4717: W takim wypadku linie 36. - 52. zamień na takie:
  1. if(file_put_contents($file1, $text1, LOCK_EX | FILE_APPEND)) // !
  2. {
  3. echo 'Text1 added!<br />';
  4. }
  5. else
  6. {
  7. 'Text1 failure<br />';
  8. }
  9.  
  10. if(file_put_contents($file2, $text2, LOCK_EX | FILE_APPEND)) // !
  11. {
  12. echo 'Text2 added!<br />';
  13. }
  14. else
  15. {
  16. 'Text2 failure<br />';
  17. }
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.