测试的SQL语句
CREATE TABLE IF NOT EXISTS `tb_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '编号', `username` varchar(80) NOT NULL COMMENT '用户', `pwd` varchar(80) NOT NULL COMMENT '密码', `session_id` varchar(50) DEFAULT NULL COMMENT '一个账号只能登录一次', `create_time` datetime NOT NULL COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户表' AUTO_INCREMENT=2 ; INSERT INTO `tb_user` (`id`, `username`, `pwd`, `session_id`, `create_time`) VALUES (1, 'chaoyi', '123456', 'sab3s49pnciq6vmlqeiuc6e0g0', '2017-06-02 00:00:00');
登陆页面:
<?php header('Content-Type: text/html; charset=utf-8'); define('CHAOYI',true); require "/includes/connect.inc.php"; //判断是否是POST提交过来的数据 if($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['userForm'])){ session_start(); $username = trim($_POST["username"]); $password = trim($_POST["password"]); $sqluser = "SELECT * FROM tb_user WHERE username='$username' AND pwd='$password' ORDER BY id DESC LIMIT 1"; $result = sqlGetOne($sqluser); //如果没有取到数据,则判断账号密码不正确 if(empty($result['id'])){ session_destroy(); sqlClose(); echo "<script type='text/javascript'>alert('用户名和密码不正确,登陆失败!');window.location.href='logo.php';</script>"; exit; } //获取 session ID $session_id = session_id(); $sqlupdatauser = "UPDATE tb_user SET session_id = '$session_id' WHERE id = '{$result['id']}'"; sqlQuery($sqlupdatauser); //存在一些共享数据到 session 里 $_SESSION['id'] = $result['id']; $_SESSION['username'] = $result['username']; $_SESSION['session_id'] = $session_id; sqlClose(); echo "<script type='text/javascript'> window.location.href='admin.php';</script>"; exit; } ?> <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>登陆页面</title> </head> <body> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> <p>姓名:<input type="text" name="username"></p> <p>密码:<input type="password" name="password"></p> <input type="submit" name="userForm" value="提交" /> </form> </body> </html>
效果图:
管理页面:
<?php header('Content-Type: text/html; charset=utf-8'); define('CHAOYI',true); require "/includes/connect.inc.php"; session_start(); if(isset($_SESSION['id']) && isset($_SESSION['username']) && isset($_SESSION['session_id'])){ $session_id = session_id(); $sqluser = "SELECT id FROM tb_user WHERE id='{$_SESSION['id']}' AND session_id='$session_id' ORDER BY id DESC LIMIT 1"; $result = sqlQuery($sqluser); $resRows = mysql_num_rows($result); if($resRows == false){ sqlClose(); echo "<script type='text/javascript'> alert('对不起,你的帐号在其他地方登陆了!'); window.location.href='logout.php';</script>"; exit; } }else{ sqlClose(); echo "<script type='text/javascript'> alert('请登陆你的账号密码'); window.location.href='logo.php';</script>"; exit; } ?> <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>管理页面</title> </head> <body> <h3 style="text-align: center;">用户名:<?php echo $_SESSION['username'];?></h3> <h3 style="text-align: center;">Session ID: <?php echo $_SESSION['session_id'];?></h3> <h4 style="text-align: center;"><a href="logout.php">注销</a></h4> </body> </html>
效果图:
注销页面:
<?php header('Content-Type: text/html; charset=utf-8'); define('CHAOYI',true); require "/includes/connect.inc.php"; session_start(); //注销 session unset($_SESSION['id']); unset($_SESSION['username']); unset($_SESSION['session_id']); session_destroy(); sqlClose(); echo "<script type='text/javascript'>window.location.href='logo.php';</script>"; exit;
相关推荐
在2009年2月17日,用户hty4000提出了一项关于如何防止一个账号被多处同时登录的问题。这个问题主要出现在通达OA2008ADV版本中。通达OA是一款功能全面、操作简便的企业级办公自动化软件,能够帮助企业提高工作效率,...
1、总共6个php文件,解压后放到apache等web服务器目录中就可以使用。全英文页面,需要改中文直接改php文件即可,整体风格类似于facebook的登录界面,简洁精美。 2、包含登录界面、用户名密码错误提示、登录验证过程...
本压缩包提供了一个详尽的PHP实现注册登录系统的实例,包括验证码功能,这对于初学者或者开发者来说是一份宝贵的资源。 首先,让我们深入理解注册登录系统的基本流程。注册功能通常涉及用户提交个人信息,如用户名...
本示例源码是一个简单的用户注册登录系统,它包含了从用户注册到登录的基本流程。下面将对这个系统的关键组成部分进行详细解析。 1. **style.css**:这是样式表文件,用于定义页面的布局和视觉样式。在用户界面设计...
以上就是用PHP实现用户登录以及与MySQL数据库交互的基本流程。实际项目中,还需要考虑安全问题,如SQL注入防御、密码哈希加强、XSS防护以及CSRF令牌等。此外,还可以添加验证码、邮箱验证等功能,提升系统的安全性与...
在本插件中,用户点击“使用微博登录”按钮后,会跳转到新浪的授权页面,用户同意授权后,ECSHOP将收到一个访问令牌,用于后续的身份验证和信息获取。 实现这一功能需要对ECSHOP的插件架构有深入理解,包括插件的...
这个插件的目标是允许用户通过他们的新浪微博账号方便快捷地注册和登录到EcShop网站,提升用户体验,同时也可能帮助商家吸引更多的社交媒体用户。 描述中的信息简洁明了,没有提供额外的技术细节,但我们可以推测这...
这个模块允许用户创建账号、验证身份并进行登录操作,从而访问特定的网站功能。本文将深入探讨如何使用PHP来实现这一功能,并结合提供的资源进行详细讲解。 首先,我们要理解登录注册的基本流程。注册过程通常包括...
在本文中,我们将深入探讨如何使用PHP实现新浪微博的账号登录及API操作,主要基于OAuth 2.0协议。首先,我们需要了解OAuth 2.0是一个授权框架,它允许第三方应用在用户授权的情况下,访问该用户的特定资源。在新浪的...
9. **界面设计**:描述中提到界面美观,因此在开发时要考虑用户体验和交互设计,使用HTML、CSS和JavaScript配合PHP实现动态效果和响应式布局。Bootstrap、Materialize CSS等框架可以简化这一过程。 10. **错误处理...
QQ的账号登录及API操作是Web开发中常见的一种社交整合方式,主要利用OAuth 2.0授权协议,允许用户在不泄露密码的情况下,让应用访问其QQ账户的特定信息。在这个过程中,PHP作为服务器端语言,起到关键作用,用于处理...
单点登录是企业及网络业务中用户处理的一个重要组成部分,它允许用户在多个相互信任的应用系统之间只需进行一次登录操作即可访问所有应用系统,从而提升用户体验和系统的安全性。 一、单点登录技术实现机制 单点...
手机QQ登录时,用户会被引导至QQ的授权页面,同意后返回一个授权码,开发者通过这个授权码向QQ服务器请求获取用户的唯一标识(OpenID)和其他个人信息。 在给定的文件列表中,我们有以下三个关键文件: 1. `httplib...
当用户成功登录后,系统会生成一个唯一的session ID,并将其存储在服务器端。这个session ID是用户在服务器上的身份标识。如果用户尝试在另一台设备上登录,我们需要检查新设备的session ID是否与原始设备上的相同。...
Ajax登录是一种常见的网页交互技术,它允许用户在不刷新整个页面的情况下与服务器进行异步通信。这个"Ajax登录例程(内存判定账号密码)"是一个简单的实现,它演示了如何在客户端通过Ajax发送请求到服务器端,然后由...
QQ登录就是基于OAuth2.0进行的,用户在你的网站上点击“QQ登录”后,会被重定向到QQ的授权页面,用户同意授权后,会被返回到你的网站,并携带一个授权码。 接下来,你需要在腾讯开放平台上注册你的应用。在腾讯开放...
在PHP中实现QQ登录功能通常涉及到OAuth 2.0授权框架,这是一个开放标准,用于授权第三方应用访问用户在另一服务上的数据。 **QQ登录流程:** 1. **申请App ID和App Key:** 首先,你需要在QQ开放平台(QZone Open ...
QQ空间PHP解析与登录QQ空间的PHP实现是一个常见的Web开发技术话题,主要涉及到PHP编程语言在社交网络应用中的运用。这个"qzone.rar"压缩包包含了一份PHP源码,允许用户通过PHP脚本直接在QQ空间上增加留言,且无需...
5. **搜索功能**:允许用户根据关键词搜索帖子,这涉及到SQL的LIKE操作或其他搜索算法。 6. **权限管理**:对用户的操作进行权限控制,例如禁止未登录用户发帖,或者设置管理员权限等。 在实际的项目开发过程中,...