Blogger Information
Blog 38
fans 0
comment 0
visits 25272
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
第九课—cookie和session 2018年8月31日 20时00分
空白
Original
829 people have browsed it

cookie

实例

<?php
// 公共函数
// 用户登录成功后跳转到首页
function jump_index($page = 'index.php')
{
	// 默认URL
	// $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
	$url = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);

	// 去掉url右边的斜线
	$url = rtrim($url, '/\\');

	// 添加上当前脚本名称
	$url .= '/'.$page;

	//跳转到指定地址
    header('Location:' .$url);
    exit();
}

// 验证用户登录
function login($sql, $email, $password)
{
	// 建立一个保持错误信息的数组
	$errors = [];

	// 邮箱验证
	if(empty($email)){
		$errors = '邮箱不能为空!';
	} else {
		// 去掉特殊字符
		$e = mysqli_real_escape_string($sql,trim($email));
	}

	// 密码验证
	if(empty($password)){
		$errors = '密码不能为空!';
	} else {
		// 去掉特殊字符
		$p = mysqli_real_escape_string($sql,trim($password));
	}

	// 到数据库中进行数据验证
	if (empty($errors)) {
		// 根据邮箱和密码进行验证,并返回id, name
		$que = "SELECT `id`,'name' FROM `login` WHERE `email`='$e' AND `password`='$p'";

		// 执行查询
		$res = mysqli_query($sql, $que);

		if (mysqli_num_rows($res) == 1) {
           $row = mysqli_fetch_array($res, MYSQLI_ASSOC);
            //返回查询结果
            return [true, $row];
        } else {
            $errors[] = '邮箱或密码不正确,请重新输入';
        }

        return [false, $errors];
	}
}

运行实例 »

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

实例

<?php
//登录成功页面

//判断用户是否登录?
if (!isset($_COOKIE['id'])) {
    require 'common/fun.php';
    jump_index();
}

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

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



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

运行实例 »

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

k1.pngk2.pngk3.pngk4.png

session

实例

<?php
// 公共函数
// 用户登录成功后跳转到首页
function jump_index($page = 'index.php')
{
	// 默认URL
	// $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
	$url = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);

	// 去掉url右边的斜线
	$url = rtrim($url, '/\\');

	// 添加上当前脚本名称
	$url .= '/'.$page;

	//跳转到指定地址
    header('Location:' .$url);
    exit();
}

// 验证用户登录
function login($sql, $email, $password)
{
	// 建立一个保持错误信息的数组
	$errors = [];

	// 邮箱验证
	if(empty($email)){
		$errors = '邮箱不能为空!';
	} else {
		// 去掉特殊字符
		$e = mysqli_real_escape_string($sql,trim($email));
	}

	// 密码验证
	if(empty($password)){
		$errors = '密码不能为空!';
	} else {
		// 去掉特殊字符
		$p = mysqli_real_escape_string($sql,trim($password));
	}

	// 到数据库中进行数据验证
	if (empty($errors)) {
		// 根据邮箱和密码进行验证,并返回id, name
		$que = "SELECT `id`,'name' FROM `login` WHERE `email`='$e' AND `password`='$p'";

		// 执行查询
		$res = mysqli_query($sql, $que);

		if (mysqli_num_rows($res) == 1) {
           $row = mysqli_fetch_array($res, MYSQLI_ASSOC);
            //返回查询结果
            return [true, $row];
        } else {
            $errors[] = '邮箱或密码不正确,请重新输入';
        }

        return [false, $errors];
	}
}

运行实例 »

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

实例

<?php
//登录成功页面

//启动会话
session_start();

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

$title = '登录成功';
//导入页面的公共头部
include 'common/head.php';

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



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

运行实例 »

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

s1.pngs2.pngs3.pngs4.png

cookie与session的优点和缺点:优点:一个网站内只需登录一次即可浏览器全站,不用来来回回登录。缺点:如果cookie被人拦截了,就可以取得所有的session信息。


Correction status:Uncorrected

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