Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wływ zjawisk atmosferycznych na działanie funkji fwrite(), Jak zwykle coś nie działa
Boski
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A teraz zgodnie z tematem kiedy zaczął padać śnieg skrypt przestał działać jak to sie zwykle w przyrodzie dzieje. Ale co zrobić żeby zaczął. Skrypt działał 2 miesiąc bezbłędnie. A teraz kiełbasa.

  1. <?php
  2. if ($_GET['funkcja'] == "edytuj"){
  3.  
  4. // zrzut do zmiennej bez usunięcia tagów html ponieważ właśnie kod html ma to zapa
    sywać
  5.  
  6. $text = $_POST['text'];
  7.  
  8. //usunięcie backslash'y
  9.  
  10. $backslfile = fopen("backslash.txt","r");
  11. $replace = fread($backslfile, filesize("backslash.txt"));
  12. fclose($backslfile);
  13. $text = str_replace($replace,"",$text);
  14.  
  15. //usunięcie ampersandów 
  16.  
  17. $text = str_replace("&","&amp;",$text);
  18.  
  19. //ustawienie ścieżki dostępowej pliku
  20.  
  21. $plik = "../page/".$_GET['page'].".php";
  22.  
  23. //Warunek plik istnieje
  24.  
  25. if (file_exists($plik)) {
  26.  
  27. //zapis do pliku
  28.  
  29. $file = fopen($plik,"w");
  30.  
  31. //Warunek zapisano
  32.  
  33. if (fwrite($file,$text) == FALSE) {
  34. echo "<a href='http://25.zhr.pl/admin/index.php?page=".$_GET['page']."'>Nie mogę zapisać do pliku</a>";
  35. fclose($file);
  36. }
  37.  
  38. // warunek nie zapisano
  39.  
  40. else{ 
  41. fclose($file);
  42. $_GET['zapis'] = 1;
  43. }
  44. }
  45.  
  46. // warunek lik nie istnieje
  47.  
  48. else{
  49. echo "<a href='http://25.zhr.pl/admin/index.php?page=".$_GET['page']."'>Błąd zapisu pliku. Plik nie istnieje.</a>"; 
  50. }
  51. }
  52. ?>

Dziwne kiedyś działał teraz nie. Nie zwraca błędu. A plik otwiera kasuje jego zawartość ( parametr "w") jednak nic w nim nie zapisuje. Z góry dziękuje za wyjaśnienie tego zjawiska.

P.S. chmod dla pliku jest "777"
Go to the top of the page
+Quote Post
b_chmura
post
Post #2





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


  1. <?php
  2. if ($_GET['funkcja'] == "edytuj")
  3. {
  4. $text = $_POST['text'];
  5. /////////////////////////////////////////////////////////////////
  6. $backslfile = fopen("backslash.txt","r"); //
  7. $replace = fread($backslfile, filesize("backslash.txt")); // co to robi?
  8. fclose($backslfile);  //
  9. $text = str_replace($replace, "",$text);  //
  10. /////////////////////////////////////////////////////////////////
  11. $text = str_replace("&","&amp;",$text);
  12. $plik = "../page/".$_GET['page'].".php";
  13.  
  14. if(file_exists($plik))
  15. {
  16. $file = fopen($plik,"w");
  17. if(fwrite($file,$text) === FALSE) //tu powinny być 3 znaki = (tak jak jest teraz)
  18. {
  19. fclose($file);
  20. exit("<a href='http://25.zhr.pl/admin/index.php?page=".$_GET['page']."'>Nie mogę zapisać do pliku</a>");
  21. }
  22. else
  23. { 
  24. fclose($file);
  25. $_GET['zapis'] = 1;
  26. }
  27. }
  28. else
  29. {
  30. exit("<a href='http://25.zhr.pl/admin/index.php?page=".$_GET['page']."'>Błąd zapisu pliku. Plik nie istnieje.</a>"); 
  31. }
  32. }
  33. ?>
Go to the top of the page
+Quote Post
Boski
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


ponieważ nie mogę wstawić backslasha do zmiennej ponieważ cudzysłów który się za nim znajduje zostanie potraktowany jak string i error parsera Unexpected T_ String exected " or ;

  1. <?php
  2. $zmienna = "\";
  3. ?>


dlatego stworzyłem plik testowy o długości 1 znaku który zawiera backslasha winksmiley.jpg
po odczytaniu tego pliku mogę wszystkie backslashe ze zmiennej zamienić na pusty string

  1. <?php
  2. $backslfile = fopen("backslash.txt","r");
  3. $replace = fread($backslfile, filesize("backslash.txt"));
  4. fclose($backslfile);
  5. $text = str_replace($replace,"",$text);
  6. ?>
Go to the top of the page
+Quote Post
b_chmura
post
Post #4





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


Cytat(Boski @ 22.12.2007, 13:56:21 ) *
ponieważ nie mogę wstawić backslasha do zmiennej ponieważ cudzysłów który się za nim znajduje zostanie potraktowany jak string i error parsera Unexpected T_ String exected " or ;

  1. <?php
  2. $zmienna = "\";
  3. ?>


dlatego stworzyłem plik testowy o długości 1 znaku który zawiera backslasha winksmiley.jpg
po odczytaniu tego pliku mogę wszystkie backslashe ze zmiennej zamienić na pusty string

  1. <?php
  2. $backslfile = fopen("backslash.txt","r");
  3. $replace = fread($backslfile, filesize("backslash.txt"));
  4. fclose($backslfile);
  5. $text = str_replace($replace,"",$text);
  6. ?>



