Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapisywanie do pliku nie działa
Forum PHP.pl > Forum > Przedszkole
Peter15
Mam postawionego apache z php i wszystkimi modami co są w instalacji fedory core 3.
mam skrypta na zapis pliku:

$string="Hello world";


$plik=fopen("chat.txt", "w");

fputs($plik, "$string\n");

ale nie działa mi on. Chodzi mi o to by do pliku byly dopisywane linijki za pomocą pla formularza, ale jak narazie nawet to nie chce działać

Próbowałe jeszcze coś takiego ale tesz nie działa sad.gif
  1. <?php
  2.  
  3. $dane = &#092;"tekst do wprowadzenian\";
  4.  
  5. $file = &#092;"baza.txt\";
  6.  
  7. $fp = fopen($file, &#092;"a\");
  8.  
  9. flock($fp, 2);
  10.  
  11. fwrite($fp, $dane);
  12.  
  13. flock($fp, 3);
  14.  
  15. fclose($fp);
  16. ?>


Czego to wina i jak to naprawić, jakaś zmiana w pliku php.ini czy coś z kodem


---
poprawiłem bbcode, ponieważ Peter15 napisał go jako niezarejestrowany.
Peter15:
olo
scanner
Brak BBCode.
Popraw, albo zamknę.
Peter15
Cytat
Brak BBCode.
Popraw, albo zamknę.

Chetnie ale gdzie tu edycja swoich postów blink.gif A tak wogle to czy te przyciski nie mogły by być po Polsku
A już wiem o co chodzi, to mam to jeszcze raz pisać?? Dla mnie to obojetne ale to troche bez senu. Wyedytować nie moge bo jak to pisałem nie byłem jeszcze zarestrowany

Forgive me
ARJ
[OT]przecież całe forum jest po polsku[/OT]
Peter15
Dobra nieh i tak będzie ale wie może ktoś wczym tkwi problem w tym kodzie, jak komuś przeszkadza brak tego kode php to moge jeszcze raz napisać, ale prosze was o rade i wyjaśnienie

Przeglądałem sporo skryptów na zapis do pliku txt ale nie działają. Może to wina Apacha którego mam na fedorze 3. Zainstalowany został przy instalacji

Cała zawartośc pliku dol.php, który ma zapisywac to co wpisał użytkownik do pliku:
  1. <HTML>
  2. <HEAD>
  3. <META http-equiv=\"Content-type\"
  4. content=\"text/html; charset=iso-8859-2\">
  5. </HEAD>
  6.  
  7. <BODY BGCOLOR=WHITE TEXT=BLACK>
  8. <FORM method=\"POST\" ACTION=dol.php NAME=formularz>
  9. <INPUT TYPE=TEXT SIZE=80 MAXLENGTH=80 NAME=bzdury>
  10. <input type=\"submit\" name=\"Submit\" value=\"Wy[lij\">
  11.  
  12. <?
  13.  
  14. $peter=$_POST['bzdury'];
  15. // zmienna $dane, która będzie zapisana
  16. // może także pochodzić z formularza np. $dane = $_POST['dane'];
  17. $dane = $peter;
  18.  
  19. // przypisanie zmniennej $file nazwy pliku
  20. $file = &#092;"chat.txt\";
  21.  
  22. // uchwyt pliku, otwarcie do dopisania
  23. $fp = fopen($file, &#092;"a\");
  24.  
  25. // blokada pliku do zapisu
  26. flock($fp, 2);
  27.  
  28. // zapisanie danych do pliku
  29. fwrite($fp, $dane);
  30.  
  31. // odblokowanie pliku
  32. flock($fp, 3);
  33.  
  34. // zamknięcie pliku
  35. fclose($fp); 
  36.  ?>
  37. </FORM>
  38. </BODY>
  39. </HTML>

Co jest źle i jak powinno być. A jeśli jest dobrze to co trzeba zmienić w ustawieniach serwera??

Ok, już wiem w form method powinno być Post
A jak zrobić by dopisywało to się w kolejnej linice??
$dane="<br> $do co wpisal urzytkownik"; Rozwiązałem sam swoje problemy. Coś mnie oświeciło. Wybaczcie początkującemu
Ociu
  1. <?php
  2.  
  3. # plik: plik.php
  4. # formularz wyswietla sie gdy damy link plik.php?id=form
  5. switch($_GET['id']) 
  6. {
  7. case form:
  8.  echo '<FORM method=\"POST\" ACTION=plik.php?id=add NAME=formularz>
  9. <INPUT TYPE=TEXT SIZE=80 MAXLENGTH=80 NAME=bzdury>
  10. <input type=\"submit\" name=\"Submit\" value=\"Wy[lij\">
  11. ';  
  12. break;
  13.  
  14. case add:
  15.  $dane=$_POST['bzdury'];
  16. // przypisanie zmniennej $file nazwy pliku
  17. $file = &#092;"chat.txt\";
  18.  
  19. // uchwyt pliku, otwarcie do dopisania
  20. $fp = fopen($file, &#092;"w\");
  21.  
  22. // zapisanie danych
  23. fputs($file, $dane);
  24.  
  25. // zamknięcie pliku
  26. fclose($file);
  27. break;
  28. }
  29.  
  30. ?>

Jako, ze z plików txt jest cienki zmodyfikowałem twój kod.
pozdrawiam

Edit: przejrzałem niektóre kursy i stwierdziłem że kod który podałem jest 'troche' zły. Korzystając z tego poprawiłem troche kod.
sf
@badme, jako, że Twój kod jest cienki pozwoliłem sobie go zmodyfkować :}}}}

  1. <?php
  2. $FILE = 'chat.txt';
  3.  
  4. if(isset($_POST['bzdury'])) {
  5. if(is_writable($FILE)) {
  6. $fp = fopen($FILE, &#092;"a\");
  7. fwrite($fp, $_POST['bzdury']);
  8. fclose($fp);
  9. }
  10. else {
  11. echo 'Brak praw do zapisu';
  12. }
  13. }
  14. else {
  15. echo '<form method=\"post\" action=\"'.$_SERVER['PHP_SELF'].'\">';
  16. echo '<input type=\"text\" size=\"80\" maxlenght=\"80\" name=\"bzdury\" />';
  17. echo '</form>';
  18. }
  19. ?>
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.