Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zapis do pliku danych z textarea
Forum PHP.pl > Forum > Przedszkole
Hubi.pl
Witam,
napisałem coś takiego:
  1. <?
  2. $plik = "../config.php";
  3. if($ok && $contents ){
  4. $fp = fopen($plik, "w");
  5. fputs($fp, $contents);
  6. fclose($fp);
  7. echo ("plik został zapisany");
  8. }
  9. else
  10. {
  11. $handle=fopen($plik,'r');
  12. $contents=fread($handle,filesize($plik));
  13. echo "
  14. <form enctype=\"text/plain\" action=\"?id=edytuj_config&ok=$ok\" method=\"Post\">
  15. <textarea name=\"contents\" rows=\"20\" cols=\"70\"> $contents </textarea>
  16. <INPUT TYPE=\"hidden\" NAME=\"ok\" VALUE=\"ok\">
  17. <INPUT TYPE=\"submit\" VALUE=\"Wyślij\">
  18. </form>";
  19. fclose($handle);
  20. }
  21. ?>


Problem w tym, że zapętla się cały czas formualrz i nie dokonuje się zapis. Co może być nie tak?tongue.gif

Pozdrawiam
kszychu
Może w linii 3 spróbuj odwołać się do zmiennych przekazanych z formularza tak, jak Bóg przykazał a nie odwalasz wolną amerykankę.
HINT: $_POST
Hubi.pl
Cytat(kszychu @ 2006-01-26 14:57:37)
Może w linii 3 spróbuj odwołać się do zmiennych przekazanych z formularza tak, jak Bóg przykazał a nie odwalasz wolną amerykankę.
HINT: $_POST

hehe ale to i tak nic nie zmieniło sad.gif

czy ma ktoś jakiś pomysł?
kszychu
Po co "ok" przekazujesz i postem i getem?
Przed warunkiem if daj sobie print_r($_POST) i zobacz czego Ci brakuje albo co jest nie takie jak powinno.
Hubi.pl
Cytat(kszychu @ 2006-01-26 15:36:35)
Po co "ok" przekazujesz i postem i getem?
Przed warunkiem if daj sobie print_r($_POST) i zobacz czego Ci brakuje albo co jest nie takie jak powinno.

zwróciło poprostu:
Kod
Array ()

i nic więcej tongue.gif

hmm... a co z tym OK jest nie tak?
Problem w tym, że ten formularz po wysłaniu wogóle zmiennych nie wysyła..
co może być nie tak?snitch.gif
strife
Cytat
hmm... a co z tym OK jest nie tak?

Jeśli masz register_globals = off to powinieneś używać zmiennych superglobalnych.
Jeśli masz:
  1. <?php
  2.  
  3. // ...
  4. if($ok && $contents ){
  5. $fp = fopen($plik, "w");
  6. // ...
  7.  
  8. ?>

To zmień to tak jak Ci doradził kszychu, czyli
  1. <?php
  2.  
  3. // ... 
  4. if($_POST['ok'] && $_POST['contents'] ){
  5. $fp = fopen($plik, "w");
  6. // ...
  7.  
  8. ?>

Następnie wtedy możesz przeprowadzić mały debug ... i naprawić błąd.

Pozdrawiam!
Hubi.pl
Ostatecznie zrobiłem tak:
  1. <?
  2. $plik = "../config.php";
  3. if(isset($_POST['ok']) && $_POST['ok']=='ok' && isset($_POST['contents']) && $_POST['contents']!=''){
  4. $fp = fopen($plik, "w");
  5. fputs($fp, stripslashes($_POST['contents']));
  6. fclose($fp);
  7. echo ("plik został zapisany");
  8. }
  9. else
  10. {
  11. $handle=fopen($plik,'r');
  12. $contents=fread($handle,filesize($plik));
  13. echo "
  14. <form action=\"?id=edytuj_config&ok=$ok\" method=\"POST\">
  15. <textarea name=\"contents\" rows=\"20\" cols=\"70\"> $contents </textarea>
  16. <INPUT TYPE=\"hidden\" NAME=\"ok\" VALUE=\"ok\">
  17. <INPUT TYPE=\"submit\" VALUE=\"Wyślij\">
  18. </form>";
  19. fclose($handle);
  20. }
  21. ?>


I pomogło biggrin.gif

Dzięki za pomoc!
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.