Tutorial da sessão PHP

Tutorial da sessão PHP
Quando um site de várias páginas é projetado, não é possível armazenar as informações do estado das páginas sem usar a sessão. Quando o usuário se move de uma página para outra, é essencial manter as informações da página anterior para diferentes tipos de sites. Mas o protocolo apátrida HTTP é incapaz de executar esta tarefa. Uma das maneiras de resolver esse problema é usar o recurso de manuseio de sessão PHP. É usado para manter todas as informações de cada visitante, como: quando o usuário começar a visitar o site, cujas páginas foram visitadas pelo usuário, quais atividades foram realizadas pelo usuário em cada página e quando o usuário fechar o site, etc. O manuseio de sessão é muito importante para o site baseado em comércio eletrônico, onde o usuário precisa passar para diferentes páginas para comprar produtos. Muitas diretrizes de sessão PHP, funções internas e variáveis ​​são usadas pelo script PHP para lidar com a sessão do usuário. A maneira de lidar com a sessão de um usuário usando diretivas de configuração PHP, função de sessão e variáveis ​​de sessão foi mostrada neste tutorial usando vários exemplos.

Diretivas de sessão PHP

Todas as diretivas relacionadas à sessão podem ser definidas usando o php.ini arquivo. Algumas diretivas de PHP relacionadas à sessão úteis são mencionadas.

Diretiva da sessão propósito
sessão.save_handler O valor da diretiva pode ser arquivos ou milímetros ou sqlite ou do utilizador. O milímetros é usado para lidar com dados de sessão usando a memória. O sqlite é usado para lidar com dados usando o banco de dados SQLite. O do utilizador é usado para lidar com dados usando a função definida pelo usuário.
session_auto_start O valor desta diretiva será Sobre para iniciar a sessão automaticamente; Caso contrário, será Desligado.
sessão.nome É usado para definir o nome da sessão e o nome da sessão padrão é phpsessid.
sessão.save_path É usado para definir o caminho onde as informações da sessão serão armazenadas. O valor padrão desta diretiva é arquivos.
sessão.hash_function É usado para gerar um ID da sessão de hash. 0 é usado MD5 algoritmo e 1 é usado para o Sha algoritmo.
sessão.cache_expire É usado para definir o tempo de expiração da sessão.
sessão.use_cookies É usado para armazenar o ID da sessão empregando o cookie. 1 é usado para empregar cookies e 0 é emplicando para não usar o cookie.
sessão.use_only_cookies É usado para empregar o cookie apenas para armazenar o ID da sessão.
sessão.Cookie_secure É usado para definir se o cookie empregará a conexão segura ou não. É ativado usando o ON e desativado empregando o Desligado valores.
sessão.Cookie_lifetime É usado para definir a vida útil do biscoito.

Você pode visitar o seguinte link para saber mais sobre as diretivas da sessão.

https: // www.php.net/manual/en/ini.lista.php

Funções de sessão PHP

PHP tem muitas funções internas para tarefas de manuseio de sessões. Algumas funções úteis de manuseio de sessão são mencionadas abaixo.

Função de sessão propósito
session_start () É usado para iniciar uma nova sessão ou reiniciar a sessão anterior.
identificação de sessão() É usado para definir ou obter ou definir e obter o ID da sessão.
session_create_id () É usado para criar um novo ID da sessão.
session_name () É usado para definir ou obter ou definir e obter o nome da sessão atual.
session_status () É usado para obter informações sobre o status atual da sessão.
session_reset () É usado para reinicializar a matriz de sessão.
session_unset () É usado para indefinir todas as variáveis ​​de sessão.
session_destroy () É usado para destruir todos os dados da sessão registrada.
session_encode () É usado para codificar os dados da sessão atual.
session_decode () É usado para decodificar os dados da sessão atual codificada.
session_Commit () É usado para escrever dados de sessão e fechar a sessão.
session_abort () É usado para remover as alterações na matriz de sessão e fechar a sessão.
session_regenerate_id () É usado para gerar uma nova sessão para a sessão existente.
session_cache_limiter () É usado para definir ou obter o limitador de cache da sessão atual.
Session_cache_expire () É usado para definir ou obter o tempo de expiração do cache da sessão atual.

Você pode visitar o seguinte link para saber mais sobre as funções de sessão interna de PHP: https: // www.php.rede/manual/en/ref.sessão.php.

Variável de sessão PHP

PHP usa uma matriz associativa nomeada $ _Session Para armazenar dados da sessão. É uma variável 'superglobal' que pode ser acessada de qualquer lugar do script. Os valores são inicializados nessa variável após a criação de uma sessão e essa variável se torna desencadeada após destruir a sessão.

Manuseio de sessão

O manuseio de sessão pode ser feito pelo servidor da web usando o banco de dados ou arquivo. O manuseio da sessão pode ser feito usando o navegador do usuário se o navegador suportar os cookies. Mas se os cookies do navegador estiverem desativados pelo usuário, essa maneira não poderá ser usada para manuseio de sessão. Então, usar o servidor da web é a melhor maneira de lidar com sessões. As etapas para manuseio de sessão são mencionadas abaixo.

  • O visitante envia a solicitação ao servidor da web para visitar uma página.
  • O servidor da web cria um ID da sessão para o visitante, armazena dados relacionados à sessão para o visitante e envia a página como a resposta para o visitante.
  • O servidor da web salva as informações da sessão relacionadas ao visitante em um arquivo de texto no servidor para rastrear a sessão do visitante em cada página visitada pelo visitante durante a sessão.
  • Se o navegador usado pelo visitante suportar cookies, o ID da sessão será armazenado pelo PhpSessid Cookie para rastrear a sessão do visitante em cada página visitada pelo visitante durante a sessão.

Crie e imprima o ID da sessão

O PHP possui duas funções internas para criar ou reiniciar uma sessão anterior e as mencionadas anteriormente neste tutorial. O uso session_start () Função foi mostrada aqui que é usada para gerar uma nova sessão ou re-generar uma sessão anterior. Ele verifica a sessão para o visitante e cria uma nova sessão se o visitante visitar a página pela primeira vez. Crie um arquivo php com o script a seguir que cria uma nova sessão para o visitante e gera um ID de sessão exclusivo que foi impresso por outra função embutida nomeada identificação de sessão().

// Inicie uma nova sessão
session_start ();
// Imprima o ID da sessão
eco "ID da sessão recém -gerada:
".identificação de sessão(). "";
?>

Saída
A saída a seguir aparecerá após a execução do script acima do navegador da web. O ID de sessão exclusivo foi impresso aqui e este ID permanecerá inalterado toda vez que a página for atualizada. Se o navegador for fechado e reaberto novamente para executar este script, um novo ID da sessão será impresso.

Armazene e imprima os dados da sessão

A variável $ _Session deve ser inicializada após a criação do ID da sessão para armazenar os dados da sessão. Crie um arquivo php com o seguinte script que armazena o valor da tecla "Nome" da variável $ _Session [] depois de iniciar uma nova sessão. O isset () A função foi usada no script para verificar a variável $ _session ['nome']. Se o valor não for definido para esta variável, um valor será definido para esta variável. Se o valor tiver sido definido para essa variável, o valor dessa variável será impresso com a formatação.

// Inicie uma nova sessão
session_start ();
se(!ISSET ($ _ Sessão ['Nome']))))

eco "

";
eco "

Nova sessão foi iniciada para o usuário.

";
// salve os dados da sessão
$ _Session ["nome"] = "fahmida yesmin";

outro

eco "

";
// Leia os dados da sessão
eco '

Bem vindo de volta, ' . $ _Session ["Nome"] . '.

';

?>

Saída
A saída a seguir aparecerá após a execução do script acima pela primeira vez. De acordo com a saída, um novo ID da sessão foi gerado para o visitante porque o usuário visita a página pela primeira vez. A variável $ _Session ['nome'] foi inicializada por um valor de string e uma mensagem foi impressa para a nova sessão.

A saída a seguir aparecerá se o usuário visitar a página na próxima vez. O valor da variável $ _Session ['nome'] foi impresso aqui. A mensagem a seguir será exibida sempre até que a sessão seja destruída ou os dados da sessão sejam removidos ou o navegador seja reaberto.

Crie uma sessão depois de autenticar o usuário

Normalmente, a sessão é criada para o usuário registrado do site depois de autenticar o usuário com base nos dados válidos para impedir o acesso não autorizado ao usuário para obter dados sensíveis. O manuseio da sessão é muito importante para o site de comércio eletrônico rastrear a atividade do usuário. Os dados relacionados à autenticação do usuário são armazenados no servidor de banco de dados como MySQL, SQLite, SQL Server, PostgreSQL, etc. As informações do usuário para a autenticação foram armazenadas aqui para simplificar. Crie um arquivo de texto chamado Usuários.TXT Com o seguinte conteúdo e o arquivo contém o nome, email, nome de usuário e senha de três usuários. Cada campo é separado por uma vírgula (,) no arquivo. A autenticação será verificada usando o nome de usuário ou e -mail e a senha.

Usuários.TXT

nome, e -mail, nome de usuário, senha
Nipa Chowdhury, [email protected], nipa35, pop890
Mehrab Hossain, [email protected], Hossainbd, 674523
Abbas Uddin, [email protected], abbas90, hello765

Crie um arquivo HTML nomeado forma de login.html com o script a seguir que exibirá um formulário de login com dois campos de texto e um botão de envio. O nome de usuário ou e -mail será recebido no primeiro campo de texto e a senha será tomada no segundo campo de texto. Quando o botão enviar será pressionado, a página será redirecionada para sessão3.php que será criado mais tarde.

forma de login.html



Manuseio de sessão usando PHP




Conecte-se

nome de usuário ou email:


senha:







Crie um arquivo php com o seguinte script que autentique as informações de login com base nos dados do Usuários.TXT Arquive e inicializa os dados da sessão após a autenticação do usuário. O $ login A variável tem sido usada para rastrear se as informações de login enviadas são válidas ou inválidas e o valor inicial dessa variável é falso. A primeira função ISSET () será usada para verificar se a variável $ _Session ['nome'] está definida ou não. Se essa variável não for definida, a segunda função ISSET () será usada para verificar o valor de $ _post ['UserEmail] variável. Se os valores dessa variável forem definidos, os valores de formulário enviados serão armazenados em duas variáveis. Se os valores dessas variáveis ​​não estiverem vazios, o Usuários.TXT O arquivo será aberto para a leitura para verificar os valores do formulário enviado com os valores do email ou nome de usuário e a senha de qualquer usuário do arquivo de texto. O explodir() A função tem sido usada para dividir cada linha do arquivo com base na vírgula (,) e armazenar os valores divididos em quatro variáveis. O aparar() A função tem sido usada para remover espaço extra de ambos os lados da variável. Se alguma entrada correspondente for encontrada, a variável $ _Session ['nome'] será inicializada pelo nome do usuário correspondente que foi recuperado do arquivo e uma mensagem de sucesso, “Você está logado com sucesso.”Será impresso. Se nenhuma entrada correspondente for encontrada, o formulário de login aparecerá novamente. Se a página for revisada após a criação da sessão, uma mensagem de boas -vindas será impressa com o valor de $ _session ['nome'].

sessão3.php

// Defina a variável para verificar o login válido
$ login = false;
// Inicie uma sessão
session_start ();
// Verifique se a sessão é gerada ou não
se(!ISSET ($ _ Sessão ['Nome']))))

// Verifique se o email ou nome de usuário está definido ou não
if (isset ($ _ post ['userEmail'])))

// armazenar o nome de usuário ou e -mail e senha após aparar
$ user = acabamento ($ _ post ['userEmail']);
$ senha = acabamento ($ _ post ['senha']);
// Verifique se os valores enviados estão vazios ou não
se ($ usuário != "" && $ senha != "")

// Leia o conteúdo dos usuários.arquivo txt
$ userfile = arquivo ("usuários.TXT");
// Leia a linha de arquivo por linha
foreach ($ userfile como $ dados)

// Leia os dados do arquivo em quatro variáveis ​​após a divisão com base em vírgula (,)
lista ($ nome, $ email, $ nome de usuário, $ pwd) = explode (",", $ data);
// Aparar os valores de e -mail, usuário e senha
$ email = acabamento ($ email);
$ nome de usuário = Trim ($ nome de usuário);
$ PWD = TRIM ($ PWD);
// autentique o usuário com base no nome de usuário ou email e senha
if (($ nome de usuário == $ user || $ email == $ user) && ($ pwd == $ senha)))

// armazenar dados de sessão para o usuário válido
$ _Session ['nome'] = $ nome;
eco "

Você está logado com sucesso.

";
$ login = true;
quebrar;




// Mostrar o formulário de login
if ($ login == false) incluir "Loginform.html ";

outro

// Imprima a mensagem de boas -vindas para o usuário autenticado que retorna
eco "

Bem vindo de volta, ". $ _Session ['nome']."

";

?>

Saída
A saída a seguir aparecerá após a execução do script acima pela primeira vez. O usuário deve digitar o nome de usuário ou e -mail e a senha válidos para a autenticação.

O endereço de e -mail e a senha foram fornecidos no seguinte formulário de login. Esses valores serão correspondidos pelo endereço de email e pela senha de cada usuário do arquivo.

A saída a seguir será exibida se o usuário pressionar o botão Enviar depois de fornecer o endereço de email e a senha válidos. A mesma saída aparecerá se o usuário fornecer um nome de usuário válido no lugar do endereço de e -mail para a autenticação. O formulário de login aparecerá novamente se um nome de usuário ou email inválido ou senha for fornecido pelo usuário.

Se o usuário recarregar a mesma página novamente após o login com sucesso, a saída a seguir aparecerá. O valor da variável $ _Session ['nome'] foi impresso aqui com a mensagem de boas -vindas. Esta saída permanecerá inalterada até que a sessão expire para o usuário ou o navegador for reaberto.

Modifique os dados da sessão

Os dados da sessão podem ser modificados após a inicialização da variável da sessão. Crie um arquivo php com o seguinte script para saber a maneira de modificar a variável da sessão depois de inicializar a variável $ _Session. A função ISSET () foi usada no script para verificar se a variável $ _Session ['visit'] está definida ou não. Se a variável $ _Session ['visit'] não estiver definida, essa variável será inicializada para 1. Se a página atualizar ou recarregar novamente, o valor dessa variável será incrementado por 1 para cada atualização. O valor atual dessa variável será impresso sempre que a página for carregada.

// Comece a sessão
session_start ();
// Verifique se a variável de sessão está definida ou não
se (!ISSET ($ _ Sessão ['Visite']))))
// Inicialize a variável de sessão
$ _Session ['visit'] = 1;
outro
// incrementa a variável de sessão por 1
$ _Session ['visit'] += 1;
// imprima o valor atual da variável de sessão
eco "

A página é visitada para ". $ _Session ['Visit']. "vezes

";
?>

Saída
A saída a seguir aparecerá após a execução do script acima pela primeira vez. O valor da $ _Session ['Visit'] é 1 aqui porque quando a página é carregada pela primeira vez, essa variável é inicializada para 1.

A saída a seguir aparecerá se a página for carregada 3 vezes. O valor da $ _Session ['visit'] foi incrementado por 1 cada vez que a página recarrega.

Exclua os dados da sessão

Os dados da sessão podem ser excluídos usando Unset () função ou o session_unset () função de php. Crie um arquivo php com o seguinte script que usa o Unset () função para excluir os dados da sessão. A variável $ _Session ['nome de usuário'] foi inicializada com um valor de string após iniciar a sessão. Em seguida, o valor dessa variável foi impresso antes e depois de executar a função unset () para excluir os dados da sessão da variável $ _session ['nome de usuário'].

// Comece a sessão
session_start ();
// Defina a variável de sessão
$ _Session ['nome de usuário'] = 'fahmidabd';
eco "Dados da sessão após o conjunto:
";
// Imprima a variável da sessão após o conjunto
eco "Nome de usuário:". $ _Session ['Nome de usuário']."
";
// despertar a variável de sessão
Unset ($ _ Session ['Nome de usuário']);
Echo "Dados da sessão após Unset:
";
// Imprima a variável da sessão após desmembrar
eco "Nome de usuário:". $ _Session ['Nome de usuário'];
?>

Saída
A saída a seguir aparecerá após a execução do script acima. O valor do $ _Session ['nome de usuário'] foi impresso antes de executar o Unset () função e a variável $ _session ['nome de usuário'] ficou vazia após a execução Unset () função.

Destrua a sessão

As informações da sessão podem ser removidas desneto os valores da variável $ _Session que foi mostrada no exemplo anterior. PHP tem uma função interna nomeada session_destroy () Para excluir todas as informações relacionadas à sessão completamente. Crie um arquivo php com o seguinte script que mostra o uso do session_destroy () função. Um formulário com um botão de envio foi usado no script para destruir a sessão. Depois de iniciar uma sessão, a função ISSET () foi usada para verificar o “Destruir sessão”Botão é pressionado e o ID da sessão não está vazio. A sessão atual será destruída chamando o session_destroy () função se o ID da sessão existir se o “Destruir sessão”O botão é pressionado pelo usuário. Se a página for visitada pela primeira vez e o “Destruir sessão”O botão não é pressionado, então as informações da sessão serão armazenadas na variável $ _Session ['nome']. Se a página for visitada novamente depois de armazenar as informações da sessão, mas a ““Destruir sessão”Botão não é pressionado, então a mensagem de boas -vindas será impressa.

// Inicie uma nova sessão
session_start ();
if (isset ($ _ post ['destruir']) && session_id () != "")

// Destruir sessão
session_destroy ();

outro

se(!ISSET ($ _ Sessão ['Nome']))))

eco "

";
eco "

Nova sessão foi iniciada para o usuário.

";
// salve os dados da sessão
$ _Session ["nome"] = "fahmida yesmin";

outro

eco "

";
// Leia os dados da sessão
eco '

Bem vindo de volta, ' . $ _Session ["Nome"] . '.

';







?>

Saída
A saída a seguir aparecerá após a execução do script acima pela primeira vez. Se o usuário clicar no “Destruir sessão”Botão então a sessão será destruída completamente e uma página em branco aparecerá.

Exemplo 5: Dados da sessão de codificação e decodificação

Os dados da sessão podem ser codificados para gerar um valor de string, serializando os dados e os dados da sessão codificada podem ser convertidos na matriz, desaperando os dados. Crie um arquivo php com o seguinte script que codifica os dados da sessão usando o session_encode () função e decodifica os dados da sessão codificada usando o session_decode () função. De acordo com o script a seguir, as variáveis ​​$ _Session ["Nome"] e as variáveis ​​$ _Session ["email"] serão inicializadas com dois valores após o início da sessão. Os valores dessas variáveis ​​foram codificados usando o session_encode () função e impresso posteriormente. O session_unset () A função tem sido usada para despertar a variável $ _Session. Em seguida, os dados da string codificada foram convertidos na matriz usando o session_decode () função.

// Inicie uma nova sessão
session_start ();
eco "

Nova sessão é gerada.

";
// salve os dados da sessão
$ _Session ["nome"] = "fahmida yesmin";
$ _Session ["email"] = "[email protected] ";
eco "Os dados da sessão codificada são:
";
// codifica os dados da sessão
$ codedData = session_encode ();
eco "Dados da sessão codificada:". $ codedData."

";
// despertar os dados da sessão
session_unSet ();
// decodificar os dados da sessão
session_decode ($ codedData);
eco "Dados da sessão após a decodificação:";
// Leia os dados da sessão
eco '

Bem-vindo, ' . $ _Session ["Nome"] . '.

';
?>

Saída
A saída a seguir aparecerá após a execução do script acima. Após a codificação, os dados de sessão serializada foram impressos na saída. De acordo com a saída, o tubo (|) e o cólon (:) Símbolos foram incorporados aos dados da sessão para criar a sequência codificada e o comprimento de cada valor da string também foi incluído na sequência codificada. Em seguida, a sequência codificada foi decodificada e o valor da variável $ _Session ["Nome"] foi impresso.

Conclusão

O manuseio da sessão é uma característica muito importante de qualquer aplicativo baseado na Web. O PHP tem muitas diretivas de manuseio de sessões e funções de sessão interna para lidar com tarefas relacionadas à sessão. Alguns usos das funções de sessão comumente usados ​​foram mostrados neste tutorial usando scripts PHP. A tarefa de algumas funções de sessão pode ser realizada usando as diretivas de sessão específicas. Por exemplo, se o session_auto_start A diretiva está definida como Sobre Em seguida, iniciará a sessão automaticamente sem usar o session_start () função. Usar uma tabela de banco de dados é uma maneira eficiente de armazenar os dados da sessão que não são abordados neste tutorial. Mas o objetivo da sessão para o aplicativo da web e a maneira de implementar o recurso de manuseio de sessões usando o script PHP foi mostrado neste tutorial para ajudar novos usuários de PHP a adicionar esse recurso em seu aplicativo.