Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: file_put_contents() - nie nadpisuje plików
Forum PHP.pl > Forum > Przedszkole
blackneron
Jest problem z zapisywaniem stringów do pliku przy pomocy file_put_contents(). Na lokalu wszystko gra, natomiast na serwerze już nie. Nie wiem w gdzie robię błąd.

  1. <?php
  2. $handle_main = "../pliki/glowna.html";
  3. $tresc_main = file_get_contents($handle_main);
  4.  
  5. // form
  6. echo "<input type=\"text\" name=\"main\">";
  7.  
  8. file_put_contents("../pliki/glowna.html", stripslashes($_POST[main]));
  9. ?>
osl
skoro na localu działa, to może jakieś uprawnienia do katalogu/pliku który chcesz nadpisać na serwerze?
nie nadpisuje czy w ogóle nic nie zapisuje (nawet jak nie ma pliku o takiej nazwie)?
wookieb
Włącz pełne raportowanie błędów. Zapewne masz nieodpowiedni chmod dla tego pliku.
Pawel_W
  1. <?php
  2. chmod("../pliki/glowna.html", 0777);
  3. ?>

i po krzyku...
blackneron
Włączyłem raportowanie wszystkich błędów no i wyskoczyło takie info:


Na lokalu:
Notice: Use of undefined constant main - assumed 'main' in C:\xampp\htdocs\......\index.php on line 204


Na serwerze:
Fatal error: Call to undefined function: file_put_contents() in /yy/zzz/people/ttt/www/xxx/index.php on line 204
nospor
nie ma file_put_Contents. nie ma, bo odpalasz to na php4 winksmiley.jpg
Pawel_W
daj coś takiego:
  1. <?php
  2. if(function_exists('file_put_contents'))
  3. echo 'jest';
  4. else
  5. echo 'nie ma';
  6. ?>
nospor
@Pawel_W przeciez juz wiemy ze nie ma. Musisz miec to na pismie? winksmiley.jpg

@blackneron jak na serwerze nie mozesz miec php5, to tu:
http://pl2.php.net/manual/pl/function.file-put-contents.php
w komentarzach masz opisane jak napisac wlasne file_put_contents
erix
Proszę o tag tematu.
blackneron
OK, już wszystko gra, na serwerze nie był zainstalowany PHP5.

  1. <?php
  2. if (!function_exists('file_put_contents')) {
  3.    function file_put_contents($filename, $data) {
  4.        $f = @fopen($filename, 'w');
  5.        if (!$f) {
  6.            return false;
  7.        } else {
  8.            $bytes = fwrite($f, $data);
  9.            fclose($f);
  10.            return $bytes;
  11.        }
  12.    }
  13. }
  14. ?>
erix
Prosiłem raz, olałeś.

Ja też olewam.
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.