Skip to content
Advertisement

Set cookie everytime user deletes it

I want to create a cookie everytime a user deletes it, using Javascript.

For example, I have many cookies, even some cookies which set a ban time to the user who abuses the website.

Basically I want to set a cookie which will be set whenever all of the cookies are deleted.

Btw, I do not want to create the same cookie back. But, I just want to create an indication cookie.

Advertisement

Answer

Here is how I create a cookie every time the user deletes it:

<?php
if ($_COOKIE["CookieIsThere"] == "no") {
echo "Why did you delete the cookies? Come on, we wanted to help you!";
setcookie("CookieIsThere", "yes");
} else {
setcookie("CookieIsThere", "yes");
}
echo "<br>". $_COOKIE["CookieIsThere"];

?>
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script>
function getCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
        var end = document.cookie.indexOf(";", begin);
        if (end == -1) {
        end = dc.length;
        }
    }
    // because unescape has been deprecated, replaced with decodeURI
    //return unescape(dc.substring(begin + prefix.length, end));
    return decodeURI(dc.substring(begin + prefix.length, end));
} 

function doSomething() {
    var myCookie = getCookie("CookieIsThere");

    if (myCookie == null) {
        // do cookie doesn't exist stuff;
        document.cookie = "CookieIsThere=no";
location.reload();

            console.log(myCookie);
    } else {
        // do cookie exists stuff
        console.log(myCookie);

    }
}
setInterval(function () {
doSomething();
}, 1000);
</script>
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement