Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Zapis liczby do pliku
Forum PHP.pl > Forum > PHP
w_mario
Hejka,

Szukalem wszedzie, nigdzie nie znalazlem. Potrzebuje zapisac do pliku tekst (string) i liczbe (integer). Uzywam tego kodu:
  1. //przyporzadkowanie pliku do streamu
  2. $str = fopen("orders.txt","r+");
  3. //stworzenie linijki do zapisania - $totalCost to jest integer, reszta to stringi z formularza
  4. $stringToSave = $_POST['firstName']." ".$_POST['lastName']." ".$_POST['address']." ".$_POST['email']." ".$totalCost;
  5.  
  6. //zapis do pliku
  7. if (fwrite($str, $stringToSave) == FALSE)
  8. echo "There was an error while writing to the file. Please contact us.";
  9. else
  10. echo "Detail has been succesfully saved to file";


a wynik w pliku jest taki (wraz ze spacjami na poczatku):
Kod
    1500name Address email@domain.ups 1500


gdzie dane z formularza to po kolei: Name, Surname, Address, email@domain.ups a totalCost sie rowna 1500

Czy moze mi ktos wskazac co robie zle? Wyglada na to, ze skrypt najpierw poprawnie zapisuje, po czym dodaje dodatkowy zapis samego integera (totalCost) poprzedzonego spacjami. Jak uniknac dodatkowego zapisu do pliku? Albo po prostu, jak to zapisac do pliku? Probowalem tez zapisywac sam totalCost z w+ - wtedy zapisuje go dwa razy.
MateuszS
  1. $name='Mateusz'; // $_POST['name'];
  2. $surname='Scirka'; // $_POST['surname'];
  3. $address='adres 52'; // $_POST['address'];
  4. $totalCost=1500;
  5. $open=fopen('orders.txt','a+');
  6.  
  7. $string=$name.' '.$surname.' '.$address.' '.$totalCost. "\r\n"; // \n dla serwera na linuxie
  8. $save=fputs($open,$string);
  9.  
  10. if($save==true) {
  11. echo 'Saved';
  12. } else {
  13. echo 'Error';
  14. }
  15.  
  16. fclose($open);


Mi tak dziala
w_mario
Dzieki za odpowiedz.
U mnie wynikiem twojego kodu jest:
Kod
Mateusz Scirka adres 52 1500
Mateusz Scirka adres 52 1500


Nie wiem dlaczego mi zapisuje podwojnie do pliku?
A i to raczej nie jest wina mojej instalacji, bo w domu php siedzi na windzie, ale testowalem tez na unixie i bylo to samo. Jakies pomysly?

Problem rozwiazany, dzieki za pomoc. Twoj kod oczywiscie dziala poprawnie... wklejony do nowego pliku php smile.gif

Problem byl z moim starym plikiem, w ktorym byl slideshow zrobiony w JavaScript, a wywolywalem go dla tego elementu:
  1. <img id="show" width="400" height="170" src="" alt=""></img>

Z racji, ze dynamicznie zmienialem mu zawartosc (przy ladowaniu strony) zostawilem atrybuty src i alt puste. I to bylo powodem podwojnego zapisu do pliku. Moze sie komus przyda. Dzieki.
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.