⊗ppPmAuSs 415 of 447 menu

Autenticação via sessão em PHP

Nossa autenticação deve funcionar da seguinte forma: o usuário, que deseja se autenticar no site, acessa a página login.php, insere o login e senha corretos e em seguida navega pelas páginas do site já estando autenticado.

Para que outras páginas do site saibam que nosso usuário está autenticado, devemos armazenar na sessão uma marcação sobre isso.

No momento, nossa autenticação não está totalmente funcional, pois ainda não conectamos a sessão e outras páginas do site não conseguem saber se o usuário está autenticado ou não.

Vamos armazenar a marcação de autenticação na variável de sessão $_SESSION['auth'] - se estiver escrito true, então o usuário está autenticado, e se for null - então não está autenticado.

Vamos fazer a correção correspondente em nosso código:

<?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 { // login ou senha incorretos } } ?>

Agora, em qualquer página do site, podemos verificar se o usuário está autenticado ou não, desta forma:

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

Podemos fechar o texto de alguma página inteiramente para o usuário não autenticado:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>texto apenas para usuário autenticado</p> </body> </html> <?php else: ?> <p>por favor, faça login</p> <?php endif; ?>

Podemos fechar apenas parte da página:

<!DOCTYPE html> <html> <head> </head> <body> <p>texto para qualquer usuário</p> <?php if (!empty($_SESSION['auth'])) { echo 'texto apenas para usuário autenticado'; } ?> <p>texto para qualquer usuário</p> </body> </html>

Suponha que em nosso site, além da página login.php, haja também as páginas 1.php, 2.php e 3.php. Faça com que apenas usuários autenticados possam acessar essas páginas.

Suponha que em nosso site haja também a página index.php. Faça com que parte desta página esteja aberta para todos os usuários, e parte - apenas para os autenticados.

Modifique seu código para que, após uma autenticação bem-sucedida, o login do usuário também seja armazenado na sessão.

Faça com que, ao acessar qualquer página do site, o usuário autenticado veja seu login, e o não autenticado - um link para a página de autenticação.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar