Tredun ohjelmistokehittäjien kurssimateriaaleja
Evästeet ovat istunnon ohella yksi tapa, millä henkilökohtaista dataa saa tallennettua verkkosivulta, jos ei käytetä tietokantoja.
Käy ensimmäisenä lukemassa linkitetty artikkeli What are cookies?
Luo Word-dokumentti, jossa vastaat seuraaviin kysymyksiin pääosin artikkelin pohjalta. Palauta dokumentti Teamsiin kansioon kanavalla Sähköinen asiakaspalvelu - php.
Harjoitellaan, miten käytetään yksinkertaista evästettä.
<form method="post">
<label for="cookie">Give the cookie some information</label><br />
<input type="text" name="cookie" value="" /><br />
<input type="submit" value="Save cookie" /><br />
</form>
<form method="post">
<input type="submit" name="remove" value="Remove cookie" />
</form>
Tämän jälkeen meidän täytyy lisätä koodi, joka käsittelee lomakkeet:
<?php
// lomakkeen käsittely
if (isset($_POST["cookie"])) {
// yritetään tallentaa
setcookie("our_cookie",$_POST["cookie"], time() +1800);
}
// jos lähetetään tyhjennä:
if (isset($_POST["remove"])) {
setcookie("our_cookie","", time() -1800);
}
?>
Esimerkissä time() +1800 merkitsee sitä, kuinka pitkään eväste on voimassa sekunteina sen asettamishetkestä (tässä tapauksessa se on puoli tuntia, sillä 1800 sekuntia on puoli tuntia). Kun eväste poistetaan, sen kestokin poistetaan.
<?php
// lomakkeenkäsittely
// apumuuttuja - ollaanko kirjauduttu
$ok = false; // oletuksena ei kirjauduttu
// -- TÄHÄN LOMAKKEENKÄSITTELIJÄ --
// 1. jos ei olla kirjauduttu
if ($ok == false) {
?>
<form method="post">
<label for="password">Syötä salasana</label><br />
<input type="password" name="password" /><br />
<input type="submit" value="Kirjaudu" />
</form>
<?php
}
else {
// 2. jos ollaan kirjauduttu niin
?>
<form method="post">
<input type="submit" name="logoff" value="Kirjaudu ulos" />
</form>
<?php
}
?>
if (isset($_COOKIE["ok"])) {
$ok = $_COOKIE["ok"];
}
else if (isset($_POST["password"])) {
if ($_POST["password"] == "salasana") {
// käyttäjä antoi oikean salasanan
setcookie("ok", true, time() +1800);
echo "Tunnus oikein!";
$ok = true;
}
else {
// käyttäjä antoi väärän salasanan
echo "Tunnus väärin :( ";
}
}
Sitten uloskirjautuminen.
// jos painettiin logoff-submit:
if (isset($_POST["logoff"])) {
setcookie("ok","", time() -1800);
$ok = false;
}