Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza danych DOCUMENT_ROOT problem, Baza danych DOCUMENT_ROOT problem
bigos1995-95
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 18.05.2012

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


Witam, mam problem z funkcja DOCUMENT_ROOT. Mam ksiażę Vademecum wydanie 4 z dołączoną płytką. Mam problem z kodem który nie może być zle napisany(z mojego blędu) poniewaz jest skopiowany z plytki ale nie dziala. Nie zapisuje zamowienia w pliku txt. Moglby ktos mi powiedziec dlaczego (IMG:style_emoticons/default/questionmark.gif)

KODY

formularz.html

Kod
<html>
<head>
  <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

Kod
<?php
  // utworzenie krótkich nazw zmiennych
  $iloscopon = $_POST['iloscopon'];
  $iloscoleju = $_POST['iloscoleju'];
  $iloscswiec = $_POST['iloscswiec'];
  $adres = $_POST['adres'];
  $adres = $_POST['adres'];
  $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  $data=date('H:i, jS F Y');
?>

<html>
<head>
  <title>Części samochodowe Janka — wyniki zamówienia</title>
</head>
<body>
<h1>Części samochodowe Janka</h1>
<h2>Wyniki zamówienia</h2>
<?php

  echo "<p>Zamówienie przyjęte o ".$data."</p>";

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

  $ilosc = 0;
  $ilosc = $iloscopon + $iloscoleju + $iloscswiec;
  echo "Zamówionych części: ".$ilosc."<br />";

  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');

  flock($wp, LOCK_EX);

  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));
  flock($wp, LOCK_UN);
  fclose($wp);

  echo "<p>Zamówienie zapisane.</p>";
?>
</body>
</html>


Ten post edytował bigos1995-95 18.05.2012, 16:02:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Ja też nie mam zamiaru się kłócić tylko nie widzę sensu czytania książki która od samego początku przedstawia złe nawyki, wygląda jak napisana dla PHP 4 (mocno nieaktualna) i pewnie nie wspomina o bezpieczeństwie. Bo więcej dowiesz się z lektury manuala PHP. Dobra książka nie opisuje (i to w dodatku źle) jak krok po kroku coś napisać tylko uczy myślenia. Prawda jest taka że większość książek dla PHP to przedruki dokumentacji które zupełnie nic nie wnoszą. Dlatego poleciłem Ci coś do Javy bo uwierz mi że nauczysz się 100x więcej a mimo wszystko oba języki są dość podobne i płynnie można między nimi przechodzić (czy też płynnie przejść do PHP jeśli poznasz Javę).
Przykładowo. Przepisywanie zmiennych dla samego podstawienia (kilka pierwszych linijek) nie ma zupełnie sensu bo tylko zapychasz pamięć. Gdyby chociaż tam było filtrowanie albo walidacja jeszcze można by zrozumieć. Tworzona jest data bez sprawdzania ustawień strefy czasowej serwera. Co to za dokument bez deklaracji DOCTYPE? Po co:
  1. echo "<p>Zamówienie przyjęte o ".$data."</p>"

Chyba bo to jest składnia z "" żeby nie łączyć bezsensownie ciągów. A jak już to ''. Co się stanie jak wpiszesz np w inpucie $iloscopon = 'aaa'; Po co $wartosc=0.00;? Rzutowanie typów do poczytania z dokumentacji. Deklaracja stałych w takiej samej ilości jak zmiennych. Tak się nie pisze. A z tego przykładu można wnioskować że to normalka. Ukrywanie błędów - błędów się nie ukrywa tylko poprawia. No i wspomnianych kilka funkcji do zapisu zamiast jednej. Jak widzisz prawie w każdej linii jest błąd dlatego uważam że to jest książka do kosza. Jeśli uczyć to porządnie tym bardziej że świeże umysły się za to zabierają.
Go to the top of the page
+Quote Post

Posty w temacie
- bigos1995-95   Baza danych DOCUMENT_ROOT problem   18.05.2012, 15:57:55
- - Tajgeer   Skrypt wyświetla jakieś błędy?   18.05.2012, 20:08:32
- - bigos1995-95   Warning: flock(): supplied argument is not a valid...   18.05.2012, 21:14:51
- - alegorn   wyswietl sobie cala sciezke do jakiej probujesz si...   19.05.2012, 07:56:17
- - bigos1995-95   nie rozumiem gdzie ja mam sobie wyswietlic, moglby...   19.05.2012, 10:07:22
- - d3ut3r   [PHP] pobierz, plaintext @ $wp = fopen("$...   19.05.2012, 10:13:49
- - bigos1995-95   ten plik istnieje a zreszto funkcja "a" ...   19.05.2012, 21:15:58
- - d3ut3r   Tak masz rację poza jedną rzeczą, jeżeli fopen będ...   20.05.2012, 10:00:25
- - bigos1995-95   ja i tak nadal nie wiem co jest , tworze folder(za...   22.05.2012, 22:32:32
- - d3ut3r   popróbuj z różnymi ścieżkami na przykład: [PHP] p...   22.05.2012, 23:40:29
- - alegorn   a jaki to blad..? byc moze nam wiecej powie niz to...   23.05.2012, 12:54:29
- - bigos1995-95   d3ut3r, a nie mógłbyś sprawdzić tego po prostu na ...   23.05.2012, 17:25:53
- - viking   Najlepiej wywal tę książkę do kosza i weź coś na c...   23.05.2012, 18:58:51
- - bigos1995-95   sorry ale nie potrzebuje porad co do książek , tak...   23.05.2012, 19:04:27
- - viking   Sorry mistrzu. Problem w tym że ci pomogłem i napi...   23.05.2012, 20:26:37
- - bigos1995-95   najwyraźniej tak albo źle mi wytlumaczyles a co d...   23.05.2012, 22:44:16
- - BaN   Co do wyrzucania książek, to jednak nie popieram, ...   24.05.2012, 00:08:22
- - viking   Ja też nie mam zamiaru się kłócić tylko nie widzę ...   24.05.2012, 05:52:55
- - bigos1995-95   Dzięki za dokładne opisanie, zaraz to sprawce. A c...   24.05.2012, 13:45:01


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

 



RSS Aktualny czas: 15.10.2025 - 16:12