检索php值并在javascript中使用它

时间:2012-07-30 03:12:45

标签: php javascript jquery variables

在我的网站中,我为会话对象设置了一些值,例如“user_status”,“user_name”等。 php文件如下所示:

<script type="text/javascript">
    var logged = <? echo $this->session->getValueOf("user_status"); ?>;
</script>

<a class="show_message" href="#">SHow my status</a>

好吧,我有一个js脚本假装根据网站上的user status做一个动作,所以,我有这个:

$('.show_status').click(function(event){

    //ask for user status
    if (logged){
        //do something
    }
    else{
        //do another action for visitors
    }
});

四处走走我认为这是session - &gt;之间流量数据的最佳方式。 javascript,因为如果您在浏览器中检查网页来源,user_status的值将会显示,并且可能会对网站安全造成风险。

提前致谢

编辑:

  1. logged var只接受一个布尔值。
  2. 每次单击元素#(".show_status")时,都必须执行js操作。

2 个答案:

答案 0 :(得分:3)

如果JavaScript只是用于接口的东西,并且没有任何后端效果,我可能不会过分担心处理逻辑客户端的不安全感。

如果安全性很重要,我建议您使用PHP编写适当的JavaScript函数。例如:

在正在查看的页面上,可能在标题中,您有:

<script type="text/javascript">
    <?php
    if ($this->session->getValueOf("user_status")) {
        require_once('logged_in_user_functions.js');
    } else {
        require_once('visitor_functions.js');
    }
    ?>
</script>

在`logged_in_user_functions.js'文件中你有:

function showComment(id) {
    //logic that shows the comment here
}

function showCommentSubmissionForm() {
    //logic that adds this form to the page goes here
}

同时,在`visitor_functions.js'文件中你有:

function showComment(id) {
    //logic that shows the comment in a different way goes here
}

function showCommentSubmissionForm() {
    //logic to display a message saying the user needs to log in to post a comment goes here
}

然后,您可以将逻辑添加到页面中,而无需检查用户状态。提供了正确的行为,包括.js文件:

<button id='add_comment_button' onclick='showCommentSubmissionForm()'>Add Comment</button>

这使PHP(以及服务器,而不是客户端)最终说出了向用户显示的内容。

答案 1 :(得分:2)

假设user_status类似Active,那么这不是真正的安全风险。

如果你想隐藏所有来自casualy prying eyes,你可以尝试使用加密的cookie,使用How to save encrypted data in cookie (using php)?之类的东西加密你的值。