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.
Headerin avulla ohjauksen voi yrittää korvata meta-tagilla ohjaamisella:
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:
Tuo meta-tagi toimi heti. Suuret kiitokset mikaelh ja Pekka, ette arvaakaan kauanko taoin päätä seinään!
Aihe on jo aika vanha, joten et voi enää vastata siihen.