Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP oikeaoppinen loggaus

moskito [07.12.2006 12:53:24]

#

Miten saisin tehtyä kirjautumisen oikeaoppisesti, että uloskirjautuessa selaimen back-napilla ei pääsisi kirjautumaan takaisin ja että myöskään edelliset kirjautuneena käydyt sivut eivät näkyisi?

header('Cache-Control: no-cache'); auttaa sisäänkirjautumisformin uudelleenlähetyksen estämiseen, kun back-nappia painetaan, mutta silti sisään- ja uloskirjautumisen välillä katsottuja sivuja pääsee selaamaan.

Näkyy ohjelmointiputkankin sivuilla olevan myös tuo edellämainittu ongelma, mut miten sen sais pois?

ajv [07.12.2006 12:59:49]

#

Ite olen käyttänyt seuraavanlaisia otsakkeita

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
?>

ja tuntunut toimivan ihan hyvin.

moskito [07.12.2006 13:15:25]

#

Mulla toi ei nyt sitten huomioi enää tota no-cache osaa tuosta, eli selain lähettää tunnuksen ja salasanan taas uudestaan kun menee taaksepäin...

ajv [07.12.2006 15:24:12]

#

??

Nyt ei ymmärrä? Eli kirjaudut => Selailet sivuja => Loggaat ulos => Alat rämpyttää back-nappia, niin tarpeeksi kauan kun painelet tulet siihen kohtaan jossa kirjauduit ja pääset kirjautumaan uudestaan?

Sun pitää uudelleenohjata sieltä kirjautumissivulta jonnekkin, jolloin ne lomakkeen lähettämät tiedot häviää. Lue kuhasta tästä threadista ongelma numero yksi ja eisin kommentti siihen.

moskito [07.12.2006 15:56:53]

#

ajv kirjoitti:

Nyt ei ymmärrä? Eli kirjaudut => Selailet sivuja => Loggaat ulos => Alat rämpyttää back-nappia, niin tarpeeksi kauan kun painelet tulet siihen kohtaan jossa kirjauduit ja pääset kirjautumaan uudestaan?

Niin. Ja jos laittaa ton header('Cache-Control: no-cache'); niin siitä ongelmasta pääsee eroon, mut sitten ne selatut sivut näkyy samalla tavalla kuin olisit kirjautuneena (vaikka uusille sivuille ei pääsekään).

ajv kirjoitti:

Sun pitää uudelleenohjata sieltä kirjautumissivulta jonnekkin, jolloin ne lomakkeen lähettämät tiedot häviää. Lue kuhasta tästä threadista ongelma numero yksi ja eisin kommentti siihen.

No joo... Uudelleenohjaamalla vaan ei taida saada kätevästi koko osoiteriviä talteen jos haluasi samalle sivulle päästä kirjautumisen jälkeen. Esim. jos selaa keskustelusivua kirjautumatta ja haluaakin kommentoida => loggaa sisään, mut ei pääse samaan kohtaan jos GETissä on paljon parametreja. Vai onko $SERVERissä muuttujaa jossa olisi kaikki GET-arvot?

ajv [07.12.2006 16:20:33]

#

Joo, $_SERVER-taulukosta löytyy kyllä tarpeelliset tiedot ko. sivun osoitteen selvittämiseen parametreineen. Kaivappa esim tästä tarpeelliset. Eli selatun sivun osoite vaan kirjautumisformiin hidden-kenttään ja paluu kirjautumissivulta sen mukaan, sen taisit jo tietääkkin.

moskito [07.12.2006 16:42:05]

#

ajv kirjoitti:

Joo, $_SERVER-taulukosta löytyy kyllä tarpeelliset tiedot ko. sivun osoitteen selvittämiseen parametreineen. Kaivappa esim tästä tarpeelliset. Eli selatun sivun osoite vaan kirjautumisformiin hidden-kenttään ja paluu kirjautumissivulta sen mukaan, sen taisit jo tietääkkin.

Jep, mun tapauksessa homma selvisi kun lomakkeen käsittelyn loppuun laittoi

 Header("Location: " . $_SERVER['SCRIPT_NAME'] . "?" . $_SERVER['QUERY_STRING']);

kiitos!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta