Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]problem z utworzeniem pliku .txt i wpisaniu danych po wrzuceniu na serwer
imysz
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 16.08.2009

Ostrzeżenie: (0%)
-----


Witam. Uczę się php i napotkałem na problem. mam formularz i plik php który go przetwarza. Na localhost w momencie kliknięcia złóż zamówienie, wszystkie dane wpisane w formularzu zostały zapisane w pliku tekstowym. Po wrzuceniu plików na darmowy serwer nie da się w ogóle zapisać zamówień w dokumencie tekstowym.

formularz

CODE
<form action="przetworz.php" method="post">

<table>
<tr class="form">
<td class="main1">Produkt</td>
<td class="main">Ilość</td>
</tr>
<tr>

<td>Opony</td>
<td class="td_align"><input type="text" name="iloscopon" size="4" maxlength="4" /></td>
</tr>
<tr>

<td>Olej</td>
<td class="td_align"><input type="text" name="iloscoleju" size="4" maxlength="4" /></td>
</tr>
<tr>

<td>Świece</td>
<td class="td_align"><input type="text" name="iloscswiec" size="4" maxlength="4" /></td>
</tr>
<tr>
<td >Skąd dowiedzili się Państwo o sklepie? </td>
<td class="td_align"><select name="jak">
<option></option>
<option value="a">Jestem stałym klijentem</option>
<option value="b">Reklama tv</option>
<option value="c">Książka telefoniczna</option>
<option value="d">Znajomy</option>
</select>
</td>
</tr>
<tr>
<td>Adres do wysyłki</td>
<td><input type="text" name="adress" size="50" maxlength="50" /></td>
</tr>


<tr>
<td colspan="2" align="center"><input type="submit" value="Złóż zamówienie"/></td>
</tr>

</table>


</form>


plik który przetwarza formularz

CODE
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-language" content="pl" />
<title>Wyniki zamówienia</title>
</head>

<body>

<h1>Części samochodowe</h1>
<h2>Wyniki zamówienia:</h2>

<?php

// tworzenie którkich nazw zmiennych
$iloscopon = $_POST['iloscopon'];
$iloscoleju = $_POST['iloscoleju'];
$iloscswiec = $_POST['iloscswiec'];
$jak = $_POST['jak'];
$adress = $_POST['adress'];
$date=date('H:i, jS F');

$ilosc =0;
$ilosc = $iloscopon + $iloscoleju + $iloscswiec;

//sprawdzenie czy wypełniono formularz
if ($ilosc==0)
{
echo '<font color=red><b> formularz został wypełniony nieprawidłowo</b> </font><br/>';
}
else{

echo '<p>Zamówienie przyjęte o ';
echo date('H:i, jS F');
echo '</p>';

if($iloscopon >0)
echo $iloscopon. ' Opon<br/>';
if($iloscoleju >0)
echo $iloscoleju. ' Oleju <br/>';
if ($iloscswiec >0)
echo $iloscswiec. ' Świec zapłonowych<br/>';


echo '<br/>Łącznie sztuk: '.$ilosc.'<br/>' ;

$wartosc = 0.00;

define ('CENAOPON' , 100);
define('CENAOLEJU' , 10);
define('CENASWIEC' , 4);

$wartosc = $iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC;

echo 'Cena netto: ' .number_format($wartosc, 2). ' PLN<br/>';

$stawkavat = 1.22; // stawka VAT wynosi 22 % czyli 122% ceny netto
$wartosc = $wartosc * ( $stawkavat );

echo 'Cena brutto: ' .number_format($wartosc, 2). ' PLN<br/>';



if ($iloscopon <10)
$znizka = 0;
elseif($iloscopon >= 10 && $iloscopon <=49)
$znizka= 0.05;
elseif($iloscopon >=50 && $iloscopon <=99)
$znizka= 0.10;
elseif($iloscopon >=100)
$znizka=0.20;


$wartosc= $wartosc * (1 - $znizka );
echo '<br/><font color=red><b> RABAT </b></font><br/>';
echo 'Zniżka wynosi: ' .($znizka * 100). ' %<br/>';
echo 'Cena po znizce(brutto): '. number_format($wartosc, 2). ' PLN';




switch($jak)
{
case 'a';
echo '<p>Stały klijent</p>';
break;
case 'b';
echo '<p>Reklama</p>';
break;
case 'c';
echo '<p>Książka</p>';
break;
case 'd';
echo '<p>Znajomy</p>';
break;
default;
echo '<br/>Nie wybrano żadnej opcji';
break;
}


echo '<br/>' .$adress. '<br/>';


$ciagwyjsciowy = $date."\t".$iloscopon." Opon \t".$iloscoleju." Butelek oleju\t".$iloscswiec." Świec zapłonowych\t".$wartosc ." PLN\t". $adress. " \r\n";



// otwarcie pliku w celu zapisania
@ $wp = fopen('../zamowienia.txt', 'ab');;

if (!$wp)
{
echo '<p><strong> Zamówienie nie może zostać przyjęte w tej chwili.' . 'Proszę spróbować później.</strong></p></body></html>';
exit;
}

fwrite($wp, $ciagwyjsciowy,strlen($ciagwyjsciowy));
fclose($wp);

echo '<br/><p>zamówienie przyjęte</p>';
}





