Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 11 ] 
AutorSpráva
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok NapísalOffline : 28.06.2009 20:17

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.06.2009 21:03

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







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok Napísal autor témyOffline : 28.06.2009 21:24

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 28.06.2009 21:50

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...







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok Napísal autor témyOffline : 29.06.2009 12:45

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 29.06.2009 12:57

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






_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok Napísal autor témyOffline : 29.06.2009 13:08

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 29.06.2009 13:12

new kosik? nevola sa nahodou trieda cart?







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok Napísal autor témyOffline : 29.06.2009 13:14

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: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 29.06.2009 15:43

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();







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181
Bydlisko: Nitra / Bra...
Príspevok Napísal autor témyOffline : 29.06.2009 15:52

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
Odpovedať na tému [ Príspevkov: 11 ] 


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

531

29.08.2009 21:17

FERDA23 Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

6

523

20.12.2007 1:41

matias Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MSI R6850 Cyclone čudné správanie

v ATI/AMD grafické karty

10

580

17.05.2012 22:37

t-90 Zobrazenie posledných príspevkov

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

v Správy pre vedenie fóra

5

1049

29.07.2008 14:52

raf Zobrazenie posledných príspevkov

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

v Redakčné systémy

15

1654

20.06.2007 15:53

pitbull Zobrazenie posledných príspevkov

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

v Webhosting a servery

2

726

02.01.2009 12:11

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Arogantné správanie Creative?

v Novinky

5

626

09.04.2008 9:02

Mir Zobrazenie posledných príspevkov

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

v PC skrinky a zdroje

2

664

24.08.2010 16:30

ovi77 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Čudné zobrazovanie obrázkov

v Sieťové a internetové programy

8

474

24.03.2008 12:19

Tomas1 Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

2

424

10.08.2011 21:53

Leslie12 Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

4

483

09.03.2009 20:01

Atrix24 Zobrazenie posledných príspevkov

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

v Monitory, televízory a projektory

12

739

20.01.2009 15:25

Milan.H Zobrazenie posledných príspevkov

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

v Pamäte

6

511

01.01.2008 17:32

Skyro Zobrazenie posledných príspevkov

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

v Zvuk

1

725

23.03.2010 21:03

majky358 Zobrazenie posledných príspevkov

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

v Sieťové a internetové programy

8

514

14.07.2012 21:56

InVader Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

10

864

15.04.2008 15:42

BBUlet Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra