Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Hiomista sisäänkirjautumiseen

sittura [01.01.2007 16:03:39]

#

Eli tarvitsisin pientä viilausta sisäänkirjautumisen kanssa. Itse saan vain sotkua aikaiseksi kun yritän säätää noita, joten käännyn teidän puoleen.
Ensinnäkin pitäisi saada erilliset sivut joissa olisi esim. "Väärä tunnus tai salasana" ja "Et ole kirjautunut sisään" -ilmoitukset. Nyt tulee vain "Kirjauduit ulos" (eli logout.php) molemmissa tapauksissa.
Sitten pitäisi saada erillinen lista tunnuksista (joita vain minä voin lisätä ja poistaa) joko erilliseen tiedostoon (esim. tunnukset.txt) tai jotenkin ujutettua tuohon koodiin. Ja mitään erillistä admin-aluetta tai rekisteröintiä ei siis tarvita.

lomake.php (sivu jolta kirjaudutaan):

<form method="post" action="index.php">
Tunnus<br />
<input type="text" name="tunnus" /><br />
Salasana<br />
<input type="password" name="salasana" /><br />
<input type="submit" value="Kirjaudu" />
</form>
// login.php (jokaisen salatun sivun alkuun)
<?php
$tunnus   = $_POST['tunnus'];
$salasana = $_POST['salasana'];

   session_start();
   $_SESSION["tunnus"]   = "$tunnus";
   $_SESSION["salasana"] = "$salasana";
?>
// index.php (jokainen salattu sivu tähän tapaan)
<?php include_once("login.php");?>
<?php
session_start();
$tunnus   = $_SESSION["tunnus"];
$salasana = $_SESSION["salasana"];
if($salasana == salasana && $tunnus == tunnus){
?>
<p><b>Tervetuloa, <?php echo "$tunnus";?>!</b></p>
<p>muu salatun sivun sisältö tähän</p>
<?php
} else {
header("Location: logout.php");
}
?>
// logout.php
<?php
session_start();
unset($_SESSION["tunnus"]);
unset($_SESSION["salasana"]);
?>
<p>Kirjauduit ulos. Jos yritit äsken kirjautua sisään, tunnuksesi tai salasanasi oli todennäköisesti väärin.</p>

Antti Laaksonen [01.01.2007 16:35:01]

#

Tässä tulee pikku esimerkki kirjautumisen teosta:

<!-- lomake.php -->

<form action="sisaan.php" method="post">
<p>Tunnus: <input type="text" name="tunnus"></p>
<p>Salasana: <input type="password" name="ss"></p>
<p><input type="submit" value="Lähetä"></p>
</form>
<?php
// sisaan.php

// käyttäjät ja salasanat
$tiedot["pepe"] = "aaa";
$tiedot["repe"] = "bbb";
$tiedot["sepe"] = "ccc";

if ($tiedot[$_POST['tunnus']] == "" ||
    $tiedot[$_POST['tunnus']] <> $_POST['ss']) {
    die("Tunnus tai salasana on väärin!");
} else {
    session_start();
    // asetetaan istuntomuuttuja
    $_SESSION['tunnus'] = $_POST['tunnus'];
    // siirrytään etusivulle
    header("Location: index.php");
}
?>
<?php
// index.php

session_start();
// kirjautumisen tarkistus
if (isset($_SESSION['tunnus'])) {
    echo "<p>Olet kirjautunut sisään tunnuksella ";
    echo "<b>" . $_SESSION['tunnus'] . "</b>.</p>";
    echo "<p><a href=\"ulos.php\">Kirjaudu ulos</a></p>";
} else {
    echo "<p>Et ole kirjautunut sisään.</p>";
    echo "<p><a href=\"lomake.php\">Kirjaudu sisään</a></p>";}
?>
<?php
// ulos.php

session_start();
// poistetaan istuntomuuttuja
unset($_SESSION['tunnus']);
// siirrytään etusivulle
header("Location: index.php");
?>

Tässä käyttäjien tiedot on tallennettu tiedostoon sisaan.php taulukkoon $tiedot. Kun jollain sivulla pitää tarkistaa, onko käyttäjä kirjautunut, pitää katsoa, onko istuntomuuttujaa tunnus olemassa. Lisää tietoa istuntojen käytöstä on oppaassa.

sittura [01.01.2007 16:53:26]

#

Paljon kiitoksia, juuri sellainen mitä ajattelinkin! :)

Vastaus

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

Tietoa sivustosta