Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ponowny zapis do pliku
Forum PHP.pl > Forum > Przedszkole
kaiba55
Witam. Mam pewien problem. Oto mój kod:
  1. <?php
  2.  
  3. $wpis = trim($_POST['wpis']);
  4. $wiadomosc = "$data - $imie </br> \n"; // zapis wszystkiego
  5. $zapisz_do ='baza.txt';
  6. $zapisz = fopen($zapisz_do, "a");
  7. flock($zapisz, 2);
  8. fwrite($zapisz, $wiadomosc);
  9. flock($zapisz, 3);
  10. fclose($zapisz);
  11.  
  12. ?>
  13.  
  14. <form action=\"\" method=\"POST\"><textarea name="wpis" ROWS="30" COLS="50"> <?php include ('baza.txt'); ?></textarea><input type="submit" Value="edytuj"> </form>
  15.  
  16.  


I chcę aby zapisał nowe dane do pliku txt. Możecie pomóc?? Bo mój pomysł na to jak widzicie nie wypalił. Pozdro.
piotrooo89
ja tam polecam file_put_contents z odpowiednią flagą.
DiH
  1. $wiadomosc = "$data - $imie </br> \n"; // zapis wszystkiego

Pominąłeś część kursu o łączeniu zmiennych ze stringami?
  1. $wiadomosc = $data." - ".$imie."</br> \n";


Tak jak kolega wyżej napisał: file_get_contents i file_put_contents, i problem z głowy.
kaiba55
ja to zrobiłem tak:

  1. <?php
  2.  
  3. $wpis = trim($_POST['wpis']);
  4. $wiadomosc = "$data - $imie </br> \n"; // zapis wszystkiego
  5. $zapisz_do ='baza.txt';
  6. $zapisz = fopen($zapisz_do, "a");
  7. flock($zapisz, 2);
  8. fwrite($zapisz, $wpis);
  9. flock($zapisz, 3);
  10. fclose($zapisz);
  11.  
  12. echo "<form action=\"\" method=\"POST\"><textarea name=\"wpis\" ROWS=\"30\" COLS=\"50\">\"" . file_get_contents('baza.txt') ."></textarea><input type=\"submit\" Value=\"edytuj\"></form>";
  13.  
  14. ?>
  15.  
  16.  


Ale nie działa? Dlaczego?
Pozdro.
moto0095
http://www.kess.snug.pl/?sid=10&pid=19
To ci pomoże.
kaiba55
zrobiłem tak:
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. $wpis = trim($_POST['wpis']);
  7. // przypisanie zmniennej $file nazwy pliku
  8. $file="baza.txt";
  9.  
  10. // uchwyt pliku, otwarcie do odczytu i dopisania
  11. $fp=fopen("$file", "r+");
  12.  
  13. // dodanie do zmiennej dane poprzedniej zawartości pliku
  14. $wpis=$wpis.fread($fp, filesize($file));
  15.  
  16. // ustawienie kursora na początku pliku
  17. rewind($fp);
  18.  
  19. // blokada pliku do zapisu
  20. flock($fp, 2);
  21.  
  22. // zapisanie danych do pliku
  23. fwrite($fp, $wpis);
  24.  
  25. // odblokowanie pliku
  26. flock($fp, 3);
  27.  
  28. // zamknięcie pliku
  29. fclose($fp);
  30.  
  31. echo "<form action=\"\" method=\"POST\"><textarea name=\"wpis\" ROWS=\"30\" COLS=\"50\">\"" . file_get_contents('baza.txt') ."></textarea><input type=\"submit\" Value=\"edytuj\"></form>";
  32.  
  33. ?>
  34.  
  35.  
  36.  
  37.  


i nie działa dalej
moto0095
A tak.
  1. <?php
  2. /*********************************************
  3.   * formularz
  4.   *********************************************/
  5.  
  6. $pole1 = trim($_POST['pole1']);
  7. $pole2 = trim($_POST['pole2']);
  8. $pole3 = trim($_POST['pole3']);
  9.  
  10. if(empty($pole1) and empty($pole2) and empty($pole2)) {
  11.  
  12. // formularz
  13.  
  14.  
  15. echo '<form action="" method="post">
  16. <table>
  17. <tr><td>Tytuł: </td><td><input type="text" name="pole1" style="width: 300px; background: #000000; color: #ffffff;" /></td></tr>
  18. <tr><td>Nick: </td><td><input type="text" name="pole3" style="width: 300px; background: #000000; color: #ffffff;" /></td></tr>
  19. <tr><td>Text: </td><td><textarea type="text" name="pole2" style="width: 300px; height: 300px; background: #000000; color: #ffffff;"></textarea></td></tr>
  20. </table> <a href="http://2pac.site90.net/Newsy.php/" class="txta" target="_top"> [więcej >>]</a > <br>
  21. <input type="submit" value="Zapisz" /> <input type="reset" value="Reset" />
  22. </form>';
  23.  
  24. }
  25.  
  26.  
  27. if ($pole1 != "") {
  28.  
  29. // dane pochodzace z formularza
  30. $dane = $pole1."|".$pole2."|".$pole3."\n";
  31.  
  32.  
  33. $nowe_dane = "\r\n";
  34. // Do $tresc ładujesz zawarto?ć pliku plik.txt
  35. $tresc = file_get_contents('data.txt');
  36. // Do nowych danych doł?czasz wcze?niejsz? zawarto?ć pliku
  37. $nowe = $nowe_dane.$tresc;
  38. // Zapisz tre?ć spowrotem do pliku
  39. file_put_contents('data.txt', $nowe);
  40.  
  41. echo "Dane zostaly zapisane!<br />";
  42. echo "<a href=pokaz.php>Zobacz wpisane dane</a>";
  43.  
  44. }
  45.  
  46.  
  47. ?> <br><br><br>
  48. <script language='JavaScript' type='text/javascript'>
  49. if (document.getElementById('pole1'))
  50. {
  51. document.write("");
  52. }
  53. else
  54. {
  55. if (document.body.innerText.indexOf("Dane zostaly zapisane!")>=0)
  56. {
  57. ///
  58. }
  59. else
  60. {
  61. document.write("Karta jest pusta");
  62. document.write('<a href="index.php">wróc</a>');
  63. }
  64.  
  65. }
  66. </script>

Ja mam tak i działa. I pamiętaj że musisz nadać uprawnienia 0777 dla pliku data.txt czy jak tam go sobie nazwiesz
piotrooo89
@moto0095 to co zrobisz z tym file_get i file_put jest bez sensu, wspomniałem o file_put_contents z odpowiednią flagą: FILE_APPEND i już nie trzeba pobierać całego pliku żeby dodać coś na końcu.
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.