Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zapis do pliku tekstowego
Forum PHP.pl > Forum > Przedszkole
koptus
Witam!
Robie sobie po kolei przyklady z PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty, az napotkałem spory problem który po kilkukrotnym przyjrzeniu się nie byłem wstanie naprawić

  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" 
  4.  content="text/html; charset=iso-8859-2">
  5. <title>Części samochodowe Janka - wyniki zamówienia</title>
  6. </head>
  7. <body>
  8. <?php 
  9. $iloscopon = $_POST['iloscopon']; //tworzenie zmiennych na poczatku
  10. $iloscoleju = $_POST['iloscoleju'];
  11. $iloscswiec = $_POST['iloscswiec'];
  12. $adres = $_POST['adres'];
  13.  
  14. $DOCUMENT_ROOT = $_SERVER[&#8242;DOCUMENT_ROOT′];
  15. ?>
  16. <h1>Części samochodowe Janka</h1>
  17. <h2>Wyniki zamówienia</h2>
  18. <?php 
  19. $ilosc = 0;
  20. $ilosc = $iloscopon + $iloscoleju + $iloscswiec;
  21. if ( $ilosc == 0 ) 
  22. {
  23. echo '<font color=red>';
  24. echo 'Na poprzedniej stronie nie zostalo zlożone żadne zamówienie<br />';
  25. echo '</font>';
  26. }
  27. else 
  28. {
  29. echo '<p>Zamówienie przyjęto o '; // widok zmowienia
  30. echo date ('H:i. jS F'); //data
  31. echo '</p>';
  32. echo 'Zamówienie wygląda następująco<br>';
  33. if ( $iloscopon > 0)
  34. {
  35. echo $iloscopon . ' opon<br />';
  36. }
  37. if ( $iloscoleju > 0)
  38. {
  39. echo $iloscoleju . ' butelek oleju<br />';
  40. }
  41. if ( $iloscswiec > 0)
  42. {
  43. echo $iloscswiec . ' świec zaplonowych<br />';
  44. }
  45.  echo 'Zamówionych czesci: '.$ilosc.'<br />';
  46. if ( $iloscopon < 10 )
  47. $znizka = 0;
  48. elseif ( $iloscopon >= 10 && $iloscopon <= 49 )
  49. $znizka = 5;
  50. elseif ( $iloscopon >= 50 && $iloscopon <= 99 )
  51. $znizka = 10;
  52. elseif ( $iloscopon >= 100 )
  53. $znizka = 15;
  54.  
  55.  
  56. define("CENAOPON", 100); //definiujemy ceny dla poszczegolnych czesci
  57. define("CENAOLEJU", 10);
  58. define("CENASWIEC", 4);
  59. $wartosc = 0.00;
  60. $wartosc = $iloscopon * CENAOPON 
  61. + $iloscoleju * CENAOLEJU 
  62. + $iloscswiec * CENASWIEC;
  63. echo 'Cena netto: '.number_format($wartosc, 2).' zl lacznie<br />';
  64. $stawkavat = 0.22; //vat 22%
  65. $wartosc = $wartosc * (+ $stawkavat);
  66. echo 'Cena brutto: '.number_format($wartosc, 2).' zl lacznie<br />';
  67. echo '<br /><br />';
  68. if ( $znizka > 0 )
  69. {
  70. echo 'Rabat za zakup '.$iloscopon.' opon wynosi '.$znizka.' procent<br />'; 
  71. }
  72. $wartosc = ($wartosc * (100 - $znizka))/100;
  73. echo '<b>Cena z rabatem: '.number_format($wartosc, 2).' zl lacznie</b><br />';
  74. echo '<b>Adres: </b>' .$adres.'<br />';
  75. }
  76. $ciagwyjsciowy = $data."\t".$iloscopon." opon \t".$iloscoleju." butelek oleju\t"
  77. .$iloscswiec." swiec\t".$wartosc
  78. ."PLN ". $adres."\n";
  79. // otwarcie pliku w celu dopisywania
  80. $wp = fopen($DOCUMENT_ROOT . "/php/zamowienia/zamowienia.txt", 'ab');
  81.  
  82. if (!$wp)
  83. {
  84. echo '<p><strong> Zamówienie Państwa nie może zostać przyjęte w tej chwili. '
  85.  .'Proszę spróbować później.</strong></p></body></html>';
  86. }
  87. fwrite($wp, $sciagwyjsciowy, strlen($ciagwyjsciowy));
  88. fclose($wp);
  89. echo 'Zamowienie zostalo zapisane';
  90. ?>
  91. </body>
  92. </html>


niby wszystko elegancko, po wyslaniu dostaje komunikat "Zamowienie zostalo zapisane" ale plik zamówienia.txt jest wciaz pusty, CHMOD dla folderu i pliku - 777. Proszę o pomoc.
l0ud
  1. <?php
  2. $wp = fopen($DOCUMENT_ROOT . "/php/zamowienia/zamowienia.txt", 'ab');
  3. ?>


Nie ma co tak komplikować. Poza tym nie znam takiej flagi 'b' Zamień na:

  1. <?php
  2. $wp = fopen('zamowienia/zamowienia.txt', 'a');
  3. ?>


Upewnij się że w folderze ze skryptem masz folder zamowienia a w nim zamowienia.txt
phpion
Cytat(l0ud @ 21.03.2008, 16:54:51 ) *
  1. <?php
  2. $wp = fopen($DOCUMENT_ROOT . "/php/zamowienia/zamowienia.txt", 'ab');
  3. ?>

Nie ma co tak komplikować.

Podawanie ścieżki bezwzględnej jest zdecydowanie lepszym rozwiązaniem niż zaproponowane przez ciebie rozwiązanie ze ścieżką względną. Zmienisz coś w strukturze katalogów, przebudujesz hierarchię i będzie kupka.
Cytat(l0ud @ 21.03.2008, 16:54:51 ) *
Poza tym nie znam takiej flagi 'b'

W takim razie zapraszam: fopen" title="Zobacz w manualu PHP" target="_manual.

@koptus:
Spójrz na drugi parametr:
  1. <?php
  2. fwrite($wp, $sciagwyjsciowy, strlen($ciagwyjsciowy));
  3. ?>

Chyba powinno być $ciagwyjsciowy smile.gif
l0ud
Faktycznie moja odpowiedź była dość niefortunna. wstydnis.gif Wybacz za wprowadzenie w błąd.
koptus
Dzięki wielkie za pomoc, zapisuje się elegancko. Problem teraz w tym, że nie zapisuje daty, zostawione jest wolne miejsce w pliku "zamowienia.txt". Czy ktoś wie co powoduje ten problem?

EDIT: ok juz wiem brakuje
$data=date('H:i. jS F'); //data
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.