Co w tym skrypcie jest błędem ?

0

Poniżej jest kod w php. Po wykonaniu otrzymuję komunikat
Parse error: syntax error, unexpected '<', expecting end of file in /php.php on line 42
Co tutaj jest zle, że wyświetla się taki komunikat błedu ? Dziękuję za pomoc********

<?php


  function poczatek_sesji()
  {
    @session_start();
    if (!isset($_SESSION['koszyk']))
    {
      $_SESSION['koszyk']=array('ksiazki'=>array());
    }
  }

  function do_koszyka($ksiazki)
  {
    if (!isset($_POST['do_koszyka'])) return;
    if (count($_POST['towary'])===0) return;
    $towary=$_POST['towary'];
    foreach($towary as $towar)
    {
      $id=(int)(substr($towar,0,6));
      $klucz_cena='cena'.$id;
      $klucz_ilosc='ile'.$id;
      if ($ksiazki)
      {
        $count=count($_SESSION['koszyk']['ksiazki']);
        $_SESSION['koszyk']['ksiazki'][$count]['opis']=substr($towar,6);
        $_SESSION['koszyk']['ksiazki'][$count]['cena']=$_POST[$klucz_cena];
        $_SESSION['koszyk']['ksiazki'][$count]['ilosc']=$_POST[$klucz_ilosc];
      }
      else
      {
        $count=count($_SESSION['koszyk']['akcesoria']);
        $_SESSION['koszyk'][$count]['opis']=substr($towar,6);
        $_SESSION['koszyk'][$count]['cena']=$_POST[$klucz_cena];
        $_SESSION['koszyk'][$count]['ilosc']=$_POST[$klucz_ilosc];
      }
    }
  }  

<html>
<body>

<form action="pokaz_koszyk.php" method="post">


      <input type="submit" name="pokaz_koszyk"  value="Pokaż koszyk" >
      


    </form>



?>

</body>
</html>

3

Musisz użyć <? zanim zaczniesz kod HTML, a robisz to dopiero po jego kawałku.

6

Jak wpisał @Ktos tylko odwrócił tag kończący php ma być ?>
Czyli tam gdzie kończy się PHP a zaczynasz HTML dajesz ?> a nie na końcu pliku.

0

Teraz jest tak:

<?php


  function poczatek_sesji()
  {
    @session_start();
    if (!isset($_SESSION['koszyk']))
    {
      $_SESSION['koszyk']=array('ksiazki'=>array());
    }
  }

  function do_koszyka($ksiazki)
  {
    if (!isset($_POST['do_koszyka'])) return;
    if (count($_POST['towary'])===0) return;
    $towary=$_POST['towary'];
    foreach($towary as $towar)
    {
      $id=(int)(substr($towar,0,6));
      $klucz_cena='cena'.$id;
      $klucz_ilosc='ile'.$id;
      if ($ksiazki)
      {
        $count=count($_SESSION['koszyk']['ksiazki']);
        $_SESSION['koszyk']['ksiazki'][$count]['opis']=substr($towar,6);
        $_SESSION['koszyk']['ksiazki'][$count]['cena']=$_POST[$klucz_cena];
        $_SESSION['koszyk']['ksiazki'][$count]['ilosc']=$_POST[$klucz_ilosc];
      }
      else
      {
        $count=count($_SESSION['koszyk']['akcesoria']);
        $_SESSION['koszyk'][$count]['opis']=substr($towar,6);
        $_SESSION['koszyk'][$count]['cena']=$_POST[$klucz_cena];
        $_SESSION['koszyk'][$count]['ilosc']=$_POST[$klucz_ilosc];
      }
    }
  }  

<html>
<body>

<form action="pokaz_koszyk.php" method="post">


      <input type="submit" name="pokaz_koszyk"  value="Pokaż koszyk" >
      


    </form>



?>

</body>
</html>

Teraz mam komunikat:

Parse error: syntax error, unexpected '<', expecting end of file in /php.php on line 40

co mogę zrobić dalej ?

2

PHP kończy Ci się tutaj w linii 38.

0

dlaczego ?

3

W skrócie, tam gdzie masz tagi czyli znak mniejszości słowo znak większości np. <slowo> to jest HTML. Tam gdzie masz if-y, else-y, znaki dolara itd. to jest PHP.
W HTML wymyślono, że np b jak bold <b>tekst</b> będzie symbolizować tekst pogrubiony. Przeglądarka musi wiedzieć gdzie zacząć pogrubiać taki tekst a gdzie skończyć.
Dla PHP to jes już coś czego nie może zinterpretować parser. Dla niego to jest nie zrozumiałe. Można robić np. echo "<b>tekst</b>" i wtedy PHP wie że ma to coś po prostu wyświetlić jako literał, a przeglądarka sobie dalej zinterpretuje.
U Ciebie zaczyna się znacznikiem <html> no i popatrz nawet na kolorowanie składni, tutaj na forum. To co jest interpretowane jako PHP jest w innych barawach, a w drugim przykładzie, tam gdzie wstawiłeś znacznik zamknięcia PHP w linii 48 potem masz inne kolory dla tagów HTML.

0

dzięki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.