Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapis danych z formularza do pliku .txt
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
magik_xx
Witam wszystkich. Jestem poczatkującym i proszę o radę.
Znalazłem skrypt który miałby dopisywać dane z formularza do pliku .txt
Skrypt ten wygląda tak:
  1. <?php 
  2.  
  3. $dane="$formularz.html"; 
  4.  
  5. $file="baza.txt"; 
  6.  
  7. $fp=fopen("$file", "r+"); 
  8.  
  9. $dane=$dane.fread($fp, filesize($file)); 
  10.  
  11. rewind($fp); 
  12.  
  13. flock($fp, 2); 
  14.  
  15. fwrite($fp, $dane); 
  16.  
  17. flock($fp, 3); 
  18.  
  19. fclose($fp); 
  20. ?> 


Nie wiem dlaczego ten skrypt nie działa. Może ktoś mi pomoże smile.gif
strife
Witam,

1.
  1. <?php 
  2. $dane="$formularz.html"; 
  3. ?>

Zapisze Ci w pliku
Kod
.html
, bo jak widzisz $formularz to niezdefiniowana tutaj zmienna, a te ciapki " biorą to pod uwagę i wstawiają wartośc zmiennej która jest pusta co innego gdyby to były pojedyńcze '. Zakładam, że w tym skrypcie dane to ma być osobny plik. Tutaj podana jest tylko nazwa, która jest stringiem, aby odczytać zawartość użyj file_get_contents.

2. Skrypt działa, jednak problem, który może się u Ciebie pojawić to brak uprawnień na niego ( chmod ), bądź jego brak ( data.txt ).

3.
  1. <?php
  2. $fp=fopen("$file", "r+"); 
  3.  
  4. ?>

Ciapki w zmiennej $file nie są potrzebne.

Pozdrawiam.
magik_xx
Wyrzuciłem zmienne FILE. Zmieniłem chmod na 755! I jest tak:
Wchodzę na stronce w formularz.html, wypełniam go i wysyłam do pliku obrobka.php który ma w sobie powyższy skrypt. Coś niby się wysyła ale otwiera się ten plik obrobk.php i dalej nic. Otwiera się pusta strona w plik baza.txt pozostaje bez zmian! I o co chodzi??
strife
Dla ścisłości miałeś wyrzucić zbędne ciapki z tej zmiennej a nie ją. smile.gif

Ja Cię widocznie źle zrozumiałem. Myślałem, że formularz.html jest osobnym plikiem którego zawartość chcesz zapisać w pliku data.txt. Jednak Tobie chodzi o wysłanie danych z formularza bezpośrednio do pliku. A to jest trochę inna sprawa.

Jest późno mam dobry humor nawet winksmiley.jpg
formularz.html
  1. <form method="post" action="obrobka.php">
  2. <textarea name="zawartosc"></textarea>
  3. <input type="submit" />
  4. </form>

obrobka.php
  1. <?php
  2.  
  3. $file = 'data.txt';
  4. $data = file_get_contents( $file );
  5.  
  6. $newText = $_POST['zawartosc'] . $data;
  7.  
  8. $o = fopen( $file, "w+" );
  9. $save = fwrite( $o, $newText );
  10. fclose( $o );
  11.  
  12. ?>


Dane z textarea z formularz.html zostaną zapisane na początek pliku data.txt. Pamiętaj o uprawnieniach do pliku.

Pozdrawiam!
magik_xx
A więc ostatecznie skrypt po kilku zmianach wygląda tak: (patrząc że jest on stworzony pod formularz, który widnieje we wcześniejszym poście
  1. <?php
  2.  
  3. $file = 'data.txt';
  4. $data = file_get_contents( $file );
  5.  
  6. $newText = $_POST['zawartosc'] . "\n". $data;
  7.  
  8. $o = fopen( $file, "w+" );
  9. $save = fwrite( $o, $newText );
  10. fclose( $o );
  11.  
  12. ?>


Musze powiedzieć że działa on bez żadnych zarzutów tylko chmod musi być ustawiony dla data.txt na 777 bo inaczej nie będzie działać.
Wielkie dzięki Strike!!! Naprawde jesteś Bogiem php!!! Rkingsmiley.png
biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif

Ten post jest już zamknięty, wszystko jest w nim już oczywiste!
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-2024 Invision Power Services, Inc.