Programação

quarta-feira, 14 de dezembro de 2022

SESSIONS PHP

SESSÕES


As SESSION's permitem guardar dados no servidor web que serão usados nas diferentes páginas do website.

Exemplo:  
          -  Para controlo de acesso a determinadas páginas web que um utilizador só pode ter acesso no caso de ter efetuado o login
           - controlo e aviso no caso dos dados de login de utilizador estejam incorretos;

Em cada sessão criada é gerada uma Cookie "PHPSESSID" que guarda o id da session, ou seja, ao nome do ficheiro guardado no servidor web, e este contém as variáveis de sessão ($_SESSION) que foram criadas.


EXERCÍCIO COM SESSÕES





Elaborar:
1- criar formulário de login
2- crie BDLogin e tabela utilizadores
3- criar script valida.php 
4- página web principal_listar.php



1. Elaborar um FORMULÁRIO DE LOGIN   Ficheiro index.php

 











Código do formulário - retângulo vermelho

Temos que :  (caixas a azul)

1 - Iniciar sessão  (Antes do código HTML)

2 - poderá criar tag <div class="warning"> (CSS)  ou <h5 class="text-danger">  para texto aparecer a cor vermelha -  mensagem de erro "login ou senha inválido" definida através da variável  $_SESSION['loginErro'] sendo depois apagado o valor da variável de sessão através do unset().
 


 
Caso o utilizador não exista na BD é redirecionado novamente para a página de login "index.php" e apresenta o erro a vermelho.



Quando o formulário é submetido chama o Ficheiro "valida.php" através do atributo action

  

Resumindo, este ficheiro faz:
- Inicia a sessão
- Faz a conexão à BD
- Verifica a existência das variáveis $_POST   
 


- no caso dos dados do utilizador inseridos existam na tabela da BD (username e senha), é criada a variável de sessão $_SESSION['user'] com o nome do utilizador e é reencaminhado para a página web "principal.php".

caso contrário (os dados inseridos não existem na tabela da BD então é criada uma variável de sessão $_SESSION["loginErro"] com uma frase de aviso "login ou senha inválido" e é reencaminhado para a página do formulário de login (index.php)

Ficheiro principal.php 


Caso não existe a variável de sessão $_SESSION[''utilizador'], significa que o utilizador não efetuou o loginpelo que não pode visualizar a página "principal.php", sendo sendo criada  uma variável de sessão $_SESSION['loginoff'] com o texto "LOGIN OFF" e é redirecionado para a página "index.php".

Pode testar e tentar entrar na página principal.php (URL) sem ter efetuado o login, e é redirecionado para a página "index.php" devendo aparece a frase "LOGIN OFF" depois do botão Entrar.



Deverá acrescentar seguinte código ao ficheiro "index.php".






código do Ficheiro sair.php



    Aqui, as variáveis de sessão são apagadas com a utilização do unset();
 Asessões são destruídas através da função session_destroy() e é redirecionado para o ficheiro index.php.

------------------------------------------------------------------------------------------------------------------------


LISTAR REGISTOS DA BASE DE DADOS
utilização da função mysqli_fetch_array()


EXERCÍCIO :
Alterar o ficheiro principal.php de modo a que possa listar os utilizadores da BD

Faz a ligação à BD e faz a consulta com a seleção de todos os utilizadores da tabela;
Escreve o número de registos encontrados;
É utilizado o ciclo while para escrever cada um dos elementos do array associativo lido com função mysqli_fetch_array  e guarda todos os registos da tabela utilizadores;

















Criar e usar o DataTables para listar registros 

https://www.youtube.com/watch?v=b8YLHrH0UMU


APAGAR REGISTO DA BASE DE DADOS
https://www.youtube.com/watch?v=CYVDtwTxrsc

http://www.bosontreinamentos.com.br/php-programming/curso-de-php-removendo-dados-do-banco-de-dados/

Apagar registos da BD é uma tarefa delicada que requer muita atenção e cuidado na sua execução pois pode comprometer a integridade dos dados existentes na BD. 

Exemplo simples de código de excluir registo 
include ("conexao.php");
$nome = $_POST[‘loginf’];

$consulta = “DELETE FROM Utilizadores WHERE login=’$nome'”; 
mysqli_query($con, $consulta)  or  die (“Erro ao tentar apagar o registro”);
echo “Registo de utilizador apagado”;
mysqli_close($con);

Sem comentários:

Enviar um comentário