poczytaj o addslashes" title="Zobacz w manualu PHP" target="_manual oraz stripslashes" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
Boski
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Fakt. Często to stosuje ale że robiłem to dawno, szybko , i działo to tego zapomniałem o stripslashes(). Lecz nadal nie zapisuje poprawnie do pliku.
Go to the top of the page
+Quote Post
b_chmura
post
Post #6





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


  1. <?php
  2. if ($_GET['funkcja'] == "edytuj")
  3. {
  4. $text = str_replace("&","&amp;",stripslashes($_POST['text']));
  5. $plik = "../page/".$_GET['page'].".php";
  6.  
  7. if(file_exists($plik))
  8. {
  9. if(!file_put_contents($plik, $text))
  10. {
  11. exit("<a href='?page=".$_GET['page']."'>Nie mogę zapisać do pliku</a>");
  12. }
  13. else
  14. { 
  15. $_GET['zapis'] = 1;
  16. }
  17. }
  18. else
  19. {
  20. exit("<a href='?page=".$_GET['page']."'>Błąd zapisu pliku. Plik nie istnieje.</a>"); 
  21. }
  22. }
  23. ?>
Go to the top of the page
+Quote Post
Boski
post
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Sprytne co nie zmienia faktu ze ten sam efekt co na poczatku.smile.gif
Go to the top of the page
+Quote Post
b_chmura
post
Post #8





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


  1. <?php
  2. echo $_GET['funkcja'];//sprawdz czy faktycznie $_GET['funkcja'] równa sie "edytuj"
  3.  
  4. if ($_GET['funkcja'] == "edytuj") 
  5. {
  6. $text = str_replace("&","&amp;",stripslashes($_POST['text']));
  7. $plik = "../page/".$_GET['page'].".php";
  8.  
  9. if(file_exists($plik))
  10. {
  11. if (is_writable($plik)) //dddaj taki warunek
  12. { //
  13. if(!file_put_contents($plik, $text))
  14. {
  15. exit("<a href='?page=".$_GET['page']."'>Nie mogę zapisać do pliku</a>");
  16. }
  17. else
  18. { 
  19. $_GET['zapis'] = 1;
  20. }
  21. } //
  22. else //
  23. { //
  24. exit('Błąd, plik nie jest zapisywalny'); //
  25. } //
  26. }
  27. else
  28. {
  29. exit("<a href='?page=".$_GET['page']."'>Błąd zapisu pliku. Plik nie istnieje.</a>"); 
  30. }
  31. }
  32. ?>
Go to the top of the page
+Quote Post
Boski
post
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Funkcja równa się edytuj a plik dalej otwiera kasując zawartość pliku po czym nic w nim nie zapisuje.

Dodam tylko że:
  1. <?php
  2. $text = str_replace("&","&amp;",stripslashes($_POST['text']));
  3. echo $text ;
  4. ?>


poprawnie wyświetla zawartość zmiennej

Ten post edytował Boski 22.12.2007, 15:02:34
Go to the top of the page
+Quote Post
phpion
post
Post #10





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Wyświetl sobie zawartość $_POST['text'] i zobacz co Ci wypisze.
Go to the top of the page
+Quote Post
b_chmura
post
Post #11





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


widocznie zmienna $_POST['text'] jest pusta
Go to the top of the page
+Quote Post
Boski
post
Post #12





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


no nie. Wyświetla dobrze całą treść zmiennej z wszystkimi wprowadzonymi zmianami...

Ten post edytował Boski 22.12.2007, 15:08:54
Go to the top of the page
+Quote Post
b_chmura
post
Post #13





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


w takim wypadku wina leży po stronie serwera, sprawdź czy masz na nim jeszcze miejsce ewentualnie skontaktuj sie z administratorem.
Go to the top of the page
+Quote Post
Boski
post
Post #14





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


miejsce powinno być głowy nie dam spoko dzięki bo już myślałem że to mi coś umysł zamroczyło czy porostu coś sie zachrzaniło:)
Go to the top of the page
+Quote Post
phpion
post
Post #15





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zmień:
  1. <?php
  2. if(!file_put_contents($plik, $text))
  3. ?>

na:
  1. <?php
  2. if(!file_put_contents($plik, 'nanana'))
  3. ?>

Może później w kodzie czyścisz zawartość pliku?
Go to the top of the page
+Quote Post
Boski
post
Post #16





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


wtedy poprawnie zapisuje "nanaanan"
Go to the top of the page
+Quote Post
b_chmura
post
Post #17





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


Cytat(Boski @ 22.12.2007, 16:07:52 ) *
wtedy poprawnie zapisuje "nanaanan"


to upewnij się czy masz coś w $_POST['text']'

przy
  1. <?php
  2. $_GET['zapis'] = 1;
  3. ?>

dopisz
  1. <?php
  2. echo $_POST['text'];
  3. ?>
Go to the top of the page
+Quote Post
Boski
post
Post #18





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


pisałem wcześniej niezależnie gdzie zmienną wyświetla dobrze...
Go to the top of the page
+Quote Post
b_chmura
post
Post #19





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


w takim razie sprawdź jeszcze raz czy manualnie czy zapisze np"
Kod
text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text
Go to the top of the page
+Quote Post
Boski
post
Post #20





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 22.12.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


sprawą zajął się administrator serwera więc spoko damy rade
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 01:55