Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd
Forum PHP.pl > Forum > Gotowe rozwiązania
igor_2
Czy ktos wie co oznacza taki błąd Warning: fwrite(): supplied argument is not a valid stream resource in /home2/q3/q3abrotherman/przetworzzamowienie.php on line 68

Warning: fclose(): supplied argument is not a valid stream resource in /home2/q3/q3abrotherman/przetworzzamowienie.php on line 69

czy w tym błędzie chodzi o złą ścieżke dostępu to pliku ? z góry dziękuja za pomoc.
A tak Apropo moze ktoś miał kisążkę php i Msql vademekum profesjonalisty wydanie 3 i wie jak poprawić błąd w z przykładu w 2 rozdziale, chodzi mi o skrypt w pliku przetworzzamowienie.php
nospor
najprawdopodobniej fopen zwróciło ci false. Może to być że plik nie istnieje, lub że nie masz praw do niego lub zupeŁnie coś innego, gdyż nie pokazałeś kodu
Imperior
Skasuj małpe przed fopen i wprawdź jaki jest błąd.
igor_2
Warning: fopen(): open_basedir restriction in effect. File(/zamowienia/zamowienia.txt) is not within the allowed path(s): (/srv/free/act3549) in /srv/free/act3549/przetworzzamowienie.php on line 66

Warning: fopen(/zamowienia/zamowienia.txt): failed to open stream: Operation not permitted in /srv/free/act3549/przetworzzamowienie.php on line 66

Warning: fwrite(): supplied argument is not a valid stream resource in /srv/free/act3549/przetworzzamowienie.php on line 70

