Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Istunto-id

Triton [17.02.2008 19:59:02]

#

Nyt tipahdin ihan kärryiltä, eli mikä on istunto-id miten se luodaan, ja käytetään? Ja miten se tulisi ottaa huomioon palveluun kirjautumisessa? Nyt tarvitse todellisen istunto -valistuksen...

Antti Laaksonen [17.02.2008 20:41:04]

#

Kun nettisivustolle saapuu uusi käyttäjä, sille muodostetaan istuntotunnus (esim. satunnainen numerosarja), jonka avulla käyttäjä voidaan tunnistaa sivunlatausten välillä. Yleensä istuntotunnus lähetetään evästeenä, joten käyttäjä tuskin huomaa koko asiaa.

Sitten jos esim. käyttäjän istuntotunnus on 123 ja hän kirjautuu sisään sivustolle, palvelimen tiedostoon tai tietokantaan voidaan merkitä, että istuntotunnusta 123 vastaava käyttäjä on kirjautuneena. Näin tiedetään, voiko käyttäjän esim. päästää näkemään salaisen sivun tietoja.

PHP:ssä on valmis istuntojärjestelmä (ks. PHP-opas), jota käyttämällä ei tarvitse käsitellä itse istuntotunnuksia.

Triton [18.02.2008 12:44:18]

#

Tosta oppaasta en saa aivan sitä vastausta mitä hain... Siis täytyykö itse luoda jokin systeemi joka tekee sen istunto -id:een vai luoko PHP sen automaattisesti?

Kun olen lukenut aiheesta ympäri nettiä, niin ymmärsin, että se tapahtuisi näin:

<?php

$hash = md5(123);

setcookie("id",$hash, time() + 60 * 60)
$id = $_COOKIE['id'];

session_start();
$_SESSION['istuntomuuttuja'] = $id;

?>

Toi ei vaan tunnu kovin loogiselta...

kayttaja-2791 [18.02.2008 13:26:56]

#

Triton kirjoitti:

Tosta oppaasta en saa aivan sitä vastausta mitä hain... Siis täytyykö itse luoda jokin systeemi joka tekee sen istunto -id:een vai luoko PHP sen automaattisesti?

PHP luo sen automaattisesti. Sinun tarvitsee vain aloittaa istunto session_start:illa, ja jatkossa sessio tunnistetaan automaattisesti. Oletuksena käytetään keksiä (jota siis itse ei tarvitse käpistellä), mutta jos sen käyttö ei onnistu käytetään osoiterivin mukana kuljetettavaa GET-metodin muuttujaa.

Ja jos haluat välttämättä katsoa tai käpistellä sitä istuntomuuttujaa, niin sen löydät session_id -funktiolla.

Vastaus

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

Tietoa sivustosta