想做一个实时判断用户是否登录的效果

a734998102 2014-07-28 06:27:15
<div id="login_null">
<a href="/index.php/home/Index/login"> 登录</a>
<span class="xsplit">|</span>
<a href="/index.php/home/Index/register">快速注册</a>
<span class="xsplit">|</span>
<a href="/index.php/home/Index/manager_page">后台管理</a>
</div>
<div id="login_success">
<a href="/index.php/Home/Index/changeInfo" class="J_select_list" rel="passport_menu_box" params=" {"reverseSharp":true}">您好:{$user_name} ! </a>
<span class="xsplit">|</span>
<a href="__URL__/sessionNull" >退出</a>
</div>

//JS代码
$(document).ready(function(){
$("#member_login_log").click(function() {
if("user_name"!=null)
{
$("#login_null").hide();
}

});
});
当点击登录按钮之后进行判断,然后div根据判断结果显示内容
因为我是在已经登录了之后写的这个js,当我清除密码和用户名之后,div id= login_null 的不会自己显示,是一直隐藏的。。 我想知道要怎么处理这部分,
简单的说就是 我想每次点击一个页面的时候,就进行这个js判断,能够时刻监控用户是否登了;
...全文
890 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 13 楼 cn00439805 的回复:

// if used jquery and jquery.cookie
setTimeInterval(isLogin,500);
function isLogin(){
if(!$.cookie("userId")){
//alert("你未登陆");
}
else{
//alert("你已登陆");
}

}


我现在的效果是这样 明显是不行的
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 13 楼 cn00439805 的回复:

// if used jquery and jquery.cookie
setTimeInterval(isLogin,500);
function isLogin(){
      if(!$.cookie("userId")){
          //alert("你未登陆");
      }
      else{
          //alert("你已登陆");
      }
}
<div id="login_null"> <a href="/index.php/home/Index/login"> 登录</a> <span class="xsplit">|</span> <a href="/index.php/home/Index/register">快速注册</a> <span class="xsplit">|</span> <a href="/index.php/home/Index/manager_page">后台管理</a> </div> <div id="login_success"> <a href="/index.php/Home/Index/changeInfo" class="J_select_list" rel="passport_menu_box" params=" {"reverseSharp":true}">您好:{$user_name} ! </a> <span class="xsplit">|</span> <a href="__URL__/sessionNull" >退出</a> </div> 如果已经登录了id=login_success 显示 如果没登录 id=login_null 显示 怎么实现 ?
cn00439805 2014-07-29
  • 打赏
  • 举报
回复

// if used jquery and jquery.cookie
setTimeInterval(isLogin,500);
function isLogin(){
      if(!$.cookie("userId")){
          //alert("你未登陆");
      }
      else{
          //alert("你已登陆");
      }
}
万玩完顽完 2014-07-29
  • 打赏
  • 举报
回复
引用 10 楼 a734998102 的回复:
[quote=引用 8 楼 fangzuli 的回复:] div 标签:<div id="div1" runat="server" >......</div> c#代码设置div隐藏 div1.Attributes.Add("style","display:none"); 显示div.Attributes["style"]="display:''"; 比较笨的 feel。。。
c#。。能混着用么 ?我不会这个呀[/quote] 都给你 code 了。。 有 html 代码。。后台c#也有呀。
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 7 楼 zjgest 的回复:
既然你已经写了session,你的页面跳转都是进控制器的,那你在控制器里面判断好了, 比如: $id=$_SESSION['id']; if ($id){ //跳转正常页面 } else { //跳转登录 }
怎么变成了页面跳转? 我要判断div布局显示问题
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 8 楼 fangzuli 的回复:
div 标签:<div id="div1" runat="server" >......</div> c#代码设置div隐藏 div1.Attributes.Add("style","display:none"); 显示div.Attributes["style"]="display:''"; 比较笨的 feel。。。
c#。。能混着用么 ?我不会这个呀
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 6 楼 yu102655 的回复:
你把所有与你user_name的代码都给我贴出来,我看看,应该不会有问题的,估计是你在取值的时候没有取到
session_start (); $user_name=$_SESSION["user_name"]; $User = M ( 'univ_basic_info' ); $result = $User->select(); $this->assign('list',$result); $this->user_name=$user_name; $this->display(); 这个是在控制器的代码。 user_name 我确定是有值的,我在模版页面也能够打印出来,我觉得可能就是那段js有问题
万玩完顽完 2014-07-29
  • 打赏
  • 举报
回复
div 标签:<div id="div1" runat="server" >......</div> c#代码设置div隐藏 div1.Attributes.Add("style","display:none"); 显示div.Attributes["style"]="display:''"; 比较笨的 feel。。。
zjgest 2014-07-29
  • 打赏
  • 举报
回复
既然你已经写了session,你的页面跳转都是进控制器的,那你在控制器里面判断好了, 比如: $id=$_SESSION['id']; if ($id){ //跳转正常页面 } else { //跳转登录 }
于大圣 2014-07-29
  • 打赏
  • 举报
回复
你把所有与你user_name的代码都给我贴出来,我看看,应该不会有问题的,估计是你在取值的时候没有取到
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 2 楼 yu102655 的回复:
我可以给你提供一个思路,一般来说,用户登录的信息都是要放到session里面去的,比如你在跳转到某个画面之后,首先把session里面的值取出来,放到一个页面的隐藏项当中,然后在你写的js中,把这个值取出来,做判断应该就可以了,试试看
我得代码就是你这个思路。直接判断的session有没有值,然后进行隐藏,但是没效果,我想可能需要异步判断之类的
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 20 楼 cn00439805 的回复:

<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
	<style>*{margin:0;padding:0;}div{padding:20px;}a{padding:10px;}</style>
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
</head>
<body>
	<script>
		//假设 localStorage["isLogin"] 表示是否登录,实际中用ajax取回的登录状态或者cookie替代
		$(function(){
			localStorage["isLogin"] = "";
			function checkLogin(){
				if(localStorage["isLogin"]){
					handleLogin();
				}
				else{
					handleUnLogin();
				}
			}
			function handleLogin(){
				$("#header").html('<div><a href="javascript:;">白开水</a>|<a id="quit" href="javascript:;">退出</a>|<a href="javascript:;">后台管理</a></div>')
			}
			function handleUnLogin(){
				$("#header").html('<div><a href="javascript:;">登录</a>|<a href="javascript:;">快速注册</a></div>')
			}
			$("#btn1").on("click",function(){
				localStorage["isLogin"] = (localStorage["isLogin"]?"":1);
			});
			$(document).on("click","#quit",function(){
				localStorage["isLogin"] = "";
				handleUnLogin();
			});
			setInterval(checkLogin,500);
		});
    </script>
    <div id="wrapper">
    	<header id="header"></header>
        <div>
        	<button id="btn1">切换登录状态,实际需经服务器切换(可以发ajax服务端写cookie,也可以发ajax拿登录状态,session不适合集群,当然你可以使用session)</button>
        </div>
    </div>
</body>
</html>
灰常感谢你 调一下位置我要的效果就出来了 好厉害
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 23 楼 cn00439805 的回复:
不管session还是cookie,只是一个用于判断是否登陆的变量而已。
还是有一点点不是我想要的效果。。剩下的我自己来弄 感谢你
cn00439805 2014-07-29
  • 打赏
  • 举报
回复
不管session还是cookie,只是一个用于判断是否登陆的变量而已。
cn00439805 2014-07-29
  • 打赏
  • 举报
回复

<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
	<style>*{margin:0;padding:0;}div{padding:20px;}a{padding:10px;}</style>
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
</head>
<body>
	<script>
		//假设 localStorage["isLogin"] 表示是否登录,实际中用ajax取回的登录状态或者cookie替代
		$(function(){
			function checkLogin(){
				if(localStorage["isLogin"]){
					handleLogin();
				}
				else{
					handleUnLogin();
				}
			}
			function handleLogin(){
				$("#header").html('<div><a href="javascript:;">白开水</a>|<a id="quit" href="javascript:;">退出</a>|<a href="javascript:;">后台管理</a></div>')
			}
			function handleUnLogin(){
				$("#header").html('<div><a href="javascript:;">登录</a>|<a href="javascript:;">快速注册</a></div>')
			}
			$("#btn1").on("click",function(){
				localStorage["isLogin"] = (localStorage["isLogin"]?"":1);
			});
			$(document).on("click","#quit",function(){
				localStorage["isLogin"] = "";
				handleUnLogin();
			});
			setInterval(checkLogin,500);
		});
    </script>
    <div id="wrapper">
    	<header id="header"></header>
        <div>
        	<button id="btn1">切换登录状态,实际需经服务器切换(可以发ajax服务端写cookie,也可以发ajax拿登录状态,session不适合集群,当然你可以使用session)</button>
        </div>
    </div>
</body>
</html>
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 16 楼 cn00439805 的回复:
为什么不行?

// if used jquery and jquery.cookie
setTimeInterval(isLogin,500);
function isLogin(){
      if(!$.cookie("userId")){
          handleUnLogin();
          //render unlogin 模板
      }
      else{
          handleLogin();
          //render login 模板
      }
}
cookie 我用的session 判断是不是一样的?user_name就是session值 $(document).ready(function(){ $("#member_login_log").click(function() { if("user_name"!=null) { $("#login_null").hide(); } }); });
cn00439805 2014-07-29
  • 打赏
  • 举报
回复

<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
	<style>*{margin:0;padding:0;}div{padding:20px;}a{padding:10px;}</style>
    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
</head>
<body>
	<script>
		//假设 localStorage["isLogin"] 表示是否登录,实际中用ajax取回的登录状态或者cookie替代
		$(function(){
			localStorage["isLogin"] = "";
			function checkLogin(){
				if(localStorage["isLogin"]){
					handleLogin();
				}
				else{
					handleUnLogin();
				}
			}
			function handleLogin(){
				$("#header").html('<div><a href="javascript:;">白开水</a>|<a id="quit" href="javascript:;">退出</a>|<a href="javascript:;">后台管理</a></div>')
			}
			function handleUnLogin(){
				$("#header").html('<div><a href="javascript:;">登录</a>|<a href="javascript:;">快速注册</a></div>')
			}
			$("#btn1").on("click",function(){
				localStorage["isLogin"] = (localStorage["isLogin"]?"":1);
			});
			$(document).on("click","#quit",function(){
				localStorage["isLogin"] = "";
				handleUnLogin();
			});
			setInterval(checkLogin,500);
		});
    </script>
    <div id="wrapper">
    	<header id="header"></header>
        <div>
        	<button id="btn1">切换登录状态,实际需经服务器切换(可以发ajax服务端写cookie,也可以发ajax拿登录状态,session不适合集群,当然你可以使用session)</button>
        </div>
    </div>
</body>
</html>
a734998102 2014-07-29
  • 打赏
  • 举报
回复
引用 18 楼 cn00439805 的回复:
比如:login的话就显示 白开水|退出|后台管理 unlogin的话就显示 登陆|快速注册 你看如何?
login的话就显示 白开水|退出 unlogin的话就显示 登陆|快速注册|后台管理 嗯 这样
cn00439805 2014-07-29
  • 打赏
  • 举报
回复
比如:login的话就显示 白开水|退出|后台管理 unlogin的话就显示 登陆|快速注册 你看如何?
cn00439805 2014-07-29
  • 打赏
  • 举报
回复
这样吧,你出需求,我实现个简单的,最基础的。
加载更多回复(5)

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