[ Príspevkov: 11 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Cudne spravanie pola (session)

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 28.06.2009 20:17 | Cudne spravanie pola (session)

Zdravím,
mám nákupný košík ako triedu. Na localhoste mi všetko funguje. ale na webe to robí problémy.

ak pridám do kosiku nejaky produkt, session vypada tak ako ma...
napr.
Kód:
Array
(
    [cart] => Array
        (
            [4] => Array
                (
                    [name] => Whatsup
                    [variant] => 6×6 cm
                    [count] => 2
                    [price] => 10
                )

        )

)

ale ako nahle sa pokusim pridat iny produkt alebo prekliknem stranku, dostanem toto:
Kód:
Array
(
    [cart] => cart Object
        (
            [show] =>
            [cart] => cart Object
                (
                    [show] =>
                    [cart] =>  *RECURSION*
                    [price] => 0
                    [count] => 0
                )

            [price] => 0
            [count] => 0
        )

)

namiesto toho aby som dostal napr toto:
Kód:
Array
(
    [cart] => Array
        (
            [4] => Array
                (
                    [name] => Whatsup
                    [variant] => 6×6 cm
                    [count] => 2
                    [price] => 10
                )
            [6] => Array
                (
                    [name] => Nothin
                    [variant] => 6×6 cm
                    [count] => 2
                    [price] => 10
                )

        )

)


Ak odhlasim uzivatela (pokusam sa zmenit $_SESSION['user'] = 3) medzi tym (ina trieda) tak vlozi do sessions vsetky premenne v triede, teda ak mam:
$trieda->Allow = 'all';
$trieda->Disallow = '';
$trieda->Logged = 0;
$trieda->Failed = '';

vyzera session potom takto:
Kód:
Array
(
    [cart] => cart Object
        (
            [show] =>
            [cart] => cart Object
                (
                    [show] =>
                    [cart] =>  *RECURSION*
                    [price] => 0
                    [count] => 0
                )

            [price] => 0
            [count] => 0
        )

    [user] => user Object
        (
            [Failed] =>
            [Logged] => 0
            [Disallow] =>
            [Allow] => all
        )

)


Takze moje zhrnutie problemu: ono mi to do daneho prvku pola session vlozi vsetky premenne, ktore obsahuje trieda (asi :D).. ale preco ? ked na localhoste mi vsetko slape tak ako ma...

tamto robi pri spustani pod php4... pod php5 je to trocha odlisne.. vypisuje
Fatal error: Cannot use object of type cart as array a stranku uz vobec nezobrazi, iba vypise array (aj ked ziadne print ani nic nedavam)

dakujem za kazdy zmysluplny prispevok a este viac za poskytnutie riesenia :)


_________________
Sorry za prelkepy
Offline

Správca fóra
Správca fóra
Cudne spravanie pola (session)

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 28.06.2009 21:03 | Cudne spravanie pola (session)

niekde sa ti to evidentne cykli (index cart), takze by bolo asi vhodne hodit sem kod triedy nakupneho kosika...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Cudne spravanie pola (session)

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 28.06.2009 21:24 | Cudne spravanie pola (session)

a ako to ze na localhostte sa to necyklilo? :D

Kód:
class cart{
    var $show;
    var $cart;
    var $price = 0;
    var $count = 0;
   
    function __construct(){
      global $LANG;
      global $LINKS;
      if(empty($_SESSION['cart'])){
        unset($_SESSION['cart']);
      }
      if(!isset($_SESSION['cart'])){
        $this->show = '<tr class="cart"><td><ul><li>'.$LANG['{LANG_CARTEMPTY}'].'</li></ul></td></tr>';
      }else{
        foreach($_SESSION['cart'] as $id => $arr){
!!          $this->price += $arr['price']*$arr['count'];
!!          $this->count += $arr['count'];
        }
        $this->show = $this->showitems().' | '.$this->price.' €';
      }
    }
   
   
    function additem($id, $name, $variant, $count, $price){
      if(isset($_SESSION['cart'][$id])){
        $_SESSION['cart'][$id]['count'] += $count;
      }else{
        $_SESSION['cart'][$id]['name'] = $name;
        $_SESSION['cart'][$id]['variant'] = $variant;
        $_SESSION['cart'][$id]['count'] = $count;
        $_SESSION['cart'][$id]['price'] = $price;
      }
    }
   
    function removeitem($id){
      unset($_SESSION['cart'][$id]);
    }
   
