php+cookie session用户登录

  • php和html混编

test.php

<?php
if(isset($_SESSION["name"])){
    header("location:index.php");
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

</body>
</html>
  • login.php
<?php
// session_start() 之前不能有任何内容输出
session_start();


// // 如果用户未登录,我们就设置cookie信息
// // isset判断一个变量是否已定义, 如果已定义就返回true,否则返回false
// if(!isset($_COOKIE['name'])){

//     // 为保证账号安全,通过 md5 算法加密账号密码信息返回给浏览器。
//     // md5摘要算法的特性如下:
//     //   1. 同一个内容加密后,只会得到同一个与之对应的字符串
//     //   2. 无法通过 加密后的结果  逆推出原始内容
//     // setcookie("name", md5("admin"."admin888"));
//     echo "登录成功";
// } else {
//     echo "已经登录";
// }

if(!isset($_SESSION['name'])){
    $_SESSION["name"] = "admin";
    $_SESSION["age"] = 18;
    echo "登录成功";
} else {
    echo "已经登录";
}
  • index.php
<?php
// session_start() 之前不能有任何内容输出
session_start();

// // 如果设置了cookie信息
// // 并且获取到,通过验证是合法的cookie
// if(isset($_COOKIE['name']) && $_COOKIE['name']==md5("admin"."admin888")){
//     echo "账号已登录";
// }else{
//     // 页面跳转到 login.php
//     header("location:login.php");
// }

if(isset($_SESSION['name'])){
    echo "欢迎 {$_SESSION['name']} 登录";
}else{
    // 页面跳转到 login.php
    header("location:login.php");
}