如何使用js刷新页面后如何保持“模式”

<?php
error_reporting(E_ERROR);

$login = new Login();

switch($_GET["action"]){
    case "registerUser":
        $r = $login->registerUser($_GET["username"],$_GET["password"],$_GET["repassword"],$_GET["registerKey"]);
        break;
    case "accessaccount":
        $r = $login->accessaccount($_GET["username"],$_GET["password"]);
        break;
    case "generateRegisterKey":
        $r = $login->generateRegisterKey($_GET["adminPassword"]);
        break;
    case "isPremium":
        $r = $login->isPremium($_GET["username"]);
        break;
    case "IP":
        $r = $login->IP($_GET["username"]);
        break;
    case "IPAddress":
        $r = $login->IPAddress($_GET["username"],$_GET["registerKey"]);
        break;
    default:
        $r = "ERROR:NO_actION";
}

echo $r;

class Login{
////LOCAL FUNCTION [->]
    private function query($sql,$arg,$fetch = false){
        require "connection.php";
        $q = $db->prepare($sql);
        $q->execute($arg);
        return $fetch ? $q->fetch(2) : $q;
    }

    private function bcrypt($password){
        return password_hash($password,PASSWORD_BCRYPT,["cost" => 10]);
    }

    private function userExist($username){
        return $this->query("SELECT accountID FROM accounts WHERE username COLLATE latin1_bin LIKE ?",array($username),true)["accountID"];
    }

    private function isBanned($username){
        return $this->query("SELECT isBanned FROM accounts WHERE accountID = ?",array($this->getaccountID($username)),true)["isBanned"];
    }

    private function getaccountID($username){
        return $this->query("SELECT accountID FROM accounts WHERE username COLLATE latin1_bin LIKE ?",true)["accountID"];
    }
////LOCAL FUNCTION [<-]

////USER FUNCTION [->]
    public function registerUser($username,$password,$repassword,$registerKey){
        if(empty($username) ||empty($password) || empty($registerKey) || empty($repassword)) return "ERROR:MISSING_PARAMETERS";
        if(strlen($username)>20 || strlen($username) < 3) return "ERROR:username_TOO_SHORT";
        if(strlen($password) < 3) return "ERROR:PASSWORD_TOO_SHORT";
        if($this->userExist($username)) return "ERROR:username_TAKEN";        
        if($password != $repassword) return "ERROR:PASSWORDS_NOT_MATCH";        
        $this->query("INSERT INTO accounts(username,password) VALUES (?,?)",array($username,$this->bcrypt($password)));
        return "OK:DONE";
    }

    public function accessaccount($username,$password){ //=login
        if(empty($username) || empty($password)) return "ERROR:MISSING_PARAMETERS";
        if(!$this->userExist($username)) return "ERROR:INVALID_CREDENTIALS";
        if($this->isBanned($username)) return "ERROR:USER_BANNED";
        $pass = $this->query("SELECT password FROM accounts WHERE username COLLATE latin1_bin LIKE ?",true);
        return password_verify($password,$pass["password"]) ? "OK:LOGGED_IN" : "ERROR:INVALID_CREDENTIALS";
    }

    public function isPremium($username){
        if(empty($username)) return "ERROR:MISSING_PARAMETERS";
        return $this->query("SELECT isPremium FROM accounts WHERE accountID  = ?",true)["isPremium"];
    }

      public function IP($username){
        if(empty($username)) return "ERROR:MISSING_PARAMETERS";
          return $this->query("SELECT IP FROM accounts WHERE accountID  = ?",true)["IP"];
    }   

       public function IPAddress($username,$registerKey){
        if(empty($username) ||empty($registerKey)) return "ERROR:MISSING_PARAMETERS";  
        $this->query("UPDATE INTO accounts FROM accounts WHERE accountID  = ? ",true)["IP"];
        return "OK:DONE";
    }


////USER FUNCTION [<-]

////REGISTER KEY FUNCTION [->]
    public function generateRegisterKey($adminpassword,$size = 10){
        if($adminpassword != "test") return "ERROR:NOT_ENOUGH_PRIVILEGES";
        $exist=false;
        do{
            $alpha = "abcdefhijklmnopqrstuvwxyzABCDEFHIJKLMNOPQRSTUVWXYZ0123456789";
            $key = "";
            for($i = 0; $i<$size; $i++){
                $key .= $alpha[mt_rand(0,strlen($alpha) - 1)];
            }
            if($this->keyExist($key)) $exist = true;
        }while($exist);
        $this->query("INSERT INTO registrationKeys(registerKey) VALUES(?)",array($key));
        return $key;
    }

    private function keyExist($key){
        return $this->query("SELECT registerKey FROM registrationKeys WHERE registerKey COLLATE latin1_bin LIKE ? AND username IS NULL",array($key),true)["registerKey"];
    }

    private function AssignKey($username,$key){
        if(!$this->keyExist($key)) return false;
        $this->query("UPDATE registrationKeys SET username = ? WHERE registerKey COLLATE latin1_bin LIKE ?",$key));
        return true;
    }
////REGISTER KEY FUNCTION [<-]
}

在我的网站上有一个按钮,用于设置某种“显示模式”, 当用户连续按下3次时,导航栏就会消失。

从功能上讲,它可以正常工作。

现在解决问题-

我希望保留“显示模式”,即使用户将刷新页面, 在上面的代码中,当用户按3次导航栏Disapperas按钮,但是当他刷新页面时,导航栏将返回。 我如何使其保持隐藏状态? 我需要添加什么?

lsw8142 回答:如何使用js刷新页面后如何保持“模式”

您可以利用浏览器中的内置存储。您可以将键值存储到本地存储中,并在准备好文档时对其进行检查;

$(function()
{
    if(localStorage.getItem("tripleClickState")=="0"){
        $(".bannerContainer").show();
    }else{
        $(".bannerContainer").hide();
    }

    $("#SNLCK").on("tripleclick",function()
    {
        $(".bannerContainer").toggle();

        // store a value to local storage;
        if(localStorage.getItem("tripleClickState")=="0"){
            localStorage.setItem("tripleClickState","1");
        }else{
            localStorage.setItem("tripleClickState","0");
        }
    });
});
本文链接:https://www.f2er.com/2875621.html

大家都在问