Jaký používáte princip pro znovupřihlášení neaktivního (třeba po 30ti min) uživatele na stránku. Jde mi o to, aby ho to po přihlášení zase hodilo na stránku kde byl před tím.
No mě napadlo ukládat aktuální stránky společně s časem do session promněné a když překročí nějakou dobu tak vyžádat znovupřihlášení, ale nevím.
no do session asi ne protoze ta session ti prave vyprsi po urcitym case, cookie vyprsi az budes chtit ty...
někdo má cookies vypnuté a session si můžu nastavit.
FireFox hlásí že:
Limit pro přesměrování URL vypršel. Nelze nahrát požadovanou stránku. Je možné, že toto chování je způsobeno blokováním cookies.
Poraďte co to znamená. Děje se to když používám sessions. Cookies jsou povolené. Dík.
Sessions IMHO využívaj některý typy Cookies.... IMHO
To vím, nakonec to bylo špatné přesměrování přes Header Location, ještě to musím řešit, ale myslím, že to s cookies ani nesouviselo. On nakonec FireFox pouze hlásil, že "je možné ..."
stip > tu chybovou hlášku mi hodil FF když jsem měl zacyklený header location (stránka se po načtení přesměrovala na tu samou a tak pořád dokola do nekonečna)
jedina spolehliva metoda je ukladani do databaze... nebo muzes poznat kde byl podle toho, co ti posila za formularova data a ty znovu poslat i sprihlasovacim formularem, to me napadlo ted a musim se pochvalit:-) je mi jasny ze to je uz davno vymysleny, ale ja na to prisel sam;-)
Buď konkrétní. To jako že bych dal do políčka input hidden v přihlašovacím formuláři proměnou $_SERVER[REQUEST_URI] a přesměroval po přihlášení zpátky podle ní? Nebo jak?
Co si udělat vlastní funkce pro ukládání session. Koukni se do manuálu na session_set_save_handler, je tam i funkční příklad. Takhle ten limit obejdeš.
Jakej limit? Ta funkce je na určení místa kam se maj ukládat sessions, to vím už dlouho, ale nechápu souvislost.
To není jen určení místa, ale můžeš sessions ukládat i do databáze apod. Ale hlavně ti session nevyprsi po nekolika (tusim 14) minutach, takze to po 30 minutach bude fungovat.
Ale mě ten limit vůbec nevadí, já ho tam chci. Jenom chci aby se po znvupřihlášení přesměrovala stránka, kde uživatel byl, když ten limit vypršel.
<HTML>Uz to psal jinde....
Tak, jako mas v DB username a userpassword, pridej tam jeste sloupec hash nebo dle libosti...
Do nej budes ukladat nahodny md5 hash rekneme:
$hash = md5($username.time());
tento hash posles do cookies na neomezenou dobu (ci dle libosti)
Na strance se bude kontrolovat jen Session... teprve tehdy, bude-li user bez session overis cookies s kym se dany hash rovna v DB...
Pak podle toho mu opet nahodis session a vygenerujes novy hash ktery ulozis do DB a do cookies a tak porad dokola</HTML>
>>tento hash posles do cookies na neomezenou dobu (ci dle libosti)
ja by som to dal bez casu (do zavretia browsera)
Ježišmarjá lidi! Na jednu stranu oceňuji, že mi chcete pomoct, na druhou mě sere, že mluvíte všichni mimo. Toto téma je o tom, že pouze chci při znovupřihlášení PŘESMĚROVAT UŽIVATELE NA STRÁNKU KDE BYL, KDYŽ MU VYPRŠEL LIMIT KVŮLI JEHO NEAKTIVITĚ. To co mi radíte je užitečné a já to vím, ale o to nejde.
vzdy pri nacitani stranky uloz do cookie stranku na ktorej je
ked ho to odhlasi tak ho prihlas a presmeruj na poslednu hodnotu cookie
a co takhle presmerovat to na $_SERVER["HTTP_REFERER"] ?
O tom mluvím od začátku, ale jak na cookie, tak na referer se nedá vůbec spolehnout. To bude fungovat maximálně šest pokusů z deseti. Chtěl jsem vědět zdali neznáte sofistikované a spolehlivé řešení.
Předpokládám, že máš databázi uživatelů. Jak uživatel bude chodit po stránkách, tak k jeho záznamu budeš pořád ukládat stránku otevřenou naposledy (třeba $_SERVER['REQUEST_URI']).
Když mu vyprší limit, tak to zůstane uložené. Jakmile se přihlásí, tak ho pomocí header("Location:...") přesměruješ na tu uloženou adresu.
Pokud chceš, aby se to takto chovalo jen při neaktivitě uživatele, tak při regulárním odhlášení záznam o poslední stránce třeba vyprázdni, aby ho to po přihlášení tam nehodilo.
Toto by mělo fungovat vždy, když bude fungovat přihlášení (sessions).
to stilett: jenomze takhle ztrati treba rozepsanej mejl, nebo neco
ja nevim co programujes, ale popisu na prikladu webmailu:
uzivatel pise svuj mejl dele, nez mu dokaze vydrzet session, kdyz ho dopise, tak klikne na odeslat, data se poslou postem, krom toho tam bude nejakej skrytej flag, ano spravne si uhodl, hidden intput. Ale requestURI bych nedoporucoval setkal sem se s tim ze na IIS php5 request uri nebylo, nevim proc, ani jestli to je tim php5, nebo iis, ale proste nam nebylo, pouzil sem tedy phpself+ argv(prohlidni si pole $_SERVER pomoci print_r($_SERVER);. Nicmene v tomto pripade je to mozna zbytecne, stacila by i nejaka textova hodnota, kterou v nasledujicim skriptu rozkodujes. Btw. hodnoty phpself+argv/requestURI muzou bejt na nic, pokud mas jeden zpracovavaci php skript pro vic cinnosti(ja to tak delam casto).
NIcmene dal:
kdyz zavolas ten dalsi skript a session bude mrtva, sahnes si pro ten hidden input, zjistis co se posila a se submitnutim hesla posles zaprvy ten hidden input (pokud pouzivas ruzny soubory, tak samozrejme na spravnej skript) a za druhy do dalsich hidden inputu vlozis ty data z minula...
ma to tu nevyhodu, ze ve zdrojaku sou ta data videt, takze to chce opatrne s citlivymi udaji...
pochopeno?:-)
doplneni: misto argv je asi snazsi QUERY_STRING
->luki: Až tak dokonale to asi nepotřebuje. Jinak je asi jedno, co programuje, protože by to chtělo vyřešit univerzálně, pro každou stránku zvlášť by to byla docela haluz.