Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Problem z $DOCUMENT_ROOT - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: Problem z $DOCUMENT_ROOT (/thread-problem-z-document-root)

Strony: 1 2


Problem z $DOCUMENT_ROOT - xtronix856 - 18-02-2012

Witam ucze sie z książki PHP_i_MySQL_Tworzenie_stron_Vademecum_profesjonalisty_wyd.IV
I mam problem z $DOCUMENT_ROOT . W ksiazce wszystko robione jest na xampp'ie a ja sobie trenuje na serwerze ugu.pl. Blad jest tego typu:
Kod:
Warning: flock() expects parameter 1 to be resource, boolean given in /virtual/e/t/abcabc856.ugu.pl/przetworzzamowienie.php on line 67

A skrypt wyglada tak:
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>

Próbowalem juz robic tak:
Kod:
@ $wp = fopen("/virtual/e/t/abcabc856.ugu.pl/przetworzzamowienie.php", 'ab');
oraz tak:
Kod:
@ $wp = fopen("$DOCUMENT_ROOT/../virtual/e/t/abcabc856.ugu.pl/przetworzzamowienie.php", 'ab');

Za błędy z góry przepraszam =)


RE: Problem z $DOCUMENT_ROOT - Kartofelek - 18-02-2012

$_SERVER['DOCUMENT_ROOT'].'/...........';
I to powinno działać. Może pomylileś ścieżkę


RE: Problem z $DOCUMENT_ROOT - xtronix856 - 18-02-2012

Po tym to jeszcze gorzej
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ...


RE: Problem z $DOCUMENT_ROOT - Pedro84 - 18-02-2012

Poczytaj sobie o: __DIR__


RE: Problem z $DOCUMENT_ROOT - xtronix856 - 18-02-2012

Ja jadę lekcjami z książki i też interesuje mnie, dlaczego to nie działa poprawnie a do dir'ów jeszcze nie doszedłem.


RE: Problem z $DOCUMENT_ROOT - Pedro84 - 18-02-2012

Zrób sobie var_dump($_SERVER['DOCUMENT_ROOT']); i zobacz co to Ci w ogóle zwraca.

Potem porównaj sobie to z tą ścieżką: /virtual/e/t/abcabc856.ugu.pl/przetworzzamowienie.php


RE: Problem z $DOCUMENT_ROOT - xtronix856 - 18-02-2012

hmm.. czy ja wg dobrze to robie ?
@ $wp = var_dump($_SERVER['DOCUMENT_ROOT']);
Wtedy mam blad:
Parse error: syntax error, unexpected T_STRING in /virtual/e/t/abcabc856.ugu.pl/przetworzzamowienie.php on line 67


RE: Problem z $DOCUMENT_ROOT - Pedro84 - 19-02-2012

Hm... Zobacz co to jest w ogóle var_dump() http://php.net/manual/en/function.var-dump.php


RE: Problem z $DOCUMENT_ROOT - xtronix856 - 19-02-2012

A moze by to zmienic tzn. czy da sie zrobic ze by DOCUMENT_ROOT nie mial scieżki /virtual/e/t/abcabc856.ugu.pl tylko /zamowienia/
Mozna tak ?


RE: Problem z $DOCUMENT_ROOT - Pedro84 - 19-02-2012

Przeczytaj "description" http://php.net/manual/en/reserved.variables.server.php.

Przecież DOCUMENT_ROOT zwraca Ci piękną ścieżkę, nie wiem gdzie tu problem.