博客列表 >PDO后续学习及会话登录学习——php第九期线上班

PDO后续学习及会话登录学习——php第九期线上班

木易
木易原创
2019年12月02日 12:28:33665浏览

1. SESSION 登录实战

pdo文件

  1. <?php
  2. $db=[
  3. 'type'=>'mysql',
  4. 'host'=>'localhost',
  5. 'dbname'=>'demo',
  6. 'username'=>'root',
  7. 'password'=>'root',
  8. 'port' =>3306
  9. ];
  10. $dsn = $db['type'].':host='.$db['host'].';dbname='.$db['dbname'];
  11. try{
  12. $pdo = new PDO($dsn,$db['username'],$db['password']);
  13. }catch(PDOException $e){
  14. die('连接失败:'.$e->getMessage());
  15. }

派发器文件

  1. <?php
  2. require __DIR__.'/pdo.php';
  3. session_start();
  4. $a = isset($_GET['a'])?$_GET['a']:'login';
  5. //防止用户传的值不受控制
  6. $action = htmlentities((strtolower(trim($action))));
  7. //print_r($a);
  8. switch($a){
  9. // 登录页面
  10. case'login':
  11. include __DIR__.'/login.php';
  12. break;
  13. // 验证登录
  14. case'check':
  15. include __DIR__.'/check.php';
  16. break;
  17. // 退出登录
  18. case'logout':
  19. include __DIR__.'/logout.php';
  20. break;
  21. // 默认操作
  22. default:
  23. include __DIR__.'/index.php';
  24. break;
  25. }

check文件

  1. <?php
  2. if(!empty($_POST['phone'])&& !empty($_POST['password'])){
  3. $phone = $_POST['phone'];
  4. $pwd = $_POST['password'];
  5. $sql ='SELECT * FROM `user` WHERE `phone`=:phone AND `pwd`=:pwd ';
  6. $stmt = $pdo->prepare($sql);
  7. $stmt -> execute(['phone'=>$phone,'pwd'=>$pwd]);
  8. $user= $stmt -> fetch(PDO::FETCH_ASSOC);
  9. print_r( $user);
  10. if (empty($user)){
  11. echo'未找到用户';
  12. }else{
  13. $_SESSION['name']= $user['name'];}
  14. echo'<script>alert("登录成功");location.assign("index.php");</script>';
  15. }
  16. else{
  17. echo '未填写手机号或密码错误 ';
  18. }

退出文件

  1. <?php
  2. session_destroy();
  3. echo'<script>alert("退出成功");location.assign("index.php");</script>';

主页文件

  1. <?php
  2. session_start();
  3. if(isset($_SESSION['name'])){
  4. echo'已登录';
  5. echo'<br>';
  6. echo'<a href="dispatch.php?a=logout">退出</a>';
  7. }else{
  8. echo'<a href="dispatch.php?a=login">未登录</a>';
  9. }
  10. ?>

登录页面

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>登录</title>
  6. </head>
  7. <body>
  8. <h3>用户登录</h3>
  9. <form action="dispatch.php?a=check" method="post">
  10. <p>
  11. <label for="phone">手机号</label>
  12. <input type="phone" name="phone" id="phone">
  13. </p>
  14. <p>
  15. <label for="password">密码</label>
  16. <input type="password" name="password" id="password">
  17. </p>
  18. <p>
  19. <button>提交</button>
  20. </p>
  21. </form>
  22. </body>
  23. </html>
  24. <?php

2. 练熟pdo操作,增删查改(手写)

![]

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议