Problem se zapisem do sessions na produkcnim serveru

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

Ahoj, na produkcni server jsem nahodil nette 2.2.7 a mam problem se sessions

<?php

namespace App\Presenters;

use Nette,
	App\Model;


/**
 * Homepage presenter.
 */
class HomepagePresenter extends BasePresenter
{

	protected function startup()
    {
        parent::startup();

        session_start();
        if(isset($_SESSION['views']))
            $_SESSION['views'] = $_SESSION['views']+ 1;
        else
            $_SESSION['views'] = 1;

        echo "zobrazeni = ". $_SESSION['views'];
        echo '<br/>';
	}

}

pri refresi stranky se nepricita $_SESSION[‚views‘]

pokud dam toto do zvlastniho souboru

<?php

session_start();
if(isset($_SESSION['views']))
    $_SESSION['views'] = $_SESSION['views']+ 1;
else
    $_SESSION['views'] = 1;

echo "zobrazeni = ". $_SESSION['views'];
echo '<br/>';

tak to pricita.

a na localu mi to funguje i v nette :(

PEKLO

Marek Šneberger
Člen | 130
+
+8
-

Ale fuj! :-)

Co si takhle injectnout Session z Nete a vyvarovat se téhle fenomenální prasárny?

Editoval Marek Šneberger (4. 2. 2015 15:00)

vosy
Člen | 532
+
-5
-

nejde mi o tu prasarnu ale to ze mi nefunguje LOGIN zalozeny na SESSION

Marek Šneberger
Člen | 130
+
0
-

Tak ti nefunguje login, nebo čítač přístupů? Jabka, hrušky nebo párek?

Každopádně se mrkni do dokumentace, použij to tak a teprve až budeš mít konkrétní problém tak to s tebou bude někdo řešit. Toť můj názor :)

Editoval Marek Šneberger (4. 2. 2015 15:26)

Jan Endel
Člen | 1016
+
+1
-

Vzhledem k tomu, že to máš napsané na čistém php, tak bych nehledal chybu v nette ale v nastavení serveru ;).

vosy
Člen | 532
+
-2
-

nefunguje mi login, ktery asi zrejme neco uklada do sessions, a nette to evidentne neudrzi.

na localu mi to frci a na produkcnim ne e tak me jen zajimalo jestli se s s probleme session nekdo nesetkal.
DIKY

vosy
Člen | 532
+
-2
-

mno to co mam napsane v cistem PHP tak to session udrzi ale to co mam v Homepresenteru tak to mi session neudrzi.

vosy
Člen | 532
+
0
-
<?php

namespace App\Presenters;

use Nette,
	App\Model;


/**
 * Homepage presenter.
 */
class HomepagePresenter extends BasePresenter
{
    /** @var Nette\Http\Session */
    private $session;


    function injectSession(Nette\Http\Session $session)
    {
        $this->session = $session;
    }

	protected function startup()
    {
        parent::startup();

        // session_start();
        if(isset($_SESSION['views']))
            $_SESSION['views'] = $_SESSION['views']+ 1;
        else
            $_SESSION['views'] = 1;

        echo "zobrazeni = ". $_SESSION['views'];
        echo '<br/>';


        $myCounter = $this->session->getSection('myCounter');
        $myCounter->count++; // zvětšíme čítač o jedničku
        echo "Stránku jste zobrazil $myCounter->count × </br>";
	}

}

Vysledek stale stejny

zobrazeni = 1
Stránku jste zobrazil 1 ×
vosy
Člen | 532
+
-2
-

nevim jestli nette nebo server, nikde se nic nehlasi

vosy
Člen | 532
+
-2
-

mno hezky tak to nefunguje jen na Chromu

Filip Procházka
Moderator | 4668
+
0
-

Vůbec na $_SESSION nesahej, používej jenom Nette\Http\Session a jeho sekce.

vosy
Člen | 532
+
0
-

pak jsem pouziv

$myCounter = $this->session->getSection('myCounter');
        $myCounter->count++; // zvětšíme čítač o jedničku
        echo "Stránku jste zobrazil $myCounter->count × </br>";

a v Chromu stale stejny vysledek, nepricita se.
v Safari, Firefoxu vse bez problemu