Cookie / SESSION košík – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cookie / SESSION košík – PHP – Fórum – Programujte.comCookie / SESSION košík – PHP – Fórum – Programujte.com

 

19. 3. 2020   #1
-
0
-

Ahoj všichni,

prosím o pomoc s vyřešení problému s nákupním košíkem v cookie nebo v session.

Mám ho hotový, ale množství v košíku to po přidání stejné položky dvojnásobí a nemohu najít důvod, proč se tak děje. 

Prosím a zároveň děkuji za jakoukoliv pomoc.

Zpracovnání košíku:

        $nova_polozka=NULL;
        $ids_kosik=NULL;
        $pocet_kosik=NULL;
        if((isset($_GET['product_ID']))and (isset($_GET['amount'])))
        {
            $cookie_name_1="ids";
            $cookie_name_2="pocet";
            $product_id=$_GET['product_ID'];
            $product_amount=$_GET['amount'];
//       
            if((isset($_COOKIE['ids'])) and (isset($_COOKIE['pocet'])))
            {
                $ids_load=$_COOKIE[$cookie_name_1];
                $pocet_load=$_COOKIE[$cookie_name_2];
                
                $ids_array=explode(" / ",$ids_load);
                $pocet_array=explode(" / ",$pocet_load);
                
//                var_dump($ids_array);
                foreach ($ids_array as $key_id => $id) 
                {
//                    echo'<br>product_id: '.$product_id.'___id: '.$id.'<br>';
                    if($product_id==$id)
                    {
//                        echo'<br>V podmince !!! :  product_id: '.$product_id.'___id: '.$id.'<br>';
//                        die;
                        $nova_polozka=$nova_polozka+1;
                        $pocet_array[$key_id]=$pocet_array[$key_id] + $product_amount;
                    }  
                    
                    if($key_id==0)
                    {
                        $ids_kosik=$id;
                    }
                    else 
                    {    
                        $ids_kosik=$ids_kosik.' / '.$id;
                    }
                    
                }
                foreach ($pocet_array as $key => $pocet) 
                {
                    if($pocet_kosik==NULL)
                    {
                        $pocet_kosik=$pocet;
                    }    
                    else 
                    {

                        $pocet_kosik=$pocet_kosik.' / '.$pocet; 
                    } 
                    
                }
//                echo '<br>NOVA POLOZKA:_'.$nova_polozka.'<br>';
                if($nova_polozka==NULL)
                {
                    $ids_kosik=$ids_kosik.' / '.$product_id;
                    $pocet_kosik=$pocet_kosik.' / '.$product_amount;
                }
                setcookie($cookie_name_1, $ids_kosik, time() + (86400 * 30), "/");
                setcookie($cookie_name_2, $pocet_kosik, time() + (86400 * 30), "/");
                
            }
            else 
            {
                
                setcookie($cookie_name_1, $product_id, time() + (86400 * 30), "/");
                setcookie($cookie_name_2, $product_amount, time() + (86400 * 30), "/");
            }
            
        }
Nahlásit jako SPAM
IP: 212.79.110.–
gna
~ Anonymní uživatel
1891 příspěvků
20. 3. 2020   #2
-
0
-

Já si myslím, že by to mohlo fungovat, ale ruku do ohně za to nedám. Nechápu, jak se ti podařilo explode; +=; implode; napsat na 50 řádků   

Každopádně tohle nedělej a použij $_SESSION.

Nahlásit jako SPAM
IP: 213.211.51.–
21. 3. 2020   #3
-
0
-

#2 gna
Právě že to to nefunguje jak má. Po zadaní id produktu, který už je v košíku to přičte dvojnásobný amount.

Nevím proč. uloží se správné číslo, ale po načtení stránky je to špatně.

Nahlásit jako SPAM
IP: 212.79.110.–
gna
~ Anonymní uživatel
1891 příspěvků
21. 3. 2020   #4
-
0
-

Upřímně, mně se to nechce moc študovat, ale myslel jsem to tak, že tady problém nevidím a možná bude jinde. Nevolá se ti to prostě dvakrát?

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 65 hostů

Podobná vlákna

PHP - KOSIK session/sql — založil Sigurd.G

Session a cookie — založil leopik1

Pouzivat SESSION alebo COOKIE? — založil Lordest

Eshop košík — založil Jarda 25

Jednoduchý košík — založil mich

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý