PHP-课堂⑮

版权声明:本文为博主原创文章,转载时请标明出处 https://blog.csdn.net/weixin_41056807/article/details/84853139

cookie学习

想要完成用户登入一次之后,下次再登入时候不用输入密码,直接进入页面。

学习这个之前要知道如何设置cookie文件,在哪查看cookie文件

使用IE查看cookie文件:

首先我们要写两个文件和session一样他有设置和获取
在这里插入图片描述

<?php
setcookie("name","Alice",time()+3600);
?>

在这里插入图片描述
打印cookie文件

<?php
var_dump($_COOKIE);
?>

在浏览器中找到两个文件testcookie.php是空白内容,getcookie.php是cookie文件

在这里插入图片描述

工具—Internet选项—设置—查看文件—搜索框输入cookie筛选信息——

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

右键打开文件:Cookies are no longer stored in files. Please use InternetCookie APIs to access cookies.
在这里插入图片描述

我们把在ie下的操作在Chrome中找到cookie
在这里插入图片描述

自定义及控制—设置—搜索cookie—内容设置—Cookie—输入localhost
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


记住密码/自动登录

在这里插入图片描述

在这里插入图片描述

name=rm

在doAdminLogin.php中判断是否选择rm这个按钮

//    登入成功并选中rememberme的复选框
    if (isset($_POST["rm"])) {
//        $c=$_POST["rm"];
        //echo $c;
//    exit;

设置cookie生效的时间

setcookie("flag","ok",time()+300);//300s后失效
setcookie("admin", $_SESSION["admin"],time()+300);//300s后失效
setcookie("adminid", $_SESSION["adminid"],time()+300);//300s后失效

在index.php需要找到cookie(设置flag标志)

<?php
    if (isset($_COOKIE["flag"])){
        session_start();
        $_SESSION["admin"]=$_COOKIE["admin"];//存入用户名session
        $_SESSION["adminid"]=$_COOKIE["adminid"];//后面是数据库中的名字

        header("location:welcome.php");
    }

?>

完整代码
在这里插入图片描述

index.php

<?php
    if (isset($_COOKIE["flag"])){
        session_start();
        $_SESSION["admin"]=$_COOKIE["admin"];//存入用户名session
        $_SESSION["adminid"]=$_COOKIE["adminid"];//后面是数据库中的名字

        header("location:welcome.php");
    }

?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>管理员登录</title>

    <!-- Bootstrap core CSS -->
    <link href="assets/css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="assets/signin/signin.css" rel="stylesheet">

    <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
    <!--[if lt IE 9]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
    <script src="assets/signin/ie-emulation-modes-warning.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
      <script src="http://cdn.bootcss.com/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

  <body>

    <div class="container">

      <form class="form-signin" method="post" action="doAdminLogin.php" role="form">
        <h2 class="form-signin-heading">欢迎管理员登录</h2>
        <input type="text" name="adminname" class="form-control" placeholder="Administrator name" required autofocus>
        <input type="password" name="password" class="form-control" placeholder="Password" required>
        <div class="checkbox">
<!--            某次成功登录时选择Remember me-->
<!--            下次再登入就不需要显示登录页,直接进入后台()当前电脑记录某些关于这个网站的信息——cookie类似记事本文本文件-->
<!--            cookie服务器在客户端保存的一个文本文件,记录信息-->
<!--            setcookie("名",值",保存时间单位秒)-->
<!--            time()返回当前离1970-1-1的秒数-->
<!--            setcookie("name","Mike",time()+3600)-->
          <label>
            <input type="checkbox" value="remember-me" name="rm"> Remember me
          </label>
        </div>
        <input  class="btn btn-lg btn-primary btn-block" type="submit" value="登录">
      </form>
        <?php
        if (isset($_GET["err"])){
            echo "<h2 style='color: brown;margin: 0 40%'>{$_GET["err"]}</h2>";}
        ?>
    </div> <!-- /container -->


    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="assets/signin/ie10-viewport-bug-workaround.js"></script>
  </body>
</html>

doAdminLogin.php

<?php
session_start();
$a=$_POST["adminname"];//admin
$b=$_POST["password"];//psw


$sql="select * from admins WHERE adminname='$a' AND password=md5('$b')";
//在admins表中添加数据在数据库中
require ("inc_admin.php");
$con = connect();
$rs=mysqli_query($con,$sql);

if (mysqli_num_rows($rs)){
    $row=mysqli_fetch_array($rs);
    $_SESSION["admin"]=$a;//存入用户名session
    $_SESSION["adminid"]=$row["adminid"];//后面是数据库中的名字

//    登入成功并选中rememberme的复选框
    if (isset($_POST["rm"])) {
//        $c=$_POST["rm"];
        //echo $c;
//    exit;
        setcookie("flag","ok",time()+300);//300s后失效
        setcookie("admin", $_SESSION["admin"],time()+300);//300s后失效
        setcookie("adminid", $_SESSION["adminid"],time()+300);//300s后失效
    }
    header("location:welcome.php");
}else{
    header("location:index.php?err=用户名密码错误!");//查看index是登入页,传的参数是输入错误信息才出现
}
?>

在doVideoAdd.php文件中增加
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

$videoname =htmlspecialchars($_POST["videoname"]);
$address =htmlspecialchars($_POST["address"]);
$videotype =$_POST["videotype"];
$videointro =htmlspecialchars($_POST["videointro"]);

在这里插入图片描述
以管理员身份进入之后现在关闭浏览器再次http://localhost/neuvideo456/admin/
仍然进入
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41056807/article/details/84853139