PHP / Ajax:如何在$ _SESSION变量值上显示/隐藏DIV?

我在网上搜索了很多很多主题,讨论了会话变量以及如何通过Ajax从Javacript获取它们。 但是,虽然我已经能够这样做,但这并不能完全解决我的问题。

目的

在线提供在线库存管理。

约束

  • 只有经过身份validation的用户才能管理在线库存
  • 未经身份validation的用户可以隐藏库存管理控件
  • 每个部分必须独立通知身份validation,以便相应地显示/隐藏其控件

代码示例

  • authenticate.php
  • project.js
  • 的index.php
  • atv.php
  • ATV-库存list.php的
  • sectionhandler.php

的index.php

  ... 
...
...

authenticate.php

  

project.js

 $(document).ready(function() { $("#newAtvDialog").dialog({ autoOpen: false, closeOnEscape: true, modal: true, width: 1000 }); $("#newAtvAjaxForm").ajaxForm(function(data) { $("#newAtvDialog").dialog("close"); $("#section").load("sectionhandler.php?section=atv&type=-1&make=0&year=0&category=0", function(event) { $("button").button(); }); }); }); 

atv.php

 
...

ATV-库存list.php的

 $atv): ?> 
<img src="https://stackoverflow.com/questions/19110684/php-ajax-how-to-show-hide-div-on-session-variable-value/getPathToImage())">
...
<button id="removeAtvButton" class=""> Remove ATV

sectionhandler.php

 $section = ""; if (isset($_REQUEST["section"])) $section = $_REQUEST["section"]; $type = -1; $make = 0; $year = 0; $category = 0; // getting values from $_REQUEST[] $activatedSection = ""; switch($section) { case "atv": $activatedSection = "atv.php"; ... } $file = $url.raw_url_encore($activatedSection); include $file; 

补充想法

我想到设置一个布尔会话变量,该变量将在用户不活动约20分钟后过期,迫使他再次登录。

我知道我不会使用存储在数据库中的密码。 这是本网站认证的第一步,我将很快上线,因为客户将很快要求交付。 加密密码将是下一步。 但首先,我需要显示/隐藏function才能正常工作。

我也考虑过cookie,对于Web开发来说还是一个新手,我不太确定什么是最好的方法。 就我而言,最简单的最好,只要它意味着最小的安全性。 毕竟这不是NASA的网站! 😉

感谢大家的投入! =)

这是一个想法,但你可以在它上面工作;

actionURL是一个php文件,您可以在其中检查用户是否使用有效会话登录。

如果用户已记录,则ajaxSession函数返回true或false。

然后你可以每X秒/分钟调用一次这个函数来控制会话是否还在继续。

 window.setInterval(function(){ // call your function here if(ajaxSession(actionUrl)){ //return true, user logged, append/show protected divs. }else{ //return false, remove/hide protected divs and ask user to log. } }, 5000); //every 5 seconds. 

ajaxSession函数:

  function ajaxSession(actionUrl) { var sessionOK= false; $.ajax({ async: false, url: actionUrl, success: function(msg) { // check the return call from the php file. if(msg== 'OK'){ sessionOK = true; }else{ sessionOk = false; } }}); return sessionOK; } 

编辑

我将为actionUrl添加一个示例代码,如果会话isset或不是ajaxSession函数,它将返回:

  

记得在ajaxSession函数中检查Ajax调用的结果。 如果没问题,则sessionOk = true,否则,sessionOk = false。