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...
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.
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...
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.