Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Setcookien ja headerin käyttö

tatkuu [10.06.2004 01:13:33]

#

Törmäsin keksin asennuksessa ylitsepääsemättömään ongelmaan ja olen kiitollinen kaikesta avusta.

Tarkoitus on login.php -sivulla tarkistaa tietokannasta tunnus ja salasana ja asettaa sitten keksi ja heti sen jälkeen ohjata selain headerin avulla eteenpäin sivulle kurssi.php. Tuon sivun alussa sitten tarkistetaan, onko keksi asetettu, mutta eipä ole keksiä löytynyt. Mielenkiintoista mielestäni on, että jos poistan login.php -sivulta headerin, niin jo toimii. Keksi on paikallaan. Miksi tuo setcookien jälkeinen header "haittaa" setcookien toimintaa? Tässä pätkä koodia kummaltakin sivulta:

<?php
//login.php
If (isset ($_POST['login'])) //Kun login-nappia painettu
{
   ...tietokantayhteys jne...

   //jos tunnus ja salasana oikein, asetetaan keksi
   setcookie("cookie", "opettaja", time()+60*30, "/");
   header ("Location: kurssi.php?kurssi=$kurssinimi");

}
?>
<html>
<head><title>Kirjautuminen</title></head>
<body>

...lomake ja Login-nappi, joka lähettää tiedot tiedostolle itselleen.

Koodia toisen sivun alusta:

<?php
If $_COOKIE['cookie']=="opettaja"
{
   echo "Tervetuloa sivuille!";
}
else
{
   header("Location: login.php");
}

...jatkuu "salatulla" sivulla.

mikaelh [10.06.2004 09:14:43]

#

Headerin avulla ohjauksen voi yrittää korvata meta-tagilla ohjaamisella:

<?php
setcookie("cookie", "opettaja", time()+60*30, "/");
// header ("Location: kurssi.php?kurssi=$kurssinimi");
echo("<html>\n<head>\n");
echo("<meta http-equiv=\"Refresh\" content=\"0;url=kurssi.php?kurssi=$kurssinimi\">\n");
echo("</head>\n</html>");
?>

pistemies [10.06.2004 10:09:22]

#

Minä olen hoitanut tuon tähän tapaan:

<?php
          if ($nimi==$str[0] && $kirj==$str[1])
          {
          session_register("nimi");
          $_SESSION["nimi"]="$nimi";
          $_SESSION["salasana"]="$salasana";
          setcookie("evaste",$_POST['nimi'],time()+60*30); // luodaan eväste 30 minuutiksi

         header("location:index.php");
          }
?>

Ja tuon tarkistuksen tähän tapaan:

<?php
if(isset($_COOKIE["evaste"]))
{
echo "Tervetuloa sivuille!";
}
else
{
header("Location: login.php");
}
?>

tatkuu [10.06.2004 20:47:42]

#

Tuo meta-tagi toimi heti. Suuret kiitokset mikaelh ja Pekka, ette arvaakaan kauanko taoin päätä seinään!

Vastaus

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

Tietoa sivustosta