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.
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ãoSaí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ãoNova sessão foi iniciada para o usuário.
";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, senhaCrie 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
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álidoVocê está logado com sucesso.
";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ãoA 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ãoSaí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ãoNova sessão foi iniciada para o usuário.
";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ãoNova sessão é gerada.
";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.