Autorizimi përmes sesionit në PHP
Autorizimi ynë duhet të funksionojë kështu: përdoruesi,
që dëshiron të autorizohet në faqe, hyn
në faqen login.php, vendos të dhënat e sakta
të hyrjes dhe fjalëkalimin dhe pastaj lëviz nëpër faqet
e sajtit tashmë i autorizuar.
Që faqet e tjera të sajtit të dinë për faktin që përdoruesi ynë është i autorizuar, ne duhet të ruajmë në sesion një shënim për këtë.
Për momentin autorizimi ynë nuk është plotësisht funksional, pasi sesionin ende nuk e kemi lidhur dhe faqet e tjera të sajtit nuk mund të kuptojnë nëse përdoruesi është i autorizuar apo jo.
Do ta ruajmë shënimin për autorizimin në variablin
e sesionit $_SESSION['auth'] - nëse aty
është shkruar true, atëherë përdoruesi është i autorizuar,
ndërsa nëse null - atëherë nuk është i autorizuar.
Le të bëjmë ndryshimin përkatës në kodin tonë:
<?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 {
// ka futur gabim emrin ose fjalëkalimin
}
}
?>
Tani në çdo faqe të sajtit ne mund të kontrollojmë, nëse përdoruesi është i autorizuar apo jo, në këtë mënyrë:
<?php
if (!empty($_SESSION['auth'])) {
}
?>
Mund të mbyllni tekstin e një faqeje tërësisht për përdoruesit e paautorizuar:
<?php if (!empty($_SESSION['auth'])): ?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>tekst vetëm për përdoruesit e autorizuar</p>
</body>
</html>
<?php else: ?>
<p>ju lutem, autorizohuni</p>
<?php endif; ?>
Mund të mbyllni vetëm një pjesë të faqes:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>tekst për çdo përdorues</p>
<?php
if (!empty($_SESSION['auth'])) {
echo 'tekst vetëm për përdoruesit e autorizuar';
}
?>
<p>tekst për çdo përdorues</p>
</body>
</html>
Le të themi që në sajtin tonë, përveç faqes login.php,
ka edhe faqet 1.php, 2.php
dhe 3.php. Bëni që këtyre
faqeve të mund t'u qasen vetëm përdoruesit e autorizuar.
Le të themi që në sajtin tonë ka edhe faqen
index.php. Bëni që një pjesë
e kësaj faqeje të jetë e hapur për të gjithë përdoruesit,
ndërsa një pjesë - vetëm për të autorizuarit.
Modifikoni kodin tuaj në mënyrë që pas autorizimit të suksesshëm në sesion të shkruhet edhe emri i përdoruesit.
Bëni që kur hyni në çdo faqe të sajtit, përdoruesi i autorizuar të shohë emrin e tij, ndërsa i paautorizuar - një lidhje për në faqen e autorizimit.