如果用户浏览器中存在cookie,如何将用户重定向到外部URL

时间:2019-02-14 01:53:01

标签: php wordpress redirect cookies

我希望有人帮助如何将在其浏览器中设置了Cookie的回访用户重定向到http://google.co.uk。我正在使用一个年龄验证系统,该系统可以在wordpress中正常运行,但是我一直试图找出的唯一问题是如何将未成年用户重定向到google.co.uk,直到Cookie过期。

这是一个过程,当用户访问网站时,系统会提示他们填写DOB,如果在允许的年龄(18岁以上)内,他们会受到欢迎并可以继续浏览网站,但如果年龄不足,我使用Ajax和PHP(PHP设置cookie名称为VAage,其内容小于18,如下面的屏幕截图所示),而ajax处理用户的体验/与表单的交互而不必重新加载页面。

Age Verification

现在,没有合作的部分是……当用户未满18岁并已重定向到http://google.co.uk(目前工作正常)并决定立即重新访问该网站或在Cookie尚未过期或从其浏览器中删除后重新访问该网站,应一次又一次地重定向回google.co.uk(以防止它们访问网站)。

我曾尝试将此代码添加到主题的function.php文件,header.php,index.php中,但无效;

function is_user_with_VAage_cookies () {
if ( isset( $_COOKIE['VAage'] ) ) {
        header('Location: https://google.co.uk'); 
        exit;
    }
}

我也尝试使用JavaScript而不是使用PHP的header()函数,

function is_user_with_VAage_cookies () {
if ( isset( $_COOKIE['VAage'] ) ) {
        ?>
            <script type="text/javascript">var win = window.open('https://google.co.uk', '_self');</script>
    <?php

    }
}

我不确定我做错了什么,或者不确定是否可以进行这项工作。我曾尝试像这样add_action('init', 'is_user_with_VAage_cookies');(如here所示)将其钩住,但是每次我测试年龄验证并在被重定向到18岁以下后尝试返回该网站时,它仍然会加载我不想要的网站。我希望未成年用户立即尝试重新访问该网站,直到他们尝试再次访问该网站,直到Cookie过期(该Cookie设置为7天过期)为止。

预先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

最后使它起作用,问题出在路径...如该部分上方的图像所示,该路径指向/ cbd / wp-admin(其中应指向/ cbd /)...是根路径(C:// xampp / htdocs / cbd /)。像这样setcookie($cookie_name, $true, time()+3600, '/');

设置路径后

我使用此php代码重定向用户(如果存在cookie)

function is_user_with_VAage_cookies () {
    if(isset($_COOKIE['VAage'])) { //Which return this array [VAage]=>user18 if you print_r($_COOKIE);
        ?>
        <script type="text/javascript">
            window.open('https://google.co.uk', '_self');
        </script>
        <?php
    }
}
add_action('init', 'is_user_with_VAage_cookies');