Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z prostą klasa
Forum PHP.pl > Forum > PHP
tantaos
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
Cysiaczek
Jeśli chcesz zyskać pomoc, to lepiej dodaj bbcode do kodu - teraz tego nie chce się nawet czytać...

btw.
Pisz wg specyfikacji dla PHP5
Nazywaj zmenne a jakiś sensowny sposób

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.