igor_2
15.07.2005, 18:30:28
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
15.07.2005, 18:34:49
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
17.07.2005, 10:02:28
Skasuj małpe przed fopen i wprawdź jaki jest błąd.
igor_2
17.07.2005, 10:10:22
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<?php
// utworzenie krótkich nazw zmiennych
$iloscopon = $_POST['iloscopon'];
$iloscoleju = $_POST['iloscoleju'];
$iloscswiec = $_POST['iloscswiec'];
$adres = $_POST['adres'];
$adres = $_POST['adres'];
$DOCUMENT_ROOT = $_POST['DOCUMENT_ROOT'];
?>
<html>
<head>
<title>Częœci samochodowe Janka — wyniki zamówienia</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
</head>
<body>
<h1>Częœci samochodowe Janka</h1>
<h2>wyniki zamówienia</h2>
<?php
echo '<p>Zamówienie przyjete o ';
echo '<p>Zamówienie Panstwa wyglšda nastepujšco: </p>';
$ilosc=0;
$ilosc=$iloscopon+$iloscoleju+$iloscswiec;
if( $ilosc == 0 )
{
echo 'Na poprzedniej stronie nie zostalo zlozone zadne zamówienie!<br />'; }
else
{
if ( $iloscopon>0 )
echo $iloscopon.' opon<br />'; if ( $iloscoleju>0 )
echo $iloscoleju.' butelek oleju<br />'; if ( $iloscswiec>0 )
echo $iloscswiec.' ?wiec zaplonowych<br />'; }
$wartosc=0.00;
$wartosc =$iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC;
echo '<P>Warto?c zamówienia wynosi '.$wartosc.'</P>';
echo '<P>Adres wysylki to '.$adres. '</P>';
$ciagwyjsciowy = $data.\"t\".$iloscopon.\" opon t\".$iloscoleju.\" butelek olejut\"
.$iloscswiec.\" swiec zaplonowycht\".$wartosc
.\"PLN/t\". $adres.\"n\";
// otwarcie pliku w celu dopisywania
$wp = fopen(\"$DOCUMENT_ROOT/zamowienia/zamowienia.txt\", 'ab');
echo '<p>Zamówienie zapisane.</p>'; ?>
</body>
</html>
crash
17.07.2005, 10:30:42
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
17.07.2005, 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.
wolguy
17.07.2005, 11:20:51
Moze spróbuj tak zapisać (mi nie wywala błędu):
<?php
if( $wp = fopen(\"$DOCUMENT_ROOT/zamowienia/zamowienia.txt\", 'r') ) {
echo '<p>Zamówienie zapisane.</p>';
}
?>
crash
17.07.2005, 11:20:51
Z teco co mogę zgadywać zamiast $DOCUMENT_ROOT powinna być: . (kropka)
igor_2
17.07.2005, 12:57:24
moze ja podam strone z tym formularzem
www.design.gaa.pl
crash
17.07.2005, 14:14:36
Ale po co? Napisaliśmy Ci co masz poprawić więc spróbuj najpierw...
igor_2
18.07.2005, 13:12:18
Poprawiłem i nic, dalej to samo.
<?php
if( $wp = fopen(\"$DOCUMENT_ROOT/zamowienia/zamowienia.txt\", 'r') ) {
echo '<p>Zamówienie zapisane.</p>';
}
?>
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
18.07.2005, 16:15:15
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
18.07.2005, 18:14:25
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
18.07.2005, 18:23:43
Bo nie nadałeś uprawnień do zapisu dla pliku...
igor_2
23.07.2005, 11:16:25
a jak nadać uprawnienia do zapisu pliku?
czachor
23.07.2005, 11:37:58
Poszukaj o chmod'ach.
igor_2
23.07.2005, 19:24:00
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
wolguy
23.07.2005, 20:19:54
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.