如何将用户会话保存在PHP中的一个变量中,以便在JavaScript中引用


How to save user session in a variable in PHP to be referenced in JavaScript

案例:用户点击图像

  • 如果是返回的用户(用户会话有效期为30分钟),请导航到图像的链接
  • 如果是新用户,则显示一个弹出div

现在,每当单击图像时,我都会显示弹出的div。关于如何保存会话并将其作为JavaScript中的变量来执行以下函数的任何建议:

if {
    // user is log in.. do your task here..
} else {
    //user is not log in.. do your task here...
}

编辑:

<script>
<? if(isset($_SESSION["logged_in"])) {
    echo "var $check=1";
} else {
    echo "var $check=0";
} ?>
function SetMood() {
    if($check==1) {
        // user is log in.. do your task here..
        alert('URL');
    } else {
        //user is not log in.. do your task here...
        document.getElementById('light').style.display='block';
        document.getElementById('fade').style.display='block';
        document.getElementById('fade').scrollIntoView(true);
    }
}
</script>

这被称为图像:

<a id="register" href = "javascript:void(0)" onclick = "SetMood();" data-fancybox-group="gallery">
    <img src="<cms:show my_image_thumb />" alt="" class="fade">
</a>

以上内容无效,现在没有任何内容打开onClick

不要在客户端代码中执行条件检查,而是在服务器端代码中执行。

假设您有想要实现的JavaScript实现,让我们分别称之为:

navigateToLink();
showPopUp();

然后,根据服务器端会话检查,有条件地发出其中一个或另一个的代码。类似这样的东西:

<?php
if ($_SESSION['someValue'] == 'someKnownValue') {
?>
    navigateToLink();
<?php
} else {
?>
    showPopUp();
<?php
}
?>

这个想法是,服务器端代码应该决定用户可以做什么或不能做什么。任何发送到客户端代码的内容对用户来说都是完全可见的(并且可以修改)。

这应该会对您有所帮助:

<script>
    var yourValue = '<?php echo $_SESSION['yourSessionValue'] ?>';
    if(yourValue == 'hello') {
        console.log('hide yo kids');
    } else {
        console.log('hide yo wife');
    }
</script>