NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Chyba kontroleru

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Michal Kuba
Tvůrce
Avatar
Michal Kuba:12.4.2015 14:52

Zdravím.
Mám takovýto kontroler pro přidávání inzerátu:

class PodatinzeratKontroler extends Kontroler {
    public function zpracuj($parametry){


        $spravceInzeratu= new SpravceInzeratu();
        $spravceUzivatelu = new SpravceUzivatelu();
        $uzivatel = $spravceUzivatelu->vratUzivatele();
        $this->hlavicka = array(
                        'titulek' => 'Podat inzerát - Mainos.cz',
                        'klicova_slova' => 'podat inzerát, inzerát, mainos.cz, inzeráty zdarma',
                        'popis' => 'Přidání nového inzerátu na web Mainos.cz'
                );
        $this->pohled = 'podatinzerat';

        $inzerat = array(
                        'ID' => '',
                        'titulek' => '',
                        'text' => '',
                        'kategorie' => '',
                        'upresneni' => '',
                        'mesto' => '',
                        'autor' => '',
                );

        if ($_POST)
                {


                        $klice = array('titulek', 'obsah', 'kategorie', 'upresneni', 'mesto', 'autor');
                        $inzerat = array_intersect_key($_POST, array_flip($klice));
                        // Uložení článku do DB
                        $spravceInzeratu->ulozInzerat($_POST['ID'], $inzerat);
                        $this->pridejZpravu('Inzerát byl úspěšně uložen.');
                        $this->presmeruj('nejnovejsi');
                }
    }
}
}

A potřebuji do něj vložit podmínku, která vlastně nepustí na přidávání inzerátů uživatele, který není přihlášený. Vypadá takto:

if (!isset($_SESSION['jmeno']))
{
        header('Location: prihlaseni');
        $this->pridejZpravu('Pro vložení inzerátu se musíte přihlásit.');
        exit();
}

Ať ji ale vložím kamkoliv a jsem přihlášený, vždy mě to přesměruje na přihlášení resp. administraci, když jsem se již přihlásil. Nevíte co s tím? Nebo to mám dávat někam do modelu? to je blbost ne?

 
Odpovědět
12.4.2015 14:52
Avatar
Odpovídá na Michal Kuba
Neaktivní uživatel:12.4.2015 15:15

Chceš říct, že se ta podmínka vykoná, i když $_SESSION["jmeno"] není nastavený? Jinak určitě do kontroleru. :)

Editováno 12.4.2015 15:16
Nahoru Odpovědět
12.4.2015 15:15
Neaktivní uživatelský účet
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Michal Kuba:12.4.2015 15:20

Je to myšleno tak, že pokud v SESSION není jméno (nebo id uživatele, to je fuk podle mě) tak se to přesměruje na přihlášení. Takhle mi to fungovalo na mé předchozí verzi webu, kde nebylo MVC -> dal jsem tu podmínku na začátek php skriptu stránky a bylo.

 
Nahoru Odpovědět
12.4.2015 15:20
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Kuba
Jan Lupčík:12.4.2015 15:29

A nemá tam být $_SESSION["uzi­vatel"] (v minulé diskuzi jsi to ukládal do něj)?

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
12.4.2015 15:29
TruckersMP vývojář
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Jan Lupčík
Michal Kuba:12.4.2015 15:32

No jo, máš pravdu.. napadlo mě, jak jsem i koukal na ten kód uložit porovnávat SESSION nějak s uživatelem, ale měl jsem tam furt tu proměnnou a ne uvozovky :) Díky

 
Nahoru Odpovědět
12.4.2015 15:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.