podivné chování session při prvním použití
- kovarik.t
- Člen | 18
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.    <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
Takhle se v nette pracuje se session: https://doc.nette.org/…ttp/sessions
- David Matějka
- Moderator | 6445
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
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
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)