⊗ppPmAuSs 415 of 447 menu

Kirjautuminen session avulla PHP:llä

Kirjautumisemme pitäisi toimia seuraavasti: käyttäjä, joka haluaa kirjautua sivustolle, menee sivulle login.php, syöttää oikeat käyttäjätunnuksen ja salasanan ja sitten liikkuu sivuston sivuilla jo kirjautuneena.

Jotta muut sivuston sivut tietäisivät, että käyttäjämme on kirjautunut, meidän täytyy tallentaa sessioon merkintä siitä.

Toistaiseksi kirjautumisemme ei ole aivan toimiva, sillä sessiota emme ole vielä ottaneet käyttöön ja muut sivuston sivut eivät voi tunnistaa, onko käyttäjä kirjautunut vai ei.

Tallennamme kirjautumismerkinnän sessio-muuttujaan $_SESSION['auth'] - jos sinne on kirjoitettu true, niin käyttäjä on kirjautunut, ja jos null - niin ei ole kirjautunut.

Tehdään vastaava muutos koodiimme:

<?php session_start(); if (!empty($_POST['password']) and !empty($_POST['login'])) { $login = $_POST['login']; $password = $_POST['password']; $query = "SELECT * FROM users WHERE login='$login' AND password='$password'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $_SESSION['auth'] = true; } else { // väärä käyttäjätunnus tai salasana } } ?>

Nyt missä tahansa sivuston sivussa voimme tarkistaa, onko käyttäjä kirjautunut vai ei, seuraavalla tavalla:

<?php if (!empty($_SESSION['auth'])) { } ?>

Voit suojata jonkin sivun tekstin kokonaan kirjautumattomilta käyttäjiltä:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>teksti vain kirjautuneille käyttäjille</p> </body> </html> <?php else: ?> <p>ole hyvä ja kirjaudu sisään</p> <?php endif; ?>

Voit suojata vain osan sivusta:

<!DOCTYPE html> <html> <head> </head> <body> <p>teksti kaikille käyttäjille</p> <?php if (!empty($_SESSION['auth'])) { echo 'teksti vain kirjautuneille käyttäjille'; } ?> <p>teksti kaikille käyttäjille</p> </body> </html>

Oletetaan, että sivustollamme, sivun login.php lisäksi, on myös sivut 1.php, 2.php ja 3.php. Tee niin, että näille sivuille pääsevät käsiksi vain kirjautuneet käyttäjät.

Oletetaan, että sivustollamme on myös sivu index.php. Tee niin, että osa tästä sivusta on avoinna kaikille käyttäjille, ja osa - vain kirjautuneille.

Muokkaa koodiasi niin, että onnistuneen kirjautumisen yhteydessä sessioon tallennetaan myös käyttäjän käyttäjätunnus.

Tee niin, että kun käyttäjä menee mille tahansa sivuston sivulle, kirjautunut käyttäjä näkee oman käyttäjätunnuksensa, ja kirjautumaton - linkin kirjautumissivulle.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää