Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zapis danych z formularza do pliku.
Forum PHP.pl > Forum > Przedszkole
majkel1994
Nie potrafię zapisać danych z formularza w pliku tekstowym. A chodzi mi o ten wycinek kodu:
Kod
<font size=40><font color="navy"><font face="arial"><i>Wrzuciłeś film!</p></i></font></font></font>
Filmik:<br>
<?php echo $_GET ['link'] ?></p>
Wrzucone przez:<br>
<?php echo $_GET ['ksywa'] ?></p>
$links=$_GET['link'];
$ksywa=$_GET ['ksywa'];
Rodzaj: <br>
<?php switch($_GET['zamow']){
   case "Humor":
     echo "Humor";
    
    
    
     break;
   case "Bramki":
     echo "Bramki";
     break;
   case "Kibice":
     echo "Kibice";
     break;
    case "Gry":
     echo "Gry";
     break;
   }
?>
  

</b></td></tr></table>


</body>



Ten kod dziala dobrze, ale kiedy do switcha dodaje polecenie zapisu do pliku(probowalem z kilku stron, kursow)(otwarcie pliku, pobranie danych, zamkniecie pliku, dopisanie nowych danych, otwarcie pliku, zapisanie danych i zamkniecie) za kazdym razem pokazuje sie blad. kiedy dopisze np.: $link=$_GET['link']; przed switchem to blad przesuwa sie o linijke. co zrobic zeby zapisywalo mi np humor do humor.txt itd.(pliki mam stworzone w folderze. Dodam ze czytanie danych z pliku za pomoca readfile() dziala. A oto kod ktory wstawilem do zapisu:
Kod
// wczytanie starych danych
   // otwarcie pliku do odczytu
   $fp = fopen("humor.txt", "r");
  
   //odczytanie danych
   $stareDane = fread($fp, filesize("humor.txt"));
  
   // zamknięcie pliku
   fclose($fp)
  
   // stworzenie nowych danych
   $noweDane  = $_GET['link'];
//probowalem tutaj dodac takze zmienne $link tak jak pisalem wyzej.
   $noweDane .= $stareDane;
  
// zapisanie nowych danych
   // otwarcie pliku do zapisu
   $fp = fopen("humor.txt", "w");
  
   // zapisanie danych
   fputs($fp, $noweDane);
  
   // zamknięcie pliku
   fclose($fp);

Prosze o pomoc.
darko
Nie pokazałeś samego formularza, ani komunikatu błędu, co moze być kluczowe. Jeśli chcesz dopisywać dane do końca pliku wystarczy, że podasz funkcji fopen jako tryb "a+". Zastanowiłbym się jednak w Twoim przypadku nad użyciem funkcji file_get_contents() and file_put_contents() jako bardziej wydajne przy większej ilości danych.
bastard13
Jeżeli chcesz dopisać na końcu pliku to wystarczy:
  1. $fp = fopen("humor.txt", "a+"); //otwieranie pliku do zapisu i odczytu, zapis na końcu pliku
  2. fwrite($fp,$noweDane); //dodaje nowe dane na końcu pliku
  3. fclose($fp);
amii
Może spróbuj tak, daj też na początku raportowanie błędów:
  1. ini_set( 'display_errors', 'On' );
  2. error_reporting( E_ALL );



  1. $stareDane = file_get_contents('humor.txt');
  2.  
  3. // stworzenie nowych danych
  4. $noweDane = trim($_GET['link']);
  5. //probowalem tutaj dodac takze zmienne $link tak jak pisalem wyzej.
  6. $noweDane .= $stareDane;
  7.  
  8. // zapisanie nowych danych
  9. // otwarcie pliku do zapisu
  10. $fp = fopen("humor.txt", "w");
  11.  
  12. // zapisanie danych
  13. fwrite($fp, $noweDane);
  14.  
  15. // zamknięcie pliku
  16. fclose($fp);
majkel1994
Problem rozwiązany. Dziękuje amii'emu. Temat do zamknięcia.( Wczesniejszych rozwiazan nie sprawdzalem, poniewaz zalezy mi na tym ,aby dane byly dopisane do pliku na jego poczatku)
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.