| Autor | Zpráva | ||
|---|---|---|---|
| Spectator Profil |
#1 · Zasláno: 22. 11. 2010, 19:52:37 · Upravil/a: Spectator
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 |
#2 · Zasláno: 22. 11. 2010, 20:07:10
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 |
#3 · Zasláno: 22. 11. 2010, 20:09:59
panther:
Neni tam nic, ani jedna session. Prostě nic. Ještě včera mi to fungovalo, dnes nefunguje. |
||
| Radek9 Profil |
#4 · Zasláno: 22. 11. 2010, 20:11:35
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 |
#5 · Zasláno: 22. 11. 2010, 20:14:45
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 |
#6 · Zasláno: 22. 11. 2010, 20:15:36
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 |
#7 · Zasláno: 22. 11. 2010, 20:18:30
po přesměrování a po příkaze session_start() tam opet neni nic 8-(
|
||
| tiso Profil |
#8 · Zasláno: 22. 11. 2010, 20:21:36
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 |
#9 · Zasláno: 22. 11. 2010, 20:26:54 · Upravil/a: Spectator
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 |
#10 · Zasláno: 22. 11. 2010, 20:33:03
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 |
#11 · Zasláno: 22. 11. 2010, 20:51:32
Spectator:
Mimochodem, proč je tam dvakrát $id=$_SESSION['id'];? :-)
|
||
| AM_ Profil |
#12 · Zasláno: 22. 11. 2010, 21:02:24 · Upravil/a: AM_
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... |
||
|
Časová prodleva: 16 let
|
|||
0