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:

html<?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:

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

Inawezekana kufunga maandishi ya ukurasa wowote kabisa kwa mtumiaji asiyejithibitisha:

html<?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:

html<!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>
Задание 1

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.

Задание 2

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.

Задание 3

Rekebisha msimbo wako ili wakati wa uthibitishaji wa mafanikio kwenye kikao pia kiandikwe jina la mtumiaji.

Задание 4

Fanya ili wakati wa kuingia kwenye ukurasa wowote wa tovuti, mtumiaji aliyejithibitisha aone jina lake la mtumiaji, na asiyejithibitisha - kiungo kwenye ukurasa wa uthibitishaji.