Hei,
Olen tässä miettinyt suraavnalaista:
web-sivut ovat php:llä toimivat ja haluaisin niille toiminnon jolla:
Ladattaessa ensimmäisen kerran index.php tapahtuisi uudelleenohjaus toiselle sivulle joka on samalla palvelimella samassa hakemistossa. Ja jos tämän jälkeen haluaa palata index-sivulle ei tapahtuisi uudelleenohjausta minnekkään.
Olen yrittänyt seuraavan tapaista:
index.php
<? session_start(); if($_SESSION['redir']=="false") { $_SESSION['redir']=="true"; header("Location: uusi.php"); exit(); } ?>
- tosin tuossalocation kohdassa pitäisi olla absoluuttinen url
uusi.php
<?php print 'muuttuja: '; session_start(); print $_SESSION['redir']; ?>
Ongelmana:
SESSION-muuttujat tyhjenevät header-funktion kutsulla.
- Terv, Nick
ps. Kiitos vastanneille
Pikku typo tuolla index.php-tiedostossa, eli tuo yksi ylimääräinen yhtäsuuruusmerkki tuossa "true"-merkkijonon tallennuksessa istuntomuuttujaan.
Niin ja nyt huomasin että, tuossa on vielä mätää, koska tuo redir on boolean arvon omaava muuttuja, tehdään siihen arvon sijoitus ilman lainausmerkkejä ja samaten tuossa ehtolauseessa tarkastellaan ehtoa ilman lainausmerkkejä
<?php if($_SESSION['redir']==false)?>
ja
<?php $_SESSION['redir']=true;)?>
Tämä oli aika ihmeellinen pähkinä kun ihmettelin pitkään miksi sessio-muuttujat tyhjenevät uudelleenohjauksessa, tosin jos esim <a hfer>-tägissä on tuo uudelleen ohjaus upoettuna php-skriptillä niin session-muuttujien arvot säilyvät.
<?php session_start(); if($_SESSION['redir']==false) { $_SESSION['redir']=true; header("Location: uusi.php"); exit(); } ?>
uusi.php
<?php session_start(); print 'muuttuja: '. $_SESSION['redir']; ?>
- Nick
Aihe on jo aika vanha, joten et voi enää vastata siihen.