- Főoldal
/
- Példák
/
- Webfejlesztés
/
- PHP
Bejelentkezés PHP és Session segítségével
Ebben a példában készítünk egy oldalt ahol végrehajthatunk egy bejelentkezést.
Ehhez szükségünk van HTML-re, PHP-ra és esetleg egy kevés CSS-re, hogy nézhető formában tegyük ki az elemeket.
A sikeres bejelentkezést Session-ben tároljuk.
Az elképzelés a következő:
- - ellenőrizzük a Session alapján, hogy be vagyunk-e jelentkezve
- - ha a felhasználó küldött adatokat, ellenőrizzük, hogy azok megfelelőek vagy nem
- - ha az adatok megfelelőek voltak, kiírjuk, hogy sikeresen bejelentkezett és elmentjük a Session-ben
- - ha nem jöttek adatok, vagy hibás adatok jöttek, kitesszük a formot az újra próbálkozáshoz
1. Hozzunk létre 2 fájlt: "index.php" és "functions.php".
2. Tegyük bele a <body> és a </body> tagok közé az alábbi formot az "index.php"-ban:
<form action="" method="POST" class="form_login margin-center">
<div>
<label>Felhasználó név</label>
<input type="text" name="username" value="" />
</div>
<div>
<label>Jelszó</label>
<input type="password" name="password" value="" />
</div>
<div class="buttons">
<input type="submit" name="submit" value="Bejelentkezés" />
</div>
</form>
Ennek a formnak a segítségével ha beírunk bármit a megadott mezőkbe és megnyomjuk a "Bejelentkezés" gombot, akkor azt elküldjük az oldalnak, és így megpróbálhatunk bejelentkezni.
3. Az adatok elküldése után most szükségünk van arra, hogy ellenőrizzük azokat és végrehajtsuk a bejelentkezést.
Az ellenőrzést a példa elején leírt lista alapján a form kirakása előtt kell ellenőrizni, az alábbi módon:
A "functions.php"-ba írunk 3 függvényt
<?php
function try_to_login()
{
// Ha bejelentkezhetünk
if( can_try_login() == FALSE )
{
return;
}
// Ha a felhasználó név vagy a jelszó nem talál , hiba üzenet mutatása
if( check_login() == FALSE )
{
echo "Helytelen adatok";
return;
}
// Ha minden tökéletes, akkor bejelentkezés, és üzenet mutatása
echo "Sikeres bejelentkezés";
$_SESSION["is_logged_in"] = TRUE;
}
function can_try_login()
{
// Ha üres a $_POST akkor nincs mit csinálni
if( empty( $_POST ) )
{
return FALSE;
}
// Ha nem érkezett username akkor nincs mit csinálni
if( ! isset( $_POST["username"] ) )
{
return FALSE;
}
// Ha nem érkezett jelszó akkor nincs mit csinálni
if( ! isset( $_POST["password"] ) )
{
return FALSE;
}
// Ha minden OK
return TRUE;
}
function check_login()
{
$username = "teszt";
$password = "123456";
// Ha nem talál a felhasználó név, hiba
if( $_POST["username"] != $username )
{
return FALSE;
}
// Ha nem talál a jelszó, hiba
if( $_POST["password"] != $password )
{
return FALSE;
}
// Minden ok, bejelentkezhet
return TRUE;
}
?>
Az "index.php" fájl legelején elindítjuk a Session-t és betöltjük a "functions.php" fájlt.
Ezért illeszük az alábbi kódot a fájl elejére:
<?php
// Elindítjuk a Session-t
session_start();
include "functions.php";
?>
A kód beillesztése után, már csak meg kell hívjuk azt a függvényt amelyik végrehajtja számunkra az ellenőrzést és a bejelentkezést.
A form előtt hívjuk meg a függvényt, az alábbi módon:
<?php
// Megpróbálunk bejelentkezni
try_to_login();
?>
<form action="" method="POST" class="form_login margin-center">
<div>
<label>Felhasználó név</label>
<input type="text" name="username" value="" />
</div>
<div>
<label>Jelszó</label>
<input type="password" name="password" value="" />
</div>
<div class="buttons">
<input type="submit" name="submit" value="Bejelentkezés" />
</div>
</form>
A fenti kód, az adatok elküldése után az alábbi 2 üzenet közül az egyiket fogjuk kapni
- - Minden mező kitöltése kötelező!
- - Sikeresen bejelentkeztél!
A "Sikeresen bejelentkeztél!" üzenet esetében a Session-ben beállítódik, hogy sikeres volt a bejelentkezés.
A "Sikeresen bejelentkeztél!" üzenethez használjuk a következő adatokat:
Felhasználó név: teszt
Jelszó: 123456
4. Ahhoz, hogy a bejelentkezés után a form többet ne jelenjen meg ellenőriznünk kell, hogy a Session-ben be van állítva a megfelelő érték vagy nincs. Ezt megtehtjük az alábbi módon:
<?php
// Ha nem létezik a Sessionben érték, beállítjuk, hogy nem vagyunk bejelentkezve
if( ! isset( $_SESSION["is_logged_in"] ) )
{
$_SESSION["is_logged_in"] = FALSE;
}
// Megpróbálunk bejelentkezni
try_to_login();
// Ellenőrizzük, hogy be vagyunk-e jelentkezve vagy nem, ha nem megjelenítjük a formot
if( $_SESSION["is_logged_in"] == FALSE )
{
?>
<form action="" method="POST" class="form_login margin-center">
<div>
<label>Felhasználó név</label>
<input type="text" name="username" value="" />
</div>
<div>
<label>Jelszó</label>
<input type="password" name="password" value="" />
</div>
<div class="buttons">
<input type="submit" name="submit" value="Bejelentkezés" />
</div>
</form>
<?php
}
else
{
?>
<p>
Be vagy jelentkezve, kilépéshez töröld a $_SESSION["is_logged_in"] értékét
vagy állítsd FALSE-ra.
</p>
<?php
}
?>
A kijelentkezéshez, csak egyszerűen törölni vagy "FALSE"-ra kell állítani az "is_logged_in" értékét a Session-ben.
A példa és a benne szereplő kódok letölthetőek a jobb oldalon található link segítségével
Részletek
- Megtekintve: 3518
- Haszontalannak jelölve: 0
- Hasznosnak jelölve: 1