podivné chování session při prvním použití

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kovarik.t
Člen | 18
+
0
-

Ahoj řešim podivný problém.

spustili jsme super jednoduchej web na objednávku jednoho produktu. Problém je v tom že první submit formuláře (vloz do kosiku) unikátního zákazníka se neuloží do session. Jakýkoliv další submit uz funguje.
Nechápu…

Zkusit můžete zde www.gurecky.net

public function addToCart($form)
    {
        $values = $form->getValues(TRUE);

        if ($values['material'] == 'ocel')
        {
            $materialPrice = 7200;
        }
        if ($values['material'] == 'hlinik')
        {
            $materialPrice = 7800;
        }

        if ($values['sedlo'] == 'bez_sedla')
        {
            $sedloPrice = 0;
        }
        if ($values['sedlo'] == 'anglicke')
        {
            $sedloPrice = 1056;
        }
        if ($values['sedlo'] == 'cafe_racer')
        {
            $sedloPrice = 504;
        }

        if ($values['gumova_podlozka'] == 'ne')
        {
            $silencerPrice = 0;
        }
        if ($values['gumova_podlozka'] == 'ano')
        {
            $silencerPrice = 864;
        }

        $eurKurz = 27.8;

        $finalPrice = round(($materialPrice + $sedloPrice + $silencerPrice) / $eurKurz);
        $dph = round($finalPrice * 0.21);

        //dump($values);
        //dump(round($finalPrice + $dph));

        $uid = md5(uniqid(rand(), true));

        $_SESSION["polozky"][$uid]['uid'] = $uid;
        $_SESSION["polozky"][$uid]['options'] = $values;
        $_SESSION["polozky"][$uid]['finalPrice'] = $finalPrice;
        $_SESSION["polozky"][$uid]['dph'] = $dph;

        $this->flashMessage('Have you ever seen the pony in shoping cart? So there he is. &nbsp&nbsp&nbsp<a href="/cart">>> to shoping cart</a>', 'alert alert-success');
        $this->redirect('default');
    }

Editoval kovarik.t (12. 11. 2014 13:13)

David Matějka
Moderator | 6445
+
+2
-

Takhle se v nette pracuje se session: https://doc.nette.org/…ttp/sessions

kovarik.t
Člen | 18
+
-3
-

Což mi přijde složitý pro uložení pár proměných.

Nicméně Proč mi nefunguje klasická session???

David Matějka
Moderator | 6445
+
+1
-

Nicméně Proč mi nefunguje klasická session???

protoze ji nikde nestartujes


a opravdu je o tolik slozitejsi napsat

$this->getSession('polozky')->$uid = array(
	'uid' => $uid,
....
);

?

Editoval matej21 (12. 11. 2014 13:34)

kovarik.t
Člen | 18
+
0
-

matej21 napsal(a):

Nicméně Proč mi nefunguje klasická session???

protoze ji nikde nestartujes


a opravdu je o tolik slozitejsi napsat

$this->getSession('polozky')->$uid = array(
	'uid' => $uid,
....
);

?

Zkusim ale stejně. nette startuje session automaticky ne? kdyz tam dam session_start() tak to ladenka hlasi ze uz je nastartovana…

David Matějka
Moderator | 6445
+
+4
-

defaultne nette startuje session „chytre“, tedy az kdyz je potreba. Proto je nejlepsi se mu do toho nes*at a pouzit Nette\Session :)

Editoval matej21 (12. 11. 2014 14:16)