    function showitems($type = 1){
      global $LANG;
      $prepare = '';
      if(isset($_SESSION['cart']) && !(count($_SESSION['cart']) == 0)){
        if($type == 1){
          foreach($_SESSION['cart'] as $id => $array){
!!            $prepare.='<li><a href="?product='.tourl($array['name']).'">'.substr($array['name'], 0, 19).((strlen($array['name']) > 19) ? '...' : '').'</a> <b><span title="Cena za 1 kus je '.$array['price'].' €">'.($array['price']*$array['count']).' €</span> <a href="cart.php?remove='.$id.'">r</a></b></li>';
          }
        }elseif($type==2){
          foreach($_SESSION['cart'] as $id => $array){
!!            $prepare.='dlhe riadky tabulky vyuzivam tu iba $array["name"], $array["count"] atd..';
          }
          $prepare.='sum: '.$this->price.' | '.$this->count;
        }
      }
      return $prepare;
    }
   
    function setcount($id, $count){
      if($count == 'up'){
        $_SESSION['cart'][intval($id)]['count']++;
      }else{
        $_SESSION['cart'][intval($id)]['count']--;
        if($_SESSION['cart'][intval($id)]['count'] == 0){
          unset($_SESSION['cart'][intval($id)]);
        }
      }
    }
   
  }


dal som dva vykricniky na zaciatok riadkov na ktore vyhadzovalo ten error


_________________
Sorry za prelkepy
Offline

Správca fóra
Správca fóra
Cudne spravanie pola (session)

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 28.06.2009 21:50 | Cudne spravanie pola (session)

emer píše:
Takze moje zhrnutie problemu: ono mi to do daneho prvku pola session vlozi vsetky premenne, ktore obsahuje trieda (asi :D).. ale preco ?

ty vypisujes cely objekt, nie obsah $_SESSION, preto su tam aj premenne show, cart, price a count... aj ked nechapem, na co tam mas tu premennu cart, ked ju nikde v triede nepouzivas...

emer píše:
tamto robi pri spustani pod php4... pod php5 je to trocha odlisne..

php4 nepozna __construct(), takze mozno v tom bude problem... takto narychlo tam nevidim iny problem, co by tu chybu mohlo sposobovat...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Cudne spravanie pola (session)

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 29.06.2009 12:45 | Cudne spravanie pola (session)

ale preco mi to zapisuje ten objekt to sessions ked to nikde nemam pisane ani nic?
tu premennu cart som pouzival najrpv ale potom som ju vypustil a nechal som ju na zaciatku.. ale to nie je problem, aj po odstraneni chyba pretrvava...


_________________
Sorry za prelkepy
Offline

Správca fóra
Správca fóra
Cudne spravanie pola (session)

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 29.06.2009 12:57 | Cudne spravanie pola (session)

skusal som to doma na php5 a ziadnu chybu mi to nevypisovalo... ako pouzivas tu triedu, ako pridavas novy produkt? ten vypis pola, co si sem dal, si ako dosiahol? musel si predsa nieco vypisovat, co to bolo?


Naposledy upravil stenley dňa 29.06.2009 13:09, celkovo upravené 1

_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Cudne spravanie pola (session)

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 29.06.2009 13:08 | Cudne spravanie pola (session)

mne to tiez na pocitaci ide v poriadku...

Kód:
$cart = new kosik;
  if(isset($_POST['additem'])){
    $id = intval($_POST['variant']);
    $select = mysql_query("SELECT $SETTINGS[db_prefix]_variants.*, `$SETTINGS[db_prefix]_products`.`name` FROM $SETTINGS[db_prefix]_variants JOIN $SETTINGS[db_prefix]_products ON $SETTINGS[db_prefix]_products.id = $SETTINGS[db_prefix]_variants.product WHERE $SETTINGS[db_prefix]_variants.id = $id LIMIT 1");
    echo mysql_error();
    if(!(mysql_num_rows($select) == 0)){
      while($r = mysql_fetch_array($select)){
        $cart->additem($id, $r['name'], $r['variant'], intval($_POST['count']), $r['price']);
      }
    }
  }
 
  if(isset($_GET['remove'])){
    if($_GET['remove'] == 'all'){
      unset($_SESSION['cart']);
    }elseif(isset($_SESSION['cart'][int_val($_GET['remove'])])){
      $cart->removeitem(intval($_GET['remove']));
    }
  }
  if(isset($_GET['id']) && isset($_GET['count']) && ($_GET['count'] == 'up' || $_GET['count'] == 'down')){
    $cart->setcount(intval($_GET['id']), intval($_GET['count']));
  }


_________________
Sorry za prelkepy
Offline

Správca fóra
Správca fóra
Cudne spravanie pola (session)

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 29.06.2009 13:12 | Cudne spravanie pola (session)

new kosik? nevola sa nahodou trieda cart?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Cudne spravanie pola (session)

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 29.06.2009 13:14 | Cudne spravanie pola (session)

jaj hej, ale to nie je chyba.. ja som prepisoval nazov triedy potom ako som sem kopiroval tie kody

edit:: vyriesene - vypustil som triedu, srpavil som si to ako obycajne funkcie a vsetko je v poriadku

ale ajtak by ma zaujimalo rpeco zapisovalo cely objekt :loony:
Na localhoste to slo v poriadku a na hostingu (websupport) uz robilo problemy.. vysksuam na nejakom inom webhostingu co to spravi..


_________________
Sorry za prelkepy
Offline

Správca fóra
Správca fóra
Cudne spravanie pola (session)

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 29.06.2009 15:43 | Cudne spravanie pola (session)

trosku som sa na to pozrel, ked si spomenul websupport... problem bude pravdepodobne v zapnutom register_globals... inak si to vysvetlit neviem... ak to nemas moznost vypnut, skus si tu premennu premenovat na nieco ine, ako pouzivas v SESSION, napr:
Kód:
$kosik = new Cart;
$kosik->additem(...);
...

a malo by to fungovat... este by nebolo od veci niekde deklarovat $_SESSION['cart'] = array();


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Cudne spravanie pola (session)

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
Napísal autor témyOffline : 29.06.2009 15:52 | Cudne spravanie pola (session)

ano, to som myslel aj ja... preto tie rozdielne nazvy "cart" a "kosik", na ktore si sa pytal..

teraz pozeram, regsiter_globals zapnute... neskor ako bude cas tak vyskusam ci to bude v poriadku, ked vypnem


_________________
Sorry za prelkepy
 [ Príspevkov: 11 ] 


Cudne spravanie pola (session)



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

čudné správanie XP

v Operačné systémy Microsoft

5

320

29.08.2009 21:17

FERDA23

V tomto fóre nie sú ďalšie neprečítané témy.

Cudne spravanie sa mysi

v Operačné systémy Microsoft

6

235

20.12.2007 1:41

matias

V tomto fóre nie sú ďalšie neprečítané témy.

MSI R6850 Cyclone čudné správanie

v ATI/AMD grafické karty

10

381

17.05.2012 22:37

t-90

V tomto fóre nie sú ďalšie neprečítané témy.

divne spravanie

v Webhosting a servery

2

477

02.01.2009 12:11

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Cudne datumy

v Správy pre vedenie fóra

5

840

29.07.2008 14:52

raf

V tomto fóre nie sú ďalšie neprečítané témy.

čudné znaky

v Redakčné systémy

15

1332

20.06.2007 15:53

pitbull

V tomto fóre nie sú ďalšie neprečítané témy.

zvlastne spravanie PC

v PC skrinky a zdroje

2

252

16.04.2010 15:57

Sela

V tomto fóre nie sú ďalšie neprečítané témy.

Divne spravanie kompu

v Ostatné

12

615

10.01.2008 11:02

mimkork

V tomto fóre nie sú ďalšie neprečítané témy.

Správanie premennej $_SESSION

v PHP, ASP

1

162

15.06.2012 17:59

emer

V tomto fóre nie sú ďalšie neprečítané témy.

Arogantné správanie Creative?

v Novinky

5

395

09.04.2008 9:02

Mir

V tomto fóre nie sú ďalšie neprečítané témy.

DIVNE SPRAVANIE PC

v Operačné systémy Microsoft

2

229

10.08.2011 21:53

Leslie12

V tomto fóre nie sú ďalšie neprečítané témy.

divne spravanie mikrofonu

v Zvuk

1

482

23.03.2010 21:03

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

zahadne spravanie XP

v Operačné systémy Microsoft

10

553

15.04.2008 15:42

BBUlet

V tomto fóre nie sú ďalšie neprečítané témy.

volajúce čudné čísla :?

v Krčma

6

458

25.02.2010 9:15

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

Cudne takty VGA

v ATI/AMD grafické karty

9

463

27.10.2007 23:22

Gonzo

V tomto fóre nie sú ďalšie neprečítané témy.

Zdroj - cudne praskanie

v PC skrinky a zdroje

2

395

24.08.2010 16:30

ovi77



© 2005 - 2017 PCforum, edited by JanoF