?>
</body>



</html>


coś chyba jest nie tak w tym momencie:
CODE
@ $wp = fopen('../zamowienia.txt', 'ab');;

if (!$wp)
{
echo '<p><strong> Zamówienie nie może zostać przyjęte w tej chwili.' . 'Proszę spróbować później.</strong></p></body></html>';
exit;
}

fwrite($wp, $ciagwyjsciowy,strlen($ciagwyjsciowy));
fclose($wp);


jak to rozwiązać ?
pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
flashdev
post
Post #2





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Wyłącz tłumienie błędów (@) i pokaż jaki błąd zwraca php.
Sprawdź czy ustawiłeś dla pliku '../zamowienia.txt' odpowiednie atrybuty (chmod).
Spróbuj otworzyć plik w taki sposób:
$wp = fopen('../zamowienia.txt', 'w');


--------------------
Go to the top of the page
+Quote Post
imysz
post
Post #3





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 16.08.2009

Ostrzeżenie: (0%)
-----


usunąłem @

kod teraz wygląda w ten sposób
CODE
$wp = fopen('../zamowienia.txt', 'w');

if (!$wp)
{
echo '<p><strong> Zamówienie nie może zostać przyjęte w tej chwili.' . 'Proszę spróbować później.</strong></p></body></html>';
exit;
}

fwrite($wp, $ciagwyjsciowy,strlen($ciagwyjsciowy));
fclose($wp);

echo '<br/><p>zamówienie przyjęte</p>';


i nadal wyświetla się komunikat "Zamówienie nie może zostać przyjęte w tej chwili..." po usunięci at nic się nie zmieniło co do komunikatu..
Go to the top of the page
+Quote Post
Pawel_W
post
Post #4





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


trochę Cię nie rozumiem, po co się męczysz z czymś takim:
  1. fwrite($wp, $ciagwyjsciowy,strlen($ciagwyjsciowy));

jak i tak masz pusty plik, więc wystarczy
  1. file_put_contents('nazwa.txt', $ciagwyjsciowy);


i sprawdź jak te chmody winksmiley.jpg
Go to the top of the page
+Quote Post
kfc4
post
Post #5





Grupa: Zarejestrowani
Postów: 195
Pomógł: 18
Dołączył: 7.10.2007

Ostrzeżenie: (0%)
-----


Dla uściślenia powinny wynosić 777.
Go to the top of the page
+Quote Post
imysz
post
Post #6





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 16.08.2009

Ostrzeżenie: (0%)
-----


okej, doszedłem już do tego.

ma być tak w fopen:

CODE
$wp = fopen('./zamowienia.txt', 'ab');


chmod miałem 644

a co do fwrite, to po zmienieniu na file_put_contents wyrzuca taki błąd

" Fatal error: Call to undefined function: file_put_contents() in /var/www/sites/yoyo.pl/t/e/test4163/przetworz.php on line 118 ".

z fwrite działa normalnie. Wpisałem tak, bo na razie uczę się z książki i ćwiczę na tych przykładach które tam są. smile.gif a jaka jest różnica pomiędzy file_put_contents a fwrite ?

pozdrawiam
Go to the top of the page
+Quote Post
Pawel_W
post
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


file_put_contents nie potrzebuje wskaźniku pliku (otwarcia przez fopen()), ale nie jest obsługiwane przez wszystkie serwery ;(
Go to the top of the page
+Quote Post
imysz
post
Post #8





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 16.08.2009

Ostrzeżenie: (0%)
-----


bo testowałem właśnie file_put_contents i na jednym działo, a na drugim już nie. teraz już wiem smile.gif

a co do chmod to tak, ma być 777
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 01:01