PHP案例实现用户登录

原文链接

需求分析:

在Web应用开发中,经常需要实现用户登录的功能。假设一个名为username的用户,当该用户进入网站首页时,如果还未登录,则页面会提示登录,用户输入登录信息进行验证,验证通过进入用户中心,否则显示用户名或密码错误,重新登录。登录成功后,用户还可以单击“注销”,回到登录页面。

程序设计流程图:

login.html


   
   
  1. <!DOCUMENT html PUBLIC-//W3C//DTD XHTML 1.0 Transitional//EN” “http
  2. :// www.w3.org/ TR/ xhtml1/ DTD/ xhtml1-transitional.dtd“>
  3. <html xmlns=“http://www.w3.org/1999/xhtml” xml:lang=“en”>
  4. <head>
  5. <meta http-equiv=“Content-Type” content=“text/html;charset=UTF-8”/>
  6. <title>会员登录 </title>
  7. <style type=“text/css”>
  8. ul li{ margin: 0; padding: 0;}
  9. form{ margin: 40px 30px 0;}
  10. form li{ list-style:none; padding: 5px 0;}
  11. form li label{ float:left; width: 70px; text-align:right}
  12. form li a{ font-size: 12px; color: #999; text-decoration:none}
  13. .login_btn{ border:none; background: #01A4F1; color: #fff; font-size: 14px; font-weight:bold; height: 28px; line-height: 28px; padding: 0 10px; cursor:pointer;}
  14. form li img{ vertical-align:top}
  15. </style>
  16. </head>
  17. <body>
  18. <form action=“login.php” method=“POST”>
  19. <fieldset>
  20. <legend>用户登录 </legend>
  21. <ul>
  22. <li>
  23. <label for“”>用户名: </label>
  24. <input type=“text” name=“username”/>
  25. </li>
  26. <li>
  27. <label for“”>密码: </label>
  28. <input type=“password” name=“password”/>
  29. </li>
  30. <li>
  31. <label for“”>  </label>
  32. <input type=“checkbox” name=“remember” value=“yes”/>7天内自动登录
  33. </li>
  34. <li>
  35. <label for“”>  </label>
  36. <input type=“submit” name=“login” value=“登录” class=“login_btn”/>
  37. </li>
  38. </ul>
  39. </fieldset>
  40. </body>
  41. </html>
login.php


   
   
  1. <?php
  2. header( "Content-Type:text/html;charset=utf-8");
  3. session_start();
  4. if( isset($_POST[<span class="hljs-string">'login'</span>]))</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> $username = trim($_POST[<span class="hljs-string">'username'</span>]);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> $password = trim($_POST[<span class="hljs-string">'password'</span>]);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">if</span>(($username==<span class="hljs-string">''</span>)||($password==<span class="hljs-string">''</span>))</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> header(<span class="hljs-string">'refresh:3;url=login.html'</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">echo</span> <span class="hljs-string">"改用户名或密码不能为空,3秒后跳转到登录页面"</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">exit</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(($username!=<span class="hljs-string">'username'</span>)||($password!=<span class="hljs-string">'password'</span>))</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-comment">//用户名或密码错误</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> header(<span class="hljs-string">'refresh:3;url=login.html'</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">echo</span> <span class="hljs-string">"用户名或密码错误,3秒后跳转到登录页面"</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">exit</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(($username==<span class="hljs-string">'username'</span>)&amp;&amp;($password==<span class="hljs-string">'password'</span>))</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-comment">//登录成功将信息保存到session中</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> $_SESSION[<span class="hljs-string">'username'</span>]=$username;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> $_SESSION[<span class="hljs-string">'islogin'</span>]=<span class="hljs-number">1</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-comment">//如果勾选7天内自动保存,则将其保存到cookie</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">if</span>($_POST[<span class="hljs-string">'remember'</span>]==<span class="hljs-string">"yes"</span>)</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="28"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="29"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> setcookie(<span class="hljs-string">"username"</span>,$username,time()+<span class="hljs-number">7</span>*<span class="hljs-number">24</span>*<span class="hljs-number">60</span>*<span class="hljs-number">60</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="30"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> setcookie(<span class="hljs-string">"code"</span>,md5($username.md5($password)),time()+<span class="hljs-number">7</span>*<span class="hljs-number">24</span>*<span class="hljs-number">60</span>*<span class="hljs-number">60</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="31"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="32"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">else</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="33"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="34"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> setcookie(<span class="hljs-string">"username"</span>,<span class="hljs-string">''</span>,time()<span class="hljs-number">-1</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="35"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> setcookie(<span class="hljs-string">"code"</span>,<span class="hljs-string">''</span>,time()<span class="hljs-number">-1</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="36"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="37"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-comment">//跳转到用户首页</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="38"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> header(<span class="hljs-string">'refresh:3;url=index.php'</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="39"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="40"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="41"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-meta">?&gt;</span></div></div></li></ol></code><div class="hljs-button" data-title="复制"></div></pre>index.php<br><pre οnclick="hljs.copyCode(event)"><code class="language-php hljs"><ol class="hljs-ln"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-meta">&lt;?php</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> header(<span class="hljs-string">"Content-Type:text/html;charset=utf-8"</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> session_start();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-comment">//首先判断Cookie是否有记住用户信息</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">if</span>(<span class="hljs-keyword">isset</span>($_COOKIE[ 'username']))
  5. {
  6. $_SESSION[<span class="hljs-string">'username'</span>]=$_COOKIE[ 'username'];
  7. $_SESSION[<span class="hljs-string">'islogin'</span>]=<span class="hljs-number">1</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">if</span>(<span class="hljs-keyword">isset</span>($_SESSION[ 'islogin']))
  8. {
  9. //已经登录
  10. echo $_SESSION[ 'username']. ":你好,欢迎进入个人中心!<br/>";
  11. echo "<a href='logout.php'>注销</a>";
  12. }
  13. else
  14. { //为登录
  15. echo "你还未登录,请<a href='login.html'>登录</a>";
  16. }
  17. ?>

logout.php


   
   
  1. <?php
  2. header( "Content-Type:text/html;charset=utf-8");
  3. session_start();
  4. //清除session
  5. $username=$_SESSION[ 'username'];
  6. $_SESSION=<span class="hljs-keyword">array</span>();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> session_destroy();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-comment">//清除cookie</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> setcookie(<span class="hljs-string">"username"</span>,<span class="hljs-string">''</span>,time()<span class="hljs-number">-1</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> setcookie(<span class="hljs-string">"code"</span>,<span class="hljs-string">''</span>,time()<span class="hljs-number">-1</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-keyword">echo</span> <span class="hljs-string">"$username,欢迎下次光临";
  7. echo "重新<a href='login.html'>登录</a>";
  8. ?>

登录界面:



            </div>
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值