wlasnie probuje napisac prosta klase, ktora mi pomoze obsluzyc dodawanie produktow do koszyka, ogolnie chodzi o to zeby troche uproscic prace na ze zmiennymi sesyjnymi
jesli jako zmienna sesyjna wpisze stala np $_SESSION['koszyk_produktow'] to klasa dziala ok
ale jesli zmeinna sesyjna tworze jako 4_SESSION[$this->czego]
<?
class koszyk{
var $kosz = array();
var $czego = '';
function koszyk($czego){
echo "OK";
$this->kosz = array();
$this->czego = $czego;
echo '-----przed czymkolwiek-';
echo '<pre>--SESJA---';
print_r($_SESSION);
echo '</pre>';
echo '<pre>KLASA';
print_r($this->kosz);
echo '</pre>';
$kosz = explode(",", $_SESSION[$this->czego]);
if( $_SESSION[$this->czego] == ''){
$oo = 0;
}else{
$oo = count($kosz);
}
for ($i=0; $i< $oo ; $i++){
list($id_produktu, $ilosc) = explode("-", $kosz[$i]);
echo '-----TT---------<br>';
echo 'id - '.$id_produktu.' - '.$ilosc;
echo '<br>==============<br>';
$this->kosz[$id_produktu] = $ilosc;
}
echo '-----po inicjailizacji-';
echo '<pre>--SESJA---';
print_r($_SESSION);
echo '</pre>';
echo '<pre>KLASA';
print_r($this->kosz);
echo '</pre>';
}
function dodaj($id_produktu, $ilosc = 1){
echo '----DIDAWANIE-------------';
echo '<pre>SESJA';
print_r($_SESSION);
echo '</pre>';
echo '<pre>KLASA';
print_r($this->kosz);
echo '</pre>';
if(in_array($id_produktu, array_keys($this->kosz))){
$this->kosz[$id_produktu] += $ilosc;
}else{
$this->kosz[$id_produktu] = $ilosc;
}
$this->updSesja();
}
function przekaz(){
return $this->kosz;
}
function updSesja(){
//session_destroy();
unset($_SESSION[$this->czego]);
while (list ( $id_produktu, $ilosc ) = each ($this->kosz) ){
echo '---------------<br>';
echo 'id - '.$id_produktu.' - '.$ilosc;
echo '<br>==============<br>';
if($_SESSION[$this->czego] == '')
$_SESSION[$this->czego] = $id_produktu.'-'.$ilosc;
else
$_SESSION[$this->czego] .= ','.$id_produktu.'-'.$ilosc;
}
//session_destroy();
//unset($_SESSION[$this->czego]);
echo '-----------------';
echo '<pre>SESJA';
print_r($_SESSION);
echo '</pre>';
echo '<pre>KLASA';
print_r($this->kosz);
echo '</pre>';
}
}
$produkty = new koszyk('potrawy');
//$produkty = new koszyk('dodatki');
?>
wyniki z tych printow wszystki
OK-----przed czymkolwiek---SESJA---Array
(
[potrawy] => Array
(
[Array] =>
[41] => 1
)
)
KLASAArray
(
)
-----TT---------
id - Array -
==============
-----po inicjailizacji---SESJA---Array
(
[potrawy] => Array
(
[Array] =>
[41] => 1
)
)
KLASAArray
(
[Array] =>
)
----DIDAWANIE-------------SESJAArray
(
[potrawy] => Array
(
[Array] =>
[41] => 1
)
)
KLASAArray
(
[Array] =>
)
---------------
id - Array -
==============
---------------
id - 40 - 8
==============
-----------------SESJAArray
(
[potrawy] => Array-,40-8
)
KLASAArray
(
[Array] =>
[40] => 8
)
nie wiadomo dlaczego ciagle wchodzi mi do zmeinnej sesyjnej tablica, przeciez ja nigdzie nie wkladam tam talbicy, tylko zwykly string