一 代码
conn.php
<?php $conn = mysql_connect("localhost", "root", "root") or die("连接数据库服务器失败!".mysql_error()); //连接MySQL服务器 mysql_select_db("db_database17",$conn); //选择数据库db_database13 mysql_query("set names utf8"); //设置数据库编码格式utf8 ?>
login.php
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> function checkform(form){//检测表单内容是否为空 if(form.user.value==""){ alert("请输入用户名"); form.user.focus(); return false; } if(form.pwd.value==""){ alert("请输入密码"); form.pwd.focus(); return false; } } </script> <form id="form1" name="form1" method="post" action="login_ok.php" onsubmit="return checkform(form1)"> <fieldset style="width:500px"><legend style="font-size:16px">用户登录</legend><table width="300" border="0" align="center"> <tr> <td width="77" align="right">用户名:</td> <td width="213"><input name="user" type="text" id="user" size="24" /></td> </tr> <tr> <td align="right">密码:</td> <td><input name="pwd" type="password" id="pwd" size="25" /></td> </tr> <tr> <td> </td> <td><input type="submit" name="sub" value="登录" /> <input type="reset" name="res" value="重置" /></td> </tr> </table> </fieldset> </form>
login_ok.php
<?php session_start();//开启SESSION header("content-type:text/html;charset=utf-8");//设置编码格式 include("conn/conn.php");//包含数据库连接文件 $name=$_POST['user']; $pwd=$_POST['pwd']; $sql=mysql_query("select * from tb_member where name='".$name."' and password='".$pwd."'");//执行sql语句 if(mysql_num_rows($sql)>0){//判断数据库中是否有记录 $_SESSION['name']=$name;//为SESSION变量赋值 $_SESSION['time']=time();//为SESSION变量赋值 echo "<script>alert('登录成功!');location='show.php';</script>";//提示登录成功 }else{ echo "<script>alert('用户名或密码错误!');location='login.php';</script>";//提示用户名或密码错误 } ?>
show.php
<?php session_start();?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>学涯在线</title> </head> <body> <?php if($_SESSION['time']==""){//判断SESSION变量是否为空 echo "<script>alert('您无权限查看本页面,请先登录!');location='login.php';</script>";//不允许直接登录 }elseif((time()-$_SESSION['time'])<60){//如果登录时间没有超过1分钟 $_SESSION['time']=time();//把当前时间戳赋给SESSION变量 ?> <table width="469" border="0" align="center"> <tr> <td colspan="3"><img src="images/mysql_01.gif" width="464" height="139" /></td> </tr> <tr> <td width="81"><img src="images/mysql_02.gif" width="78" height="136" /></td> <td width="301" align="center" style="font-size:24px; color:#CC00CC; font-weight:bolder">欢迎来到学涯在线!</td> <td width="74"><img src="images/mysql_04.jpg" width="74" height="136" /></td> </tr> <tr> <td height="63" colspan="3"><img src="images/mysql_05.gif" width="464" height="61" /></td> </tr> </table> <?php }else{//如果登录时间超过10分钟并且10分钟内没有刷新页面则提示登录超时 ?> <table width="469" border="0" align="center"> <tr> <td colspan="3"><img src="images/mysql_01.gif" width="464" height="139" /></td> </tr> <tr> <td width="81"><img src="images/mysql_02.gif" width="78" height="136" /></td> <td width="301" align="center" style="font-size:24px; color:#339966; font-weight:bolder">您已登录超时!请重新登录!</td> <td width="74"><img src="images/mysql_04.jpg" width="74" height="136" /></td> </tr> <tr> <td height="63" colspan="3"><img src="images/mysql_05.gif" width="464" height="61" /></td> </tr> </table> <?php } ?> </body> </html>
二 运行结果
在登录1分钟内,如果没有刷新动作,将会提示超时
相关推荐
针对“控制用户重复登录”的需求,我们可以设置一个全局变量或者使用数据库记录用户的登录状态。一旦用户登录成功,将用户信息存入`Session`,并标记用户为已登录。如果同一用户再次尝试登录,检查`Session`中的登录...
在这个场景中,我们关注的是如何利用`Session`来控制用户的重复登录以及统计在线用户数量。下面将详细介绍这两个核心知识点。 1. **重复登录控制**: 当用户成功登录后,通常会将用户的一些关键信息(如ID、用户名...
3. **删除Session变量**:使用`unset()`函数可删除特定的Session变量,如`unset($_SESSION['username']);`。若要完全结束Session,需调用`session_destroy()`。 4. **检查Session状态**:`session_status()`函数...
Session用于在服务器端存储用户信息,确保安全性,而Cookie则可以用来控制用户在一段时间内的登录状态。实际应用中,应考虑使用更安全的数据库连接方法、避免SQL注入等安全问题,并优化用户体验,例如通过Cookie自动...
在Web开发中,Session是一种非常...综上所述,Session检测用户登录是Web应用中常见且关键的技术,它涉及到用户认证、权限控制以及安全性等多个方面。正确理解和运用Session机制,对于构建健壮的Web应用程序至关重要。
- 在JSP页面中,可以使用 `<jsp:setProperty>` 或 `<c:set>` 等标签来设置Session变量。 - 通过 `<%= session.getAttribute("key") %>` 可以在页面中显示Session中的数据。 #### 五、示例:简单的邮件系统 假设...
当用户在应用程序的不同页面之间跳转时,存储在Session中的变量不会被销毁,而会在整个用户会话期间一直存在。这种机制可以方便地在多个页面间共享数据,并且有助于提高用户体验。 #### 清除Session的重要性 清除...
在PHP中,Session是一种非常重要的会话管理机制,它允许开发者在用户的不同页面请求之间保持状态。...通过正确配置和编程技巧,开发者可以有效地控制Session的生命周期,从而优化用户体验和服务器资源管理。
当用户在应用程序的页面之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在,直到会话过期或结束。 - **存储位置**:Session数据通常存储在服务器上,因此安全性比Cookie更高。 - *...
综上所述,PHP中使用session是一种简单有效的方法来防止非法用户登录后台,通过session机制,我们可以有效地管理和控制用户的会话状态,从而保护网站后台的访问安全。上述提供的代码示例提供了基本的实现方法,适用...
- 设置合理的Session超时时间,避免用户长时间无操作仍保持登录状态。 - 实现验证码机制,防止恶意自动登录尝试。 - 使用更安全的身份验证机制,如Forms Authentication或OAuth等。 - 对敏感操作进行二次确认,防止...
2. 避免使用全局Session变量,可能导致难以调试的问题。 3. 使用适当的数据结构存储Session数据,如Dictionary或自定义对象。 4. 在不再需要Session时,及时调用`Session.Abandon()`释放资源。 总之,理解并妥善...
这对于构建交互式的Web应用程序至关重要,比如购物车、用户登录系统等。在这个主题中,我们将深入理解PHP Session的工作原理、如何使用以及相关的最佳实践。 1. **Session 的工作原理** - 当用户访问一个启用了...
在Java Web应用中,用户的登录状态是通过Session来维护的。当用户成功登录后,服务器会创建一个Session对象,并将用户信息存储在其中,然后将Session ID返回给客户端(通常是浏览器)作为Cookie保存。之后,每次...
从初始化 Session 开始,直到用户关闭浏览器或者 Session 过期这段时间被称为 Session 的生命周期。在这段时间内,用户的状态信息会被持续跟踪并更新。 #### 三、Session 的管理和配置 **1. Session 初始化** 在 ...
可以立即清除某个Session变量。 #### 五、Session的安全性与性能考量 由于Session数据存储在服务器端,因此相比Cookie,它提供了更高的安全性。然而,Session的使用也会对服务器性能产生影响,尤其是当会话数量...
- **管理Session生命周期**:可以调整`session.cookie_lifetime`和`session.gc_maxlifetime`配置参数,控制Cookie和Session数据的存活时间。 在实际应用中,开发者应根据项目需求和性能考虑选择使用Cookie还是...
尽管这种方式可以延长session的生命周期,但它的不确定性并不适合那些需要严格控制session过期时间的应用场景。因此,需要采用一些其他技术手段来实现更精确的控制。 一种方法是使用外部存储机制如Memcache或Redis...
如果用户认证成功,脚本会将用户ID(`$user_id`)、用户信息(`$user_name`)以及用户数组(`$user_array`)注册为Session变量,以便在会话期间其他页面可以访问这些信息。这通过`session_register()`函数完成,...
3. **销毁**:通常情况下,Session会在一定时间后自动失效,也可以手动销毁。 #### 四、Session的应用场景 1. 用户登录状态管理 2. 购物车信息存储 3. 用户个性化设置等 ### ViewState #### 一、ViewState概述 ...