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ë:

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 {
      // 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ë:

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

Mund të mbyllni tekstin e një faqeje tërësisht për përdoruesit e paautorizuar:

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

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

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.

Задание 2

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.

Задание 3

Modifikoni kodin tuaj në mënyrë që pas autorizimit të suksesshëm në sesion të shkruhet edhe emri i përdoruesit.

Задание 4

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.