Uthibitishaji kwa kutumia Vikao kwenye PHP
Uthibitishaji wetu unapaswa kufanya kazi hivi: mtumiaji,
ambaye anataka kujithibitisha kwenye tovuti, anaingia
kwenye ukurasa login.php, anaingiza
jina la mtumiaji na nenosiri sahihi na kisha anapita kwenye kurasa
za tovuti akiwa amethibitishwa.
Ili kurasa zingine za tovuti zijue kuhusu kwamba mtumiaji wetu amethibitishwa, tunapaswa kuhifadhi alama ya hilo kwenye kikao.
Kwa sasa uthibitishaji wetu haujafanya kazi kabisa, kwa sababu bado hatujaweka kikao na kurasa zingine za tovuti haziwezi kuelewa, ikiwa mtumiaji amethibitishwa au la.
Tutahifadhi alama ya uthibitishaji kwenye kutofautisha
ya kikao $_SESSION['auth'] - ikiwa imeandikwa
true, basi mtumiaji amethibitishwa,
na ikiwa null - basi hajathibitishwa.
Wacha tuingize marekebisho yanayofaa kwenye msimbo wetu:
<?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 {
// ameingiza jina la mtumiaji au nenosiri vibaya
}
}
?>
Sasa kwenye ukurasa wowote wa tovuti tunaweza kuangalia, kama mtumiaji amethibitishwa au la, kwa njia hii:
<?php
if (!empty($_SESSION['auth'])) {
}
?>
Inawezekana kufunga maandishi ya ukurasa wowote kabisa kwa mtumiaji asiyejithibitisha:
<?php if (!empty($_SESSION['auth'])): ?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>maandishi kwa mtumiaji aliyejithibitisha tu</p>
</body>
</html>
<?php else: ?>
<p>tafadhali jithibitisha</p>
<?php endif; ?>
Inawezekana kufunga sehemu tu ya ukurasa:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>maandishi kwa mtumiaji yeyote</p>
<?php
if (!empty($_SESSION['auth'])) {
echo 'maandishi kwa mtumiaji aliyejithibitisha tu';
}
?>
<p>maandishi kwa mtumiaji yeyote</p>
</body>
</html>
Acha kwenye tovuti yetu, badala ya ukurasa login.php,
kuwe na kurasa 1.php, 2.php
na 3.php. Fanya ili kurasa hizi
ziweze kufikiwa na mtumiaji aliyejithibitisha tu.
Acha kwenye tovuti yetu kuwe na ukurasa wa ziada
index.php. Fanya ili sehemu
ya ukurasa huu iwe wazi kwa watumiaji wote,
na sehemu - kwa wale waliojithibitisha tu.
Rekebisha msimbo wako ili wakati wa uthibitishaji wa mafanikio kwenye kikao pia kiandikwe jina la mtumiaji.
Fanya ili wakati wa kuingia kwenye ukurasa wowote wa tovuti, mtumiaji aliyejithibitisha aone jina lake la mtumiaji, na asiyejithibitisha - kiungo kwenye ukurasa wa uthibitishaji.