Blogger Information
Blog 55
fans 0
comment 0
visits 50475
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP-SESSION用户登入与验证-0831
Bean_sproul
Original
689 people have browsed it

二、session:

当程序需要为某个用户端的请求创建一个session时,服务器首先检查这个用户端的请求里是否已包含了一个session标识
(称为session id),如果已包含则说明以前已经为此用户端创建过session,服务器就按照session id把这个session检索出来
使用(检索不到,会新建一个),如果用户端请求不包含session id,则为此用户端创建一个session并且生成一个与此session相

引用上篇cookie的例子

public部分都是一样的,主要是在验证用户登入采用session

入口文件index.php

实例

<?php
//启动会话
session_start();

$page_title = '我是首页';
//导入页面的公共头部
include 'inc/header.php';

echo '<h2 style="color:red">我是首页</h2>';
//判断用户是否登录?
if (isset($_SESSION['id']) && basename($_SERVER['PHP_SELF']) != 'logout.php') {
    echo '<a href="logout.php">退出</a>';
} else {
    echo '<a href="login.php">登录</a>';
}

//导入页面的公共底部
include 'inc/footer.php';

运行实例 »

点击 "运行实例" 按钮查看在线实例

登入判断login.php+登入表单login_page.php


实例

<?php
//启动会话
session_start();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    //加载函数库
    require 'inc/function.php';

    //连接数据库
    require 'inc/connect.php';

    //验证登录
    list($check, $data) = check_login($dbc,$_POST['email'],$_POST['password']);

    //检测是否验证通过
    if ($check) {
        //设置session

        $_SESSION['id'] = $data['id'];
        $_SESSION['name'] = $data['name'];
        //跳转
        redirect_user('loggedin.php');
    } else {
        $errors = $data;
    }

    //关闭
    mysqli_close($dbc);
}

include 'login_page.php';

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
$page_title = '用户登录';
include 'inc/header.php';

//错误 信息显示
if (isset($errors) && !empty($errors)) {
    $errors_msg = '<p style="color:red">';
    foreach ($errors as $msg) {
        $errors_msg .= $msg .'<br>';
    }
    echo $errors_msg .'</p>';
}

?>
    <h2 style="color:red">用户登录</h2>
    <form action="login.php" method="post">
        <p>
            <label for="email">邮箱:</label>
            <input type="email" name="email" id="email" value="<?php echo isset($_POST['email'])?$_POST['email']:'' ?>">
        </p>

        <p>
            <label for="password">密码:</label>
            <input type="password" name="password" id="password" value="<?php echo isset($_POST['password'])?$_POST['password']:'' ?>">
        </p>

        <p>
            <button type="submit" name="submit" id="submit">登录</button>
        </p>
    </form>

<?php include 'inc/footer.php'?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


登入成功展现主体内容logedin.php


实例

<?php
//启动会话
session_start();
//登录成功页面

//判断用户是否登录?
if (!isset($_SESSION['id'])) {
    require 'inc/function.php';
    redirect_user();
}

$page_title = '登录成功';
//导入页面的公共头部
include 'inc/header.php';

//heredoc
echo <<< "WELCOME"
<h2 style="color:red">登录成功</h2>
<p>欢迎您: 亲爱的 {$_SESSION['name']}</p>
<p><a href="logout.php">退出</a></p>
WELCOME;



//导入页面的公共底部
include 'inc/footer.php';

运行实例 »

点击 "运行实例" 按钮查看在线实例

退出操作logout.php

实例

<?php
//启动会话
session_start();
//退出登录页面

//判断用户是否登录?
if (!isset($_SESSION['id'])) {
    require 'inc/function.php';
    redirect_user();
} else {

    session_destroy(); //服务器上的session信息消除
    setcookie('PHPSESSID','',time()-3600);
}


$page_title = '退出登录';
//导入页面的公共头部
include 'inc/header.php';

//heredoc
echo <<< "WELCOME"
<h2 style="color:red">退出成功</h2>

<p><a href="login.php">登录</a></p>
WELCOME;



//导入页面的公共底部
include 'inc/footer.php';

运行实例 »

点击 "运行实例" 按钮查看在线实例

 手写cookie与session

QQ截图20180907161207.png

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post