当前位置:首页 » 编程语言 » php实现登陆

php实现登陆

发布时间: 2023-02-11 16:57:06

⑴ 请教用php实现自动登录问题

1、在登录页面中添加一个复选框,让用户选择是否愿意在一定时间内实现自动登陆,例如两周。

  • 代码:

<input type="checkbox" name="autologin">两周内自动登录

2、在负责处理登录过程的Servlet中,判断用户是否选择了该复选框。如果是,则执行这两个操作:向用户发送两个Cookie,以及向数据库写入一条相应的记录。

  • 代码:


Cookie ckUsername, ckSessionid;

if (autologin.equals("on")) {

// 如果用户选择了“两周内自动登录”,则向用户发送两个cookie。

// 一个cookie记录用户名,另一个记录唯一的验证码,

// 并将此验证码写入数据库,以备用户返回时查询。(防止伪造cookie)

ckUsername = new Cookie("autoLoginUser", user.getUsername()); // user是代表用户的bean

ckUsername.setMaxAge(60 * 60 * 24 * 14); //设置Cookie有效期为14天

res.addCookie(ckUsername);

sessionid = session.getId(); // 取得当前的session id

ckSessionid = new Cookie("sessionid", sessionid);

ckSessionid.setMaxAge(60 * 60 * 24 * 14);

res.addCookie(ckSessionid);

// 在数据库中插入相应记录

userSessionDAO.insertUserSession(user, sessionid);

}

3、实现自动登录。因为用户下次访问的时候,可能直接访问网站的任何页面(例如通过收藏夹),而不一定是首页或者登录页面,所以我们需要用Filter拦截到达该网站的所有请求,并执行自动登录。

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {

HttpServletRequest request = (HttpServletRequest) req;

HttpSession session = request.getSession(true);

String username;

String sessionid; // 此sessionid是上次用户登录时保存于用户端的识别码,用于用户后续访问的自动登录。不是本次访问的session id。

Cookie[] cookies;

CookieManager cm = new CookieManager(); // CookieManager是一个自定义的类,用于从Cookie数组中查找并返回指定名称的Cookie值。

boolean isAutoLogin;

// 如果session中没有user对象,则创建一个。

User user = (User) session.getAttribute("user");

if (user == null) {

user = new User(); // 此时user中的username属性为"",表示用户未登录。

}

// 如果user对象的username为"",表示用户未登录。则执行自动登录过程。

// 否则不自动登录。

if (user.getUsername().equals("")) {

// 检查用户浏览器是否发送了上次登录的用户名和sessionid,

// 如果是,则为用户自动登陆。

cookies = request.getCookies();

username = cm.getCookieValue(cookies, "autoLoginUser");

sessionid = cm.getCookieValue(cookies, "sessionid");

isAutoLogin = userSessionDAO.getAutoLoginState(username, sessionid); // 如果在数据库中找到了相应记录,则说明可以自动登录。

if (isAutoLogin) {

user.setUsername(username);

user.setNickname(DBUtil.getNickName(username));

session.setAttribute("user", user); // 将user bean添加到session中。

}

}

chain.doFilter(req, resp);

}

⑵ php登陆页面完整代码

PHP登陆后跳转到登陆前页面,利用$_SERVER全局变量可以实现这个功能,下面有个不错的示例,希望对大家有所帮助
最近手上一个小项目让我接触到PHP编程,简单的登陆功能已经OK。可是在实际使用的时候发现一个问题:用户A发送一个链接给用户B,B打开时页面提示登陆,可是登陆成功后,却跳转到了首页,而并不是A发送的链接。为了有更好的用户体验,B登陆成功后应该自动跳转到登陆前的链接。查了PHP帮助手册,利用$_SERVER全局变量可以实现这个功能。 $_SERVER是PHP的一个超全局变量,关于$_SERVER变量的详细解释可以参考:http://www.php.net/manual/zh/reserved.variables.server.php 具体实现方法为:在提示用户登录的同时,在session或者cookie中记录下请求页面的URL;登录验证成功后在跳转回该URL。 checklogin.php 代码如下: session_start(); if (!isset ($_SESSION['login_ok'])) { echo "<script language=javascript>alert ('要访问的页面需要先登录。');</script>"; $_SESSION['userurl'] = $_SERVER['REQUEST_URI']; echo '<script language=javascript>window.location.href="login.php"</script>'; } login.php 代码如下: session_start(); //此处省略了账号密码验证代码,验证OK再执行下面代码 if (isset ($_SESSION['userurl'])) { //会话中有要跳转的页面 $url = $_SESSION['userurl']; } else { //没有要跳转的页面,则转到首页 $url = "home.php"; } //0.5s后跳转 echo "<meta http-equiv="refresh" content="0.5;url=$url">";

⑶ php如何实现登陆后返回原页面

在跳转到登录页面前要将访客访问的页面的url作为参数传递过去,登录验证后,授予访问权限之后跳转到该url指定的页面。

比如登录前的url为:openphp.html 当访客访问时,点击无权限,跳转到登录页面的地址就为login.php?url=openphp.html,这样在登录时就可以用GET方式获取该参数 openphp.html,登录验证成功后跳转到openphp.html 这个页面就可以了。

⑷ php登录系统怎么做

简单地说,登录系统,就是用php程序获取等表单数据,并记录相关数据进入数据库,设置相关数据写入session,记录登录状态后,进入登陆后界面就可以了
当然还需要很多细节的知识,需要仔细了解了,可以从网上下载一个简单登录系统,研究研究吧!

⑸ PHP来实现网站的注册和登录

说明: 对于小白学习php还是先下一个phpstudy吧 比较便捷许多且自带mysql

1、打开phpstudy并启动

2、打开mysql管理器并启动MYSQL-front 如图所示

1、建立一个名为register的html文件

2、建立一个名为registApi的php文件并刚建立的html相连

-拿到用户的字段和密码

-查询是否有重名现象(注:可以在php中嵌入html语句但一般写在外面如该图末尾所示)

-根据返回值判断是否成功

1、返回登录页面

2、创建一个名为loginApi的php文件并与刚刚的html相连接

3、若用户登录成功返回一个成功的界面所以创建一个success的html

⑹ 怎么用php模拟登陆

php 模拟登陆,可以使用 curl,以下是示例代码:


$post="name=2&userType=1&passwd=asdf&loginType=1&rand=6836&imageField.x=25&imageField.y=7";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,"http://网址/login.action");
curl_setopt($ch,CURLOPT_HEADER,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_jar);
$result=curl_exec($ch);
curl_close($ch);
热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:752
制作脚本网站 发布:2025-10-20 08:17:34 浏览:1012
python中的init方法 发布:2025-10-20 08:17:33 浏览:719
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:879
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:775
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1127
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:351
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:229
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:912
python股票数据获取 发布:2025-10-20 07:39:44 浏览:876