当前位置:首页 > PHP教程 > php应用 > 列表

php实现简单的登陆功能(附源码)

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-24 08:30:37 浏览: 评论:0 

在一个网站中登陆功能是必不可少的,本文简单的讲述了在php中如何实现登陆功能。

登录界面:

php实现简单的登陆功能(附源码)

html代码(login.html):

  1. <form action="login.php" method="post"> 
  2.  
  3. <fieldset> 
  4.  
  5. <legend>用户登录</legend> 
  6.  
  7. <ul> 
  8.  
  9. <li> 
  10.  
  11. <label>用户名:</label> 
  12.  
  13. <input type="text" name="username"> 
  14.  
  15. </li> 
  16.  
  17. <li> 
  18.  
  19. <label>密   码:</label> 
  20.  
  21. <input type="password" name="password"> 
  22.  
  23. </li> 
  24.  
  25. <li> 
  26.  
  27. <label> </label> 
  28.  
  29. <input type="checkbox" name="remember" value="yes">7天内自动登录 
  30.  
  31. </li> 
  32.  
  33. <li> 
  34.  
  35. <label> </label> 
  36.  
  37. <input type="submit" name="login" value="登录"> 
  38.  
  39. </li> 
  40.  
  41. </ul> 
  42.  
  43. </fieldset> 
  44.  
  45. </form> 

login.php:(登陆处理页)

  1. <?php  
  2.  
  3. header('Content-type:text/html; charset=utf-8'); 
  4.  
  5. // 开启Session 
  6.  
  7. session_start(); 
  8.  
  9.    
  10.  
  11. // 处理用户登录信息 
  12.  
  13. if (isset($_POST['login'])) { 
  14.  
  15. # 接收用户的登录信息 
  16.  
  17. $username = trim($_POST['username']); 
  18.  
  19. $password = trim($_POST['password']); 
  20.  
  21. // 判断提交的登录信息 
  22.  
  23. if (($username == '') || ($password == '')) { 
  24.  
  25. // 若为空,视为未填写,提示错误,并3秒后返回登录界面 
  26.  
  27. header('refresh:3; url=login.html'); 
  28.  
  29. echo "用户名或密码不能为空,系统将在3秒后跳转到登录界面,请重新填写登录信息!"
  30.  
  31. exit
  32.  
  33. elseif (($username != 'username') || ($password != 'password')) { 
  34.  
  35. # 用户名或密码错误,同空的处理方式 
  36.  
  37. header('refresh:3; url=login.html'); 
  38.  
  39. echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!"
  40.  
  41. exit
  42.  
  43. elseif (($username = 'username') && ($password = 'password')) { 
  44.  
  45. # 用户名和密码都正确,将用户信息存到Session中 
  46.  
  47. $_SESSION['username'] = $username
  48.  
  49. $_SESSION['islogin'] = 1; 
  50.  
  51. // 若勾选7天内自动登录,则将其保存到Cookie并设置保留7天 
  52.  
  53. if ($_POST['remember'] == "yes") { 
  54.  
  55. setcookie('username'$username, time()+7*24*60*60); 
  56.  
  57. setcookie('code', md5($username.md5($password)), time()+7*24*60*60); 
  58.  
  59. else { 
  60.  
  61. // 没有勾选则删除Cookie 
  62.  
  63. setcookie('username''', time()-999); 
  64.  
  65. setcookie('code''', time()-999); 
  66.  
  67.  
  68. // 处理完附加项后跳转到登录成功的首页 
  69.  
  70. header('location:index.php'); 
  71.  
  72.  
  73.  
  74.  ?> 

index.php(默认主页):

  1. <?php  
  2.  
  3. header('Content-type:text/html; charset=utf-8'); 
  4.  
  5. // 开启Session 
  6.  
  7. session_start(); 
  8.  
  9.    
  10.  
  11. // 首先判断Cookie是否有记住了用户信息 
  12.  
  13. if (isset($_COOKIE['username'])) { 
  14.  
  15. # 若记住了用户信息,则直接传给Session 
  16.  
  17. $_SESSION['username'] = $_COOKIE['username']; 
  18.  
  19. $_SESSION['islogin'] = 1; 
  20.  
  21.  
  22. if (isset($_SESSION['islogin'])) { 
  23.  
  24. // 若已经登录 
  25.  
  26. echo "你好! ".$_SESSION['username'].' ,欢迎来到个人中心!<br>'
  27.  
  28. echo "<a href='logout.php'>注销</a>"
  29.  
  30. else { 
  31.  
  32. // 若没有登录 
  33.  
  34. echo "您还没有登录,请<a href='login.html'>登录</a>"
  35.  
  36.  
  37.  ?> 

logout.php注销页

  1. <?php  
  2.  
  3. header('Content-type:text/html; charset=utf-8'); 
  4.  
  5. // 注销后的操作 
  6.  
  7. session_start(); 
  8.  
  9. // 清除Session 
  10.  
  11. $username = $_SESSION['username'];  //用于后面的提示信息 
  12.  
  13. $_SESSION = array(); 
  14.  
  15. session_destroy(); 
  16.  
  17.    
  18.  
  19. // 清除Cookie 
  20.  
  21. setcookie('username''', time()-99); 
  22.  
  23. setcookie('code''', time()-99); 
  24.  
  25.    
  26.  
  27. // 提示信息 
  28.  
  29. echo "欢迎下次光临, ".$username.'<br>'
  30.  
  31. echo "<a href='login.html'>重新登录</a>"
  32.  
  33.    
  34.  
  35.  ?> 

登录成功的状态:

php实现简单的登陆功能(附源码)

若勾选7天内自动登录,则会将登录信息通过Cookie和Session技术保存在本地Cookie文件中,7天内会自动登录。

注销页面:

php实现简单的登陆功能(附源码)

登录错误的几种情况都做了处理:

php实现简单的登陆功能(附源码)

Tags: php登陆功能

分享到: