Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sessio / header huolia!

Toshiba [28.05.2008 13:27:42]

#

Tervehdys,

Ongelmani on lähinnäi seuraavanlainen:

Index.php:ssä on includettu kirjaudu.php ja uloskirjaudu.php tiedostoja, joissa molemmissa on header("Refresh: 0; url=index.php"); funktio.

Ongelma ilmeisesti piileekin siinä, että includet ovat keskellä index.php koodia ja uudelleen ohjausta ei ilmeisesti siksi tapahdu? Kokeilin exit(); - funktiota / session_write_close(); - funktiota ennen uudelleenohjausta, mutta index.php sivua ei sitten suoriteta loppuun, eikä se voi näinkään onnistua!

Mikä auttaisi pulmaan?

TsaTsaTsaa [28.05.2008 13:36:16]

#

Headerit pitää asettaa aina heti ensimmäisenä eli ennen niitä ei saa olla mitään muuta tulostusta.

Toshiba [28.05.2008 13:45:07]

#

Esimerkki uloskirjaudu.php , mutta se ei kuitenkaan uudelleenohjaa minnekkään.


header("Refresh: 0; url=frontpage.html");
session_unregister('sessio_kayttajatunnus');
session_destroy();
session_write_close();


Toimii kyllä jos korvaan header -funktion linkillä, joka ohjaa etusivulle ihmeellistä.. Lisäksi huomasin jos napautan kirjaudu ulos linkkiä kahdesti, niin uloskirjautuminen onnistuu?

Ilmeisesti toi include 'uloskirjaudu.php'; pitäisi korvata jollain muulla kuin include käskyllä?

Kray [03.06.2008 14:43:31]

#

Öh... Siis haluat että se tuhoaa sessiot ja ohjaa sitten etusivulle? Laita ensin nuo sessiojutut ja sitten header('Location: [sivu]');

Toshiba [04.06.2008 12:42:15]

#

Sitäkin tuli kokeiltua, mutta tuloksetta.

tsuriga [06.06.2008 22:22:58]

#

<?php

$_SESSION = array();
session_destroy();

$domain = $_SERVER[ 'SERVER_NAME' ];
header( 'Location: http://' . $domain );
?>

Frameworkeilla taas helpompaa.

Toshiba [23.06.2008 16:01:53]

#

Eli tosiaan nämä ohjauksen näyttävät toimivan
ob_start(); ob_end_flush(); avulla, mutta ilmeisesti sessiot tuhoutuu samalla? Eli olisiko järkevämpää tehdä joku funktio ihan sivun alkuun ja sinne tehdä kaikki uudellenohjaukset vai mitenkä? Ei nyt ihan vielä mennyt jakeluun tämä homma :)

Vastaus

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

Tietoa sivustosta