Destrua a sessão do PHP

Destrua a sessão do PHP
Quando um usuário visita um site no navegador, a quantidade de tempo passada por esse usuário nesse site é chamada de sessão para esse usuário. Quando um usuário fecha o navegador ou logout do site, a sessão expira. As informações da sessão podem ser armazenadas usando um cookie no computador do cliente ou usando o script PHP que é armazenado no servidor. As informações armazenadas pelo cookie podem ser invadidas facilmente por acesso não autorizado. Então, a maneira de armazenar informações da sessão usando o cookie não é garantida. O PHP possui algumas funções internas e variáveis ​​de sessão para manter e destruir as informações da sessão dos usuários. A maneira de despertar a variável de sessão e destruir a sessão de PHP foi mostrada neste tutorial.

Variável de sessão não definida

Os dados de sessão específicos podem ser removidos usando a função unset (). A função session_unset () é usada para apagar todos os dados relacionados à sessão de uma sessão específica. O PHP usa a matriz associativa $ _session para manter os dados da sessão.

Sintaxe:

A sintaxe do session_unset () A função deu abaixo.

void session_unset ();

É usado para despertar a sessão atual, apagando todos os dados relacionados à sessão da matriz $ _Session. Não retorna nada.

Exemplo 1: variável de sessão não definida

A remoção da sessão usando a função session_unset () mostrou no exemplo a seguir. Crie um arquivo php com o seguinte script Crie uma sessão para os usuários autenticados e verifique um valor da matriz $ _Session depois de destruir a sessão. Um formulário é usado no script para levar o nome de usuário e a senha.

Em seguida, esses valores serão comparados com os valores específicos para verificar a autenticação. Uma sessão será criada usando a função session_start () para o usuário se o nome de usuário e a senha estiverem corretos. Se o usuário visitar a página da web, a sessão será apagada usando a função session_unset () para verificar se a sessão atual será destruída ou não.

// Verifique se o formulário é enviado ou não
if (isset ($ _ post ['submmit'])))

// Verifique os campos de nome de usuário e senha estão vazios ou não
if (isset ($ _ post ['un')) && isset ($ _ post ['pw'])))

$ nome de usuário = $ _Post ['un'];
$ senha = $ _Post ['pw'];
// Verifique a autenticação do usuário
if ($ nome de usuário == 'admin' && $ senha == 'secret')

// Iniciar sessão para o usuário autenticado
session_start ();
eco "";
// Verifique a variável da sessão
if (isset ($ _ sessão ['nome'])))

// Mensagem de boas -vindas de impressão
eco 'bem -vindo de volta.
';
// despertar a sessão para o usuário
session_unSet ();
// Verifique a variável da sessão após desmembrar
eco "o valor da sessão após desmembrado:".$ _Session ['nome']."
";

outro

// Defina a variável de sessão
$ _Session ['nome'] = 'administrador';
// Imprima a variável de sessão
eco "a variável da sessão está definida para".$ _Session ['nome']."
";

eco "";

outro

// Mensagem de erro de impressão para usuário inválido
eco "nome de usuário ou senha não está definido
";



outro

?>



Exemplo de sessão não definida



Nome de usuário:



Senha:









?>

Saída:
A saída a seguir aparecerá após a execução do script acima. O usuário deve fornecer um nome de usuário e senha válidos antes de enviar o formulário. De acordo com o script, o nome de usuário válido é 'admin'E a senha é'segredo'.

A saída a seguir aparecerá se o nome de usuário correto e a senha forem enviadas pelo formulário e uma nova sessão será gerada para o usuário.

A saída a seguir aparecerá se o usuário re-visitar a página novamente. Se a sessão existir para o usuário, o usuário receberá a mensagem, 'bem vindo de volta'E a função session_unset () destruirá a sessão para esse usuário. A mensagem de aviso aparecerá na saída porque a variável da sessão será indefinida após chamar a função session_unset (). Mas esta mensagem de aviso pode ser omitida usando o erro_reporting diretivo.

Destrua a sessão do PHP

A função session_destroy () é usada para destruir todas as variáveis ​​de sessão dos visitantes. Ele apenas destrói os dados da sessão, mas a variável super global PHP, a matriz de $ _Session contém os dados da sessão. Os valores desta matriz serão removidos se o script for encerrado ou o usuário fechar a sessão. A matriz $ _Session pode ser criada inicializando uma matriz vazia.

O cookie phpsessid pode ser mantido no computador do usuário sem dados depois de destruir a sessão se o biscoito do navegador estiver ativado no computador do usuário. Nesse caso, quando o usuário revisitará a página novamente, uma nova sessão será gerada para o usuário, mesmo existe cookie phpsessid. A sintaxe desta função mostrou abaixo.

Sintaxe:

void session_destroy ();

Esta função não tem nenhum argumento e não retorna nada.

Exemplo 2: Destruindo sessão usando session_unset ()

A maneira de destruir todos os tipos de informações da sessão usando a função session_unset () mostrou no exemplo a seguir. Crie um arquivo PHP com o seguinte script para criar uma sessão padrão para os visitantes em geral, definir o nome da sessão e a data de validade usando a função setcookie () e imprima o nome da sessão após destruir a sessão usando a função session_unset ().

// Inicie a sessão para o visitante
session_start ();
// Defina o cookie da sessão para o visitante
if (session_id () != "" || isset ($ _ cookie [session_name ()])))
setcookie (session_name (), ", time () - 42000, '/');
// Imprima o nome da sessão padrão
eco "o nome da sessão padrão é".session_name ()."
";
// Imprimir a data de expiração da sessão
eco "a data expirada da sessão é".Data ('D-M-Y', Time ()+5000000)."
";
// Destrua todas as informações da sessão
session_destroy ();
if (session_id () == "")
eco "sessão destruiu.";
?>

Saída:

A saída a seguir aparecerá após a execução do script acima. Aqui, a sessão foi criada com o tempo de expiração e destruída posteriormente usando a função session_destroy ().

Conclusão

Duas maneiras de destruir sessões de PHP foram explicadas neste tutorial com exemplos. As funções session_unset () e session_destroy () foram usadas neste tutorial para destruir qualquer sessão existente. O desenvolvedor do PHP pode usar qualquer uma dessas funções para destruir sessões no PHP.