Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Uudelleenohjaus

Nick [25.11.2007 06:41:12]

#

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

Olga [25.11.2007 17:01:33]

#

Pikku typo tuolla index.php-tiedostossa, eli tuo yksi ylimääräinen yhtäsuuruusmerkki tuossa "true"-merkkijonon tallennuksessa istuntomuuttujaan.

Nick [27.11.2007 09:10:14]

#

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

Vastaus

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

Tietoa sivustosta