Co jest błędem w skrypcie ?

0
<?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];
      }
     }
  }  

do_koszyka(false);
poczatek_sesji();
?>

komunikat:


Warning: count(): Parameter must be an array or an object that implements Countable in /php.php on line 32

W czym jest problem ?

1

Przecież masz treść błędu, to w czym problem? Weź choć raz włącz myślenie...

0

A w tym. Wcale mi nie wyświetla jakichkolwiek rozwiązań. Nic nie wyświetla na ekranie:

function pokaz_koszyk()
  {
    if (!isset($_POST['pokaz_koszyk'])) return;
    $ksiazki=$_SESSION['koszyk']['ksiazki'];
    $akcesoria=$_SESSION['koszyk']['akcesoria'];
    
    echo '<br />';
    if (count($ksiazki)===0 && count($akcesoria)===0)
    {
      echo 'Koszyk jest pusty!';
      return;
    }
    
    $suma=0;
    if (count($ksiazki)>0)
    {
      echo 'Książki:<br />';
      for($k=0;$k<count($ksiazki);$k++)
      {
        $suma+=$ksiazki[$k]['cena']*$ksiazki[$k]['ilosc'];
        echo ($k+1).'. '.$ksiazki[$k]['opis'].', cena: '
            .$ksiazki[$k]['cena'].', ilość: '.$ksiazki[$k]['ilosc'].'<br />'."\n";
      }
    }
    
   
    echo '<br />Wartość towarów w koszyku: '.$suma;    

 pokaz_koszyk();   

  }
?>
5
if (!isset($_POST['pokaz_koszyk'])) return;

To, że się nic nie wyświetla może być celowym ( nie mówię, że właściwym) działaniem skryptu.
Pewnie nie masz klucza pokaz_koszyk.

Trochę zgadujemy.

Słuchaj jak będziesz kopiował losowe części kodu z internetu, bez próby zrozumienia to:

  • niczego się nie nauczysz
  • zniechęcisz się, chociaż tu muszę przyznać, że na razie wytrwały jesteś.
  • jak nie daj Bóg wrzucisz gdzieś tak pisany kod i będziesz chciał np. otworzyć na nim sklep, to skończy się tym, że ktoś pobierze dane klientów i będziesz miał konsekwencje karne. Pewnie z 50 razy miałeś np. informację o SQL Injection.

Także zacznij od podstaw. Zrób jakiś kurs podstaw np. https://kursphp7.pl/ czy co tam znajdziesz w necie dla PHP7 ( omijaj kursy dla wersji 5.X).
Naucz się czytać błędy. Jak masz problemy z angielskim to wrzucaj je w jakiś translator chociaż.
Jak będziesz wiedział co to debugera( np. xdebug) i var_dump to takie tematy będziesz w 10 sekund rozwalał.

1 użytkowników online, w tym zalogowanych: 0, gości: 1