php记住用户名密码,记住帐号、记住密码、记住表单信息等“记住”的实现

登录界面有记住帐号、记住密码,留言时有记住表单信息等,这使得用户在下次访问该页面时不用重复地输入重复的信息,减少重复劳动。网页设计者当然要满足用户的需求,那么PHP是怎么实现这些“记住”的呢。

使用客户端的cookie可以实现上述需求,下面以留言板为实例来讲解:

先看一下一般的Form(不具有记住功能的表单):

名称(*)

邮箱

网站链接

名称(*)

邮箱

网站链接

我们需要在名称、邮箱、网站链接处填上用户的信息,这些信息应该从用户上一次提交时得到。

只需要在post.php中加入下面的语句:

$sql = "insert into comment (nid,username,email,info,ip,site,submit_time) values ('$nid','$username','$email','$info','$ip','$site',NOW())";

$result = mysql_query($sql);

setcookie("CookieNAME",mysql_insert_id(),time()+94608000,"/"); /* 三年后 cookie 才会失效 */

$sql = "insert into comment (nid,username,email,info,ip,site,submit_time) values ('$nid','$username','$email','$info','$ip','$site',NOW())";

$result = mysql_query($sql);

setcookie("CookieNAME",mysql_insert_id(),time()+94608000,"/"); /* 三年后 cookie 才会失效 */

把刚添加进数据库中的记录id保存在CookieNAME中,保存时间为三年。

上面是写入cookie,取出直接用$CookieNAME。可是取出id没什么用,我们需要的是用户的信息,那么就执行一下数据库查询操作就行了:

if(!empty($CookieNAME)){

$sql = "select username,email,site from comment where id=$CookieNAME";

$rss = mysql_query($sql);

$rs= mysql_fetch_array($rss);

}

if(!empty($CookieNAME)){

$sql = "select username,email,site from comment where id=$CookieNAME";

$rss = mysql_query($sql);

$rs= mysql_fetch_array($rss);

}

然后把这些得到的信息填到上面的form表单中就完成了“记住”。

可是用户不一定都希望被“记住”,那么就要增加一个复选框供用户选择。表单中在按钮的右边添加:

记住我,下次回复时不用重新输入个人信息

记住我,下次回复时不用重新输入个人信息

post.php处理时只需要简单的判断复选框有没有被选中即可:

if(!empty($_POST["chkRemember"])){//如果复选框选中,设置cookie

setcookie("CookieNAME",mysql_insert_id(),time()+94608000,"/"); /* 三年后 cookie 才会失效 */

}

if(!empty($_POST["chkRemember"])){//如果复选框选中,设置cookie

setcookie("CookieNAME",mysql_insert_id(),time()+94608000,"/"); /* 三年后 cookie 才会失效 */

}

整个过程就是这样的,登录框和这个实现起来差不多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现记住密码或者自动登录功能,可以使用cookie或session来存储用户信息。具体实现步骤如下: 1. 在登录页面添加一个复选框,让用户选择是否记住密码或自动登录。 2. 在后台处理登录验证时,如果用户选择了记住密码或自动登录,就在cookie或session中保存用户信息,例如用户名密码或者用户ID等。 3. 在用户下次访问该网站时,先检查cookie或session中是否存在用户信息,如果存在,则直接跳转到用户主页,实现自动登录;如果不存在,则跳转到登录页面,让用户重新登录。 以下是一个使用cookie实现记住密码或自动登录的示例: ```jsp <% // 处理登录请求 String username = request.getParameter("username"); String password = request.getParameter("password"); String remember = request.getParameter("remember"); // 验证用户名密码是否正确 boolean isValidUser = validateUser(username, password); if (isValidUser) { // 如果用户选择了记住密码或自动登录,就创建一个cookie保存用户信息 if ("on".equals(remember)) { Cookie cookie = new Cookie("userInfo", username + ":" + password); cookie.setMaxAge(7 * 24 * 60 * 60); // 设置cookie有效期为7天 response.addCookie(cookie); } // 将用户信息保存到session中 HttpSession session = request.getSession(); session.setAttribute("userInfo", username); // 跳转到用户主页 response.sendRedirect("main.jsp"); } else { // 登录失败,返回登录页面 response.sendRedirect("login.jsp?error=1"); } %> ``` 在用户下次访问网站时,可以在页面加载时检查cookie中是否存在用户信息,如果存在,则直接跳转到用户主页: ```jsp <% // 检查cookie中是否存在用户信息 String userInfo = null; Cookie[] cookies = request.getCookies(); if (cookies != null) { for (Cookie cookie : cookies) { if ("userInfo".equals(cookie.getName())) { userInfo = cookie.getValue(); break; } } } // 如果存在用户信息,则直接跳转到用户主页 if (userInfo != null) { String[] parts = userInfo.split(":"); String username = parts[0]; String password = parts[1]; boolean isValidUser = validateUser(username, password); if (isValidUser) { HttpSession session = request.getSession(); session.setAttribute("userInfo", username); response.sendRedirect("main.jsp"); } } %> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值