Give unset a variable after clicking a link

1

Help me guys wonder if it is possible to unset a variable by clicking on a link through the action or another solution?

  <a href="login.php" class="login" action=""><span class="navbarcolors"><?php if(isset($_SESSION['username']))
{
   echo 'logout'; 
}
else
{

   echo 'login';

}?>
    
asked by anonymous 02.04.2018 / 01:03

1 answer

1

You can not change a PHP variable / session through JavaScript (without AJAX ). What you can do is add a parameter to the URL and check in the file the user action, for example.

<?php

    session_start();

    /**
     * Verifica se o parâmetro 'action' existe na URL
     * Verifica se o valor do parâmetro 'action' é "logout"
     * Verifica se a sessão existe
     *
     * Caso todas as condições acima sejam verdadeira, remove a sessão.
     */
    if (isset($_GET["action"]) && $_GET["action"] == "logout" && isset($_SESSION['username'])) {
        unset($_SESSION['username']);
    }

    /* Captura a ação */
    $action = !isset($_SESSION['username']) ? "login" : "logout";
?>

<a href="index.php?action=<?php echo $action ?>" class="login" action=""><span class="navbarcolors"><?php echo $action ?></span></a>

<?php
    /* ATENÇÃO! Adicionei a linha abaixo, SOMENTE por não saber como você está trabalhando com o formulário de login, ela é apenas para um teste. */
    $_SESSION['username'] = "ok";
?>

Demo:

    
02.04.2018 / 01:17