Warning: fclose(): supplied argument is not a valid stream resource in /srv/free/act3549/przetworzzamowienie.php on line 71

  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&oacute;wienia</title>
  15. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
  16. </head>
  17. <body>
  18. <h1>Częœci samochodowe Janka</h1>
  19. <h2>wyniki zam&oacute;wienia</h2>
  20. <?php
  21.  
  22.  $data=date('H:i, jS F');
  23.  
  24. echo '<p>Zamówienie przyjete o ';
  25.  
  26. echo $data;
  27. echo '</p>';
  28. echo '<p>Zamówienie Panstwa wyglšda nastepujšco: </p>';
  29.  
  30. $ilosc=0;
  31. $ilosc=$iloscopon+$iloscoleju+$iloscswiec;
  32.  
  33. if( $ilosc == 0 )
  34. {
  35. echo 'Na poprzedniej stronie nie zostalo zlozone zadne zamówienie!<br />';
  36. }
  37. else
  38. {
  39. if ( $iloscopon>)
  40. echo $iloscopon.' opon<br />';
  41. if ( $iloscoleju>)
  42. echo $iloscoleju.' butelek oleju<br />';
  43. if ( $iloscswiec>)
  44. echo $iloscswiec.' ?wiec zaplonowych<br />';
  45. }
  46.  
  47. $wartosc=0.00;
  48.  
  49. define('CENAOPON', 100);
  50. define('CENAOLEJU', 10);
  51. define('CENASWIEC', 4);
  52.  
  53. $wartosc =$iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC;
  54.  
  55. $wartosc=number_format($wartosc, 2, '.', ' ');
  56.  
  57. echo '<P>Warto?c zamówienia wynosi '.$wartosc.'</P>';
  58.  
  59. echo '<P>Adres wysylki to '.$adres. '</P>';
  60.  
  61. $ciagwyjsciowy = $data.&#092;"t\".$iloscopon.\" opon t\".$iloscoleju.\" butelek olejut\"
  62.  .$iloscswiec.&#092;" swiec zaplonowycht\".$wartosc
  63.  .&#092;"PLN/t\". $adres.\"n\";
  64.  
  65. // otwarcie pliku w celu dopisywania
  66.  $wp = fopen(&#092;"$DOCUMENT_ROOT/zamowienia/zamowienia.txt\", 'ab');
  67.  
  68.  
  69.  
  70. fwrite($wp, $ciagwyjsciowy, strlen($ciagwyjsciowy));
  71. fclose($wp);
  72.  
  73. echo '<p>Zamówienie zapisane.</p>';
  74. ?>
  75. </body>
  76. </html>
crash
No i chyba wszystko jasne. Ten Twój $DOCUMENT_ROOT wskazuje na 'zbyt wysoki' poziom katalogu, a ograniczenia safe mode nie pozwalają na taką samowolkę...
igor_2
Czyli co trzeba poprawić?, bo ja mam też skrypt który potem odczytuje dane zapisane w pliku zamowienie.txt i tamten skrypt otwiera tą ścieżkę $wp = fopen("$DOCUMENT_ROOT/zamowienia/zamowienia.txt", 'r'); a ten który już ma zapisać nowe zamówienie już nie działa i wyświetla komunikat który podałem powyżej.
wolguy
Moze spróbuj tak zapisać (mi nie wywala błędu):
  1. <?php
  2. if( $wp = fopen(&#092;"$DOCUMENT_ROOT/zamowienia/zamowienia.txt\", 'r') ) {
  3.  
  4. fwrite($wp, $ciagwyjsciowy, strlen($ciagwyjsciowy));
  5. fclose($wp);
  6. echo '<p>Zamówienie zapisane.</p>';
  7.  
  8. }
  9. ?>
crash
Z teco co mogę zgadywać zamiast $DOCUMENT_ROOT powinna być: . (kropka)
igor_2
moze ja podam strone z tym formularzem www.design.gaa.pl
crash
Ale po co? Napisaliśmy Ci co masz poprawić więc spróbuj najpierw...
igor_2
Poprawiłem i nic, dalej to samo.
  1. <?php
  2. if( $wp = fopen(&#092;"$DOCUMENT_ROOT/zamowienia/zamowienia.txt\", 'r') ) {
  3.  
  4. fwrite($wp, $ciagwyjsciowy, strlen($ciagwyjsciowy));
  5. fclose($wp);
  6. echo '<p>Zamówienie zapisane.</p>';
  7.  
  8. }
  9. ?>

Przecież trub "r" służy tylko do odczytu a żeby dodać coś do pliku trzeba użyć trybu "a".
Jeżeli chodzi o zamiane $DOCUMENT_ROOT na kropki to też nie działa, tylko niewiem czy dobrze poprawiłem $wp = fopen("./zamowienia/zamowienia.txt", 'r') ) o toaki coś chodziło?
wolguy
Cytat(igor_2 @ 2005-07-17 10:51:24)
Czyli co trzeba poprawić?, bo ja mam też skrypt który potem odczytuje dane zapisane w pliku zamowienie.txt i tamten skrypt otwiera tą ścieżkę $wp = fopen("$DOCUMENT_ROOT/zamowienia/zamowienia.txt", 'r'); a ten który już ma zapisać nowe zamówienie już nie działa i wyświetla komunikat który podałem powyżej.

sam użyłeś trybu r, więc nie wgłębiałem się w to
igor_2
Właśnie oto mi chodzi czemu działa tryb "r" czyli odczytu do pliku, a tryb "ab" czyli dodoawania do pliku już nie. Tego właśnie niewiem.
crash
Bo nie nadałeś uprawnień do zapisu dla pliku...
igor_2
a jak nadać uprawnienia do zapisu pliku? tongue.gif
czachor
Poszukaj o chmod'ach.
igor_2
jak ustawić uprawnienia do pliku w windows commander 5.0?? bardzo prosze o odp. bo bez tego nie zapisze mi sie nic to pliku zamowienia.txt sad.gif
wolguy
to wtedy znajdujesz ręczne wpisywanie komendy i dajesz np.:
SITE CHMOD 777 /public_html/zamowienia.txt
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-2024 Invision Power Services, Inc.