Autor Zpráva
Spectator
Profil
Dobrý večer,
mám problém s tímto:

    session_start();
    $postedLogin=($_POST['login']);
    $postedPass=($_POST['pass']);
    if(!empty($postedLogin) and !empty($postedPass)){
        $vysledek=mysql_query("SELECT id FROM users WHERE login='$postedLogin' and pass='$postedPass'");
        $id=mysql_fetch_row($vysledek);
        $time=time();
        $_SESSION['id']=$id[0];
        mysql_query("UPDATE users SET online='1',casPrihlaseni='$time' WHERE id='$id'");
        echo var_dump($_SESSION['id']);



var_dump mi vypíše:
string(3) "153"

přesto když v opeře kouknu na všechny aktivní cookies a sessions, tak v seznamu nic není.
Proč?
panther
Profil
Spectator:
a co by tam mělo být jiného, než jedna sessiona s hodnotou == id, které jsi vybral z databáze?
Spectator
Profil
panther:
Neni tam nic, ani jedna session. Prostě nic.
Ještě včera mi to fungovalo, dnes nefunguje.
Radek9
Profil
Spectator:
Jak by se v seznamu nějakého prohlížeče mohly zobrazovat sessions? Vždyť jsou na serveru. V prohlížeči se ti zobrazí jen session_id, ale to je buď v cookie, nebo v adrese.
Spectator
Profil
Vím, že v prohlížeči neni sessions, ale jen cookies session_id, předtím jsem to špatně formuloval. Ale ta tam není.

Nezkouším samozřejmě existenci jen nějakým prohlížečem. Nemám vubeč šajn proč to nejde.
panther
Profil
Spectator:
Neni tam nic, ani jedna session. Prostě nic.
a string(3) "153" je vzduch? Ne, je je hodnota $_SESSION['id'].

Pokud chceš vypsat všechny sessiony, pak var_dump($_SESSION);.
Spectator
Profil
po přesměrování a po příkaze session_start() tam opet neni nic 8-(
tiso
Profil
Spectator: „po přesměrování a po příkaze session_start()
to je trošku iná situácia, kód je kde?
Spectator
Profil
function isUserLogged(){
     if(isset($_SESSION['id'])){
        $id=$_SESSION['id'];
        $vysledek=mysql_query("SELECT * FROM users WHERE id='$id'");
        $radek=MySQL_fetch_array($vysledek);
        if(($radek['id']==$_SESSION['id']) and ($radek['online']==1)){
            $time=time();
            $id=$_SESSION['id'];
            if($time-$radek['posledniAkce']<1800){
                mysql_query("UPDATE users
                            SET posledniAkce='$time'
                            WHERE id='$id'");
                                    echo "OK";
                return true;
            }
            else{
                return false;
            }
        }
        else{
            return false;
        }
     }
     else{
        return false;
     }
    }


Koukám, že tam mám zbytečně moc podmínek, trochu to ostrouhám.
Nic to ovšem nemění nic na faktu, že to nefunguje
Spectator
Profil
Upravil jsem to:

    function isUserLogged(){
        if(isset($_SESSION['id'])){
            $id=$_SESSION['id'];
            $vysledek=mysql_query("SELECT * FROM users WHERE id='$id' and online=1");
            $radek=MySQL_fetch_array($vysledek);
            $time=time();
            $id=$_SESSION['id'];
            mysql_query("UPDATE users
                        SET posledniAkce='$time'
                        WHERE id='$id'");
            return true;
        }
        else{
            return false;
        }
    }


a funguje... Asi jsem trotl a mam toho dnes moc. Promiňte za otravování
Radek9
Profil
Spectator:
Mimochodem, proč je tam dvakrát $id=$_SESSION['id'];? :-)
AM_
Profil
Spectator:
var_dump mi vypíše:
string(3) "153"
>
přesto když v opeře kouknu na všechny aktivní cookies a sessions, tak v seznamu nic není.
Pokud tvůj program funguje správně (vytažení id 153 z databáze nevypadá jako špatné chování), tak bych neřešil, proč v seznamu cookies v prohlížeči nevidíš cookie PHPSESSID. Pokud program správně nefunguje, napiš především, co nefunguje v programu, co nemůžeš najít v datech prohlížeče je až druhotná informace.


ale jen cookies session_id,
kolik jich tam je? cookie je jednotné číslo, cookies množné, to nás učili na AJ už v mateřské škole.

//P.S. funkci, která má (dle názvu) zjistit, zda je uživatel přihlášen, a při tom zapisuje do databáze, bych označil odpornou a zvrhlou. Pokud někdo ve své aplikaci 150x ověří, zda je uživatel přihlášen (to třeba při generování šablony není nic neobvyklého), nechci si ani představovat, co se v programu bude dít a jak dlouho se to bude dít...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0