Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]Zamowienia...
Forum PHP.pl > Forum > Przedszkole
xmarshalx
Witam jestem bardzo poaczątkujący uczę sie od tygodnia (?) PHP, zakupiłem ksiązke PHP i MySQL tworzenie stron WWW Vademecum profesjonalisty wyd. III. Ksiązka była zachwalana na róznych forach.
Jednakże jestem w II rodzidziale i już mam problem otóż:
Formularz.html

Cytat
<html>
<head>
<meta HTTP-EQUIV="Generator" content="TigerII MiniPad ©2001">
<title>Części samochodowe Janka</title>
</head>
<body>
<h1>Części samochodowe Janka</h1>
<h2>Formularz zamówienia</h2>

<form action="przetworzzamowienie.php" method=post>
<table border=0>
<tr bgcolor=#cccccc>
<td width=150>Produkt</td>
<td width=15>Ilość</td>
</tr>
<tr>
<td>Opony</td>
<td align=left><input type="text" name="iloscopon" size=3 maxlength=3></td>
</tr>
<tr>
<td>Olej</td>
<td align=left><input type="text" name="iloscoleju" size=3 maxlength=3></td>
</tr>
<tr>
<td>Świece Zapłonowe</td>
<td align=left><input type="text" name="iloscswiec" size=3 maxlength=3></td>
</tr>
<tr>
<td>Adres</td>
<td align=left><input type="text" name="adres" size=40 maxlength=40></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="Złóż zamówienie"></td>
</tr>
</table>
</form>

</body>
</html>


przetworzzamowienie.php
Cytat
<?php
// utworzenie krótkich nazw zmiennych
$iloscopon = $_POST['iloscopon'];
$iloscoleju = $_POST['iloscoleju'];
$iloscswiec = $_POST['iloscswiec'];
$adres = $_POST['adres'];


$DOCUMENT_ROOT = $_POST['DOCUMENT_ROOT'];
?>

<html>
<head>
<meta http-equiv="Generator" content="TigerII MiniPad ©2001">
<title>Części samochodowe Janka — wyniki zamówienia</title>
</head>
<body>
<h1>Części samochodowe Janka</h1>
<h2>wyniki zamówienia</h2>
<?php

$data=date('H:i, jS F');

echo '<p>Zamówienie przyjęte o ';

echo $data;
echo '</p>';
echo '<p>Zamówienie Państwa wygląda następująco: </p>';

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

if( $ilosc == 0 )
{
echo 'Na poprzedniej stronie nie zostało złożone żadne 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 zapłonowych<br />';
}

$wartosc=0.00;

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

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

$wartosc=number_format($wartosc, 2, '.', ' ');

echo '<P>Wartość zamówienia wynosi '.$wartosc.'</P>';

echo '<P>Adres wysyłki to '.$adres. '</P>';

$ciagwyjsciowy = $data."\t".$iloscopon." opon \t".$iloscoleju." butelek oleju\t"
.$iloscswiec." swiec zapłonowych\t".$wartosc
."PLN/t". $adres."\n";

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

if (!$wp)
{
echo '<p><strong> Zamówienie Państwa 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 '<p>Zamówienie zapisane.</p>';
?>
</body>
</html>


Plik zamowienia.txt na serwerze jest w folderze zamowienia

Robiąc zamówienie ciągle wyskakuje komunikat o błedzie.
Dodatkowo ktoś mi powiedział, ze moze byc bład, że nie ustawiłem chmoda, jest juz zmieniony .txt na 777

Proszę o pilną pomoc, jeśli coś mało jasno wyjasniłem, albo bedzie jakas potrzeba prosze pisac smile.gif
Jeśli źle coś napisałem prosze moderatorów o poprawienie lub PW napewno poprawie i z góry przepraszam.
Pozdrawiam
Zrozpaczony Laik winksmiley.jpg

Maciekbjw
Podejrzewam ze jest coś ze ścieżką do pliku winksmiley.jpg

  1. <?php
  2. // otwarcie pliku w celu dopisywania
  3. @ $wp = fopen("$DOCUMENT_ROOT/../zamowienia/zamowienia.txt", 'ab');
  4. ?>


wywal '@', dostaniesz treść błędu funkcji fopen();


Swoją drogą, używaj nowych funkcji do obsługi plików:
http://pl.php.net/file-get-contents/
http://pl.php.net/file-put-contents/

Pozdrawiam smile.gif
xmarshalx
Wywaliłem '@' nic to nie dało...

A jeśli chodzi o te funkcje to ucze sie na ksiazce i robie tak jak jest w niej podane, moze potem jak juz złapie o co kaman to skorzystam z Twojej rady
piotrooo89
Cytat(xmarshalx @ 21.02.2009, 11:42:15 ) *
Robiąc zamówienie ciągle wyskakuje komunikat o błedzie.


pokaż może jak wygląda ten błąd, to nam może bardzo pomóc.
xmarshalx
Cytat
Zamówienie Państwa nie może zostać przyjęte w tej chwili. '
.'Proszę spróbować później.


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


to wyszło, że zapisano.
Jednak w zamowienia/zamowienia.txt nie ma takiego zamowienia
Istalacar
Jeśli strukturę plików masz w ten sposów:
Kod
ROOT
-zamowienia
---zamowienia.txt
-Formularz.html
-przetworzzamowienie.php


To tekst do otwarcia powinien być:
  1. <?php
  2. @ $wp = fopen("./zamowienia/zamowienia.txt", 'ab');
  3. ?>


Natomiast coś takiego:
  1. <?php
  2. @ $wp = fopen("../zamowienia/zamowienia.txt", 'ab');
  3. ?>

odwołuje się do takiej struktury
Kod
ROOT
-zamowienia
---zamowienia.txt
-jakis_katalog
---Formularz.html
---przetworzzamowienie.php

Celowo pominąłem $DOCUMENT_ROOT bo przykładowo mój server nic pod nią nie podstawia (niżej) więc tamtą funkcję traktuje jak to.

Btw. nie spotkałem się jeszcze z czymś takim jak "$DOCUMENT_ROOT" i np. mój server nie predefiniuje mi tej zmiennej (być może przy włączonym register_globals by to działało) jeśli już musisz tego używać, to bezpieczniej jest "$_SERVER[DOCUMENT_ROOT]"

Przy okazji jeśli tam by było:
  1. <?php
  2. @ $wp = fopen("$SERVER[DOCUMENT_ROOT]/../zamowienia/zamowienia.txt", 'ab');
  3. ?>

To wtedy server się odwoływało do takiego czegoś:
Kod
-ROOT
---Formularz.html
---przetworzzamowienie.php
-zamowienia
---zamowienia.txt
piotrooo89
masz bład w ścieżce dostępu do tego plik czyli tu:

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


zrób tak i zobacz co i jak:
  1. <?php
  2. @ $wp = fopen("zamowienia.txt", 'ab');
  3. ?>
xmarshalx
Istalacar
Jestes wielki winksmiley.jpg)
Dzieki za pomoc dla efektu:
Cytat
12:01, 21st February 2 opon 3 butelek oleju 5 swiec zapłonowych 250.00PLN/tdsadsaddsa


;DDD
Być może nie wiem w ksiazce mysleli o innym serwerze, ja korzystam z darmowego, byc moze ja cos źle zrobiłem, wazne że jest OK winksmiley.jpg oczywiscie odwdzieczam sie punkcikiem winksmiley.jpg Jeszcze raz wielkie dzieki

-----------
Piotro
zamowienia.txt mam w folderze zamowienia, takze to twoje jest złe, ale dzieki za chęci winksmiley.jpg
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.