Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Niedziałające fopen(); fwrite();
Forum PHP.pl > Forum > PHP
colinQ
Mam mały problem. Mam książkę php i MySQL Luke'a Welling'a i uczę się z niej php. Mój problem polega na tym że niedziała mi funkcja

fopen();
fwrite();
itp.

Wyświetla mi błąd

Warning: fopen(/zamowienia.txt) [function.fopen]: failed to open stream: Permission denied in /home/konrad/domains/konradkolasa.exh.pl/public_html/php-MySQL/rozdzial_02/przetworzzamowienie.php on line 65

Kod skryptu:

  1. <?php
  2. // utworzenie krótkich nazw zmiennych
  3. $iloscopon = $_POST['iloscopon'];
  4. $iloscoleju = $_POST['iloscoleju'];
  5. $iloscswiec = $_POST['iloscswiec'];
  6. $adres = $_POST['adres'];
  7. $adres = $_POST['adres'];
  8.  
  9. $DOCUMENT_ROOT = $_POST['DOCUMENT_ROOT'];
  10. ?>
  11.  
  12. <html>
  13. <head>
  14. <title>Części samochodowe Janka — wyniki zamówienia</title>
  15. </head>
  16. <body>
  17. <h1>Części samochodowe Janka</h1>
  18. <h2>wyniki zamówienia</h2>
  19. <?php
  20.  
  21.  $data=date('H:i, jS F');
  22.  
  23. echo '<p>Zamówienie przyjęte o ';
  24.  
  25. echo $data;
  26. echo '</p>';
  27. echo '<p>Zamówienie Państwa wygląda następująco: </p>';
  28.  
  29. $ilosc=0;
  30. $ilosc=$iloscopon+$iloscoleju+$iloscswiec;
  31.  
  32. if( $ilosc == 0 )
  33. {
  34. echo 'Na poprzedniej stronie nie zostało złożone żadne zamówienie!<br />';
  35. }
  36. else
  37. {
  38. if ( $iloscopon>)
  39. echo $iloscopon.' opon<br />';
  40. if ( $iloscoleju>)
  41. echo $iloscoleju.' butelek oleju<br />';
  42. if ( $iloscswiec>)
  43. echo $iloscswiec.' świec zapłonowych<br />';
  44. }
  45.  
  46. $wartosc=0.00;
  47.  
  48. define('CENAOPON', 100);
  49. define('CENAOLEJU', 10);
  50. define('CENASWIEC', 4);
  51.  
  52. $wartosc =$iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC;
  53.  
  54. $wartosc=number_format($wartosc, 2, '.', ' ');
  55.  
  56. echo '<P>Wartość zamówienia wynosi '.$wartosc.'</P>';
  57.  
  58. echo '<P>Adres wysyłki to '.$adres. '</P>';
  59.  
  60. $ciagwyjsciowy = $data."t".$iloscopon." opon t".$iloscoleju." butelek olejut"
  61.  .$iloscswiec." swiec zapłonowycht".$wartosc
  62.  ."PLN/t". $adres."n";
  63.  
  64. // otwarcie pliku w celu dopisywania
  65. @ $wp = fopen("$DOCUMENT_ROOT/../zamowienia/zamowienia.txt", 'ab');
  66.  
  67. if (!$wp)
  68. {
  69. echo '<p><strong> Zamówienie Państwa nie może zostać przyjęte w tej chwili. '
  70.  .'Proszę spróbować później.</strong></p></body></html>';
  71. }
  72.  
  73. fwrite($wp, $ciagwyjsciowy, strlen($ciagwyjsciowy));
  74. fclose($wp);
  75.  
  76. echo '<p>Zamówienie zapisane.</p>';
  77. ?>
  78. </body>
  79. </html>



Proszę o szybką pomoc!!! sad.gif

P.S. Wszystkie Chmody mam na 777.
jekyl
tak na 1 rzut oka to linkia

  1. <?php
  2. $DOCUMENT_ROOT = $_POST['DOCUMENT_ROOT'];
  3. ?>


hmm nigdy nie sluszalem o takim czyms zeby w poscie posylac takie cos winksmiley.jpg chyba maly blad jest w tej ksiazce
jak dal mnie to powinno byc

  1. <?php
  2. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  3. ?>


no a tak ogolnie to jak sie uczyc to od razu dobrze takze zwroce mala uwage na nazwe samej zmiennej radzilbym nie robic (mimo ze to z ksiazki) czegos takiego

  1. <?php
  2. $DOCUMENT_ROOT
  3. ?>

moze sie pomylic raczje polecam pisac zmienne malymi literkami np.: $documentRoot winksmiley.jpg

pozdrawiam winksmiley.jpg
Ziels
I koniecznie nadaj plikom chmod 666
colinQ
No nie działa mi. Mozna prosić o zmieniony kod? Albo brakuje mi jakiś biblotek.

Bez sensu. Przykład z książki i nie działa!!! sadsmiley02.gif
kwiateusz
a plik który otwierasz ma odpowiedni chmod ? bądź katalog w którym się to znajduje ?
colinQ
wszystko ma dobre chmody mam dobrze. na 777 albo 666
em1X
Przed fopen wstaw:
  1. <?php
  2. $fp = $DOCUMENT_ROOT . "/../zamowienia/zamowienia.txt";
  3. print $fp . "<br/>";
  4. print "Czy do zapisu: <b>" . ((is_writable($fp)) ? "tak" : "nie") . "<br/>";
  5. print substr(sprintf('%o', fileperms($fp)), -4);
  6. ?>


i pokaz co to wyswietli
Fusin
Lol.
@jekyl ma całkowitą racje. A w książce niesety jest błąd (i niestety, nie jedyny ;/). No ale może masz starszą wersje php, jeżeli tak to zamiast:
  1. <?php
  2. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  3. ?>

wpisz
  1. <?php
  2. $DOCUMENT_ROOT= $HTTP_SERVER_VARS['DOCUMENT_ROOT'];
  3. ?>
colinQ
dobra spoko. wiem czemu ni działało. bo było $DOCUMENT_ROOT/zamowienie.txt a jak zrobilem zamowienie.txt bez tej zmiennej wszystko zaczęło chodzić snitch.gif
winnetu
Cytat(colinQ @ 27.12.2006, 20:30:59 ) *
dobra spoko. wiem czemu ni działało. bo było $DOCUMENT_ROOT/zamowienie.txt a jak zrobilem zamowienie.txt bez tej zmiennej wszystko zaczęło chodzić snitch.gif


Ktos tu studiuje php i MySQL Vademecum Profesjonalisty smile.gif Tez ucze sie z tej ksiazki i tez mialem ten sam problem i podobnie jak Ty pozbylem sie go usuwajac $DOCUMENT_ROOT smile.gif
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.