Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] - Zapis danych z formularza do pliku .txt
Forum PHP.pl > Forum > Przedszkole
Tamaki
Witam,

Mam poważny kłopot z zapisem danych z formularza do pliku tekstowego. Kod musi być dobry, ponieważ sprawdzałam już w bardzo wielu źródłach i próbowałam na różne sposoby, jednak wciąż nic się nie dzieje przy próbie zapisu. Z odczytem za to nie ma żadnych problemów. Jeśli ktoś byłby w stanie pomóc to będę ogromnie wdzięczna.

  1. $dane = $_POST["kolor"];
  2. $file = "kolor.txt";
  3. $fp = fopen($file, "w");
  4. fwrite($fp, $dane);
  5. fclose($fp);


Ten kod działa:
  1. $file = "kolor.txt";
  2. $f = fopen($file, "r");
  3. $k = fread($f, filesize("kolor.txt"));
  4. fclose($fp);


echo($dane) wyświetla mi poprawną wartość. Nawet gdy zamienię $dane na dowolny tekst również zapis nie działa :<
Kshyhoo
Pierwszy kod działa.

To pewnie problem z formularzem?
Tamaki
W formularzu jest przycisk typu "button", poprawnośc wprowadzonych danych jest sprawdzana przez onclicka w js, po czym typ przycisku zmieniany jest na "submit" w linijce document.forms[0].submit(); Spróbowałam pominąć sprawdzanie i od razu dać przyciskowi "submita" jednak niestety nie przyniosło to rezultatów...
Tamaki
Hmmm, poza tym tak jak napisałam, nawet po zmianie $dane na dowolny tekst (bez przypisywania wartości pobranej z formularza) skrypt nie działa. A więc nie może to być winą formularza..
Turson
  1. $dane = $_POST['kolor']
  2. file_put_contents('kolor.txt', $dane);
Tamaki
Niestety teraz wywala mi błąd:

Parse error: syntax error, unexpected 'file_put_contents' (T_STRING) in /home/vhosts/mojepodroze.eu5.org/przejsciowy.php on line 19
Turson
Bez przesady, że nawet braku średnika po $dane nie dojrzysz
Kshyhoo
  1. <?php
  2. $_POST["kolor"] = 'red';
  3.  
  4. $dane = $_POST["kolor"];
  5. $file = "kolor.txt";
  6. $fp = fopen($file, "w");
  7. fwrite($fp, $dane);
  8. fclose($fp)
  9. ?>

Może teraz ruszy smile.gif
Tamaki
Wybacz, zmęczona już jestem, bo siedzę nad tym projektem od kilkunasu godzin, a na takiej pierdole się zacięłam. Poprawiony kod również nie działa. Nie mam bladego pojęcia co jest nie tak, skoro teoretycznie poprawnie napisane skrypy nie działają. Działa mi natomiast wyświetlanie z pliku. Postanowiłam rozwiązać swój problem przy użyciu mysql'a, chociaż nie ukrywam, że wolałabym rozwikłać to w php.
Tamaki
@Kshyhoo, niestety to także nie przyniosło rezultatu. Wciąż dzieje się nic. Nie wiem czy to wina po stronie serwera, ale raczej wątpliwe, skoro wszystko inne działa. Wpisany wczesniej tekst w kolor.txt wciąz jest ten sam i nic się nie zmienia. To samo w przypadku pustego pliku.
Kshyhoo
Pewnie masz rację, bo u mnie się zapisuje.

Przestudiuj ten kod:
  1. function v($value) {
  2. return str_replace('|', '\|', trim($value));
  3. }
  4.  
  5. if($_GET['action'] == 'add') {
  6. if(!empty($_POST['value'])) {
  7. $value = v($_POST['value']);
  8.  
  9. if(empty($value)) {
  10. echo 'elo pusto';
  11. } else {
  12. $data = file_get_contents($path);
  13.  
  14. if(is_string($data)) {
  15. if(empty($data)) {
  16. $data = $value;
  17. } else {
  18. $data = explode('||', $data);
  19. $data[] = $value;
  20. sort($data);
  21. $data = implode('||', $data);
  22. }
  23.  
  24. echo (file_put_contents($path, $data, LOCK_EX) ? 'zapisano' : 'nie zapisano');
  25. } else {
  26. // uhm fail read file?
  27. }
  28. }
  29. } else {
  30. echo '<form action="?action=add" method="post"><input name="value"><input type="submit"></form>';
  31. }
  32. }
Tamaki
No pięknie.. Okazało się, że na innym serwerze wszystko śmiga w pierwotnej wersji. Taka złośliwość rzeczy martwych, która potrafi zatruć człowiekowi życie na parę ładnych godzin biggrin.gif Cóż, wielkie dzięki w takim razie za zaangażowanie smile.gif
Kshyhoo
Polecamy się na przyszłość smile.gif Lepiej się zarejestruj...
Turson
Może plik nie ma uprawnień do edycji... Sprawdź chmod
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.