Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Kirjautuminen sessioilla (monta käyttäjää)

d-hunter [10.06.2006 12:59:47]

#

Mahdollistaa materiaalin suojauksen salasanalla. Mahdollisuus lisätä useampi käyttäjä. Demoa osoitteessa http://mbnet.fi/d-hunter/kirjautuminen.php

<?php
/// "Kirjautuminen sessioilla" by d-hunter ///

//Sessiot käyntiin
session_start();

//Tunnukset ja salasanat(md5) taulukkoon
$tunnukset=array(
"tunnus1" => "8efd6b1b8a4266d19101ebf5a346a42c", //tunnus1 , passu
"tunnus2" => "6b694e8cf87fc88d392ed8ebf81d9385", //tunnus2 , sala
"ja_niin" => "edelleen", //ja_niin , ????????
);

//Uloskirjautuminen. Poistetaan sessiot ja näytetään onnistumisviesti.
if($_GET['log']=="out"){
        unset($_SESSION["tunnus"]);
        unset($_SESSION["salasana"]);
        echo"Kirjautuminen ulos onnistui.";
        }

//Lomakkeen käsittely. Tarkistetaan löytyykö taulukosta vastaavaa kohtaa. Tarvittaessa tulostetaan virheilmoitus.
//Jos löytyi, tallennetaan kirjautumisen tiedot sessioihin.
if(isset($_POST['tunnus'])&&isset($_POST['salasana'])){
        if(md5($_POST['salasana'])==$tunnukset[$_POST['tunnus']]){
                $_SESSION["tunnus"]=$_POST['tunnus'];
                $_SESSION["salasana"]=$_POST['salasana'];
                }
        else echo"Tunnus tai salasana väärin";
        }

//Jos sessioissa olevien tietojen mukaista kohtaa ei löydy taulukosta, tulostetaan kirjautumislomake.
if(md5($_SESSION['salasana'])!=$tunnukset[$_SESSION['tunnus']]){
        echo"<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">
        Tunnus: <input type=\"text\" name=\"tunnus\" /><br />
        Salasana: <input type=\"password\" name=\"salasana\" /><br />
        <input type=\"submit\" value=\"Kirjaudu\" /></form>";
        }

//Muuten muuten tulostetaan tervehdys ja uloskirjautumiseen tarvittava linkki.
else{
        echo"Kirjautuminen onnistui. Tervetuloa ".$_SESSION["tunnus"]."<br />
        <a href=\"".$_SERVER['PHP_SELF']."?log=out\">Kirjaudu ulos</a>";
        }
?>

Vastaus

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

Tietoa sivustosta