Delay PHP execution until JavaScript cookie set?

Posted by Adam184 on Stack Overflow See other posts from Stack Overflow or by Adam184
Published on 2012-10-02T03:33:33Z Indexed on 2012/10/02 3:37 UTC
Read the original article Hit count: 166

Filed under:
|

I am trying to delay PHP execution until a cookie is set through JavaScript. The code is below, I trimmed the createCookie JavaScript function for simplicity (I've tested the function itself and it works).

<?php
if(!isset($_COOKIE["test"])) {
    ?>
    <script type="text/javascript">
        $(function() {
            // createCookie script
            createCookie("test", 1, 3600);
        });
    </script>
    <?php
    // Reload the page to ensure cookie was set
    if(!isset($_COOKIE["test"])) {
        header("Location: http://localhost/asdf.php/");
    }
}
?>

At first I had no idea why this didn't work, however after using microtime() I figured out that the PHP after the <script> was executing before the jQuery ready function. I reduced my code significantly to show a simple version that is answerable, I am well aware that I am able to use setcookie() in PHP, the requirements for the cookie are client-side.

I understand mixing PHP and JavaScript is incorrect, but any help on how to make this work (is there a PHP delay? - I tried sleep(), didn't work and didn't think it would work, since the scripts would be delayed as well) would be greatly appreciated.

© Stack Overflow or respective owner

Related posts about php

Related posts about JavaScript