Blogger Information
Blog 24
fans 0
comment 0
visits 15403
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
4月20号作业
小蚂蚁的博客
Original
747 people have browsed it

cookie登录案例

实例

<?php
//创建连接参数: 因为连接参数不会经常变化,所以推荐使用常量
define ('DB_HOST', 'localhost');
define ('DB_USER', 'root');
define ('DB_PASS', 'root');
define ('DB_NAME', 'php');
define ('DB_CHAR', 'utf8');

$dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

//连接失败一定会返回错误编号,可以根据编号判断,也可用 $db是否为false进行判断
if (mysqli_connect_errno($dbc)) {
    echo '连接失败'.mysqli_connect_error($dbc);
}

mysqli_select_db($dbc, DB_NAME);  //选择要操作的数据库
mysqli_set_charset($dbc, DB_CHAR); //设置客户端默认字符编码集

运行实例 »

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

实例

<h3>我是公共底部的代码</h3>
</body>
</html>

运行实例 »

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

实例

<h2>测试底部代码</h2>
</body>
</html>

运行实例 »

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

实例

<?php
//登录公共函数库

/**
 * 用户自定义跳转地址
 * @param string $page
 */
function redirect_usre($page='index.php')
{
   //默认url格式
    $url = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);

    //如果有,去掉url右侧的斜线
    $url = rtrim($url, '/\\');

    //添加上当前的脚本名称,默认为:index.php
    $url .= '/'.$page;

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

   var_dump($url);

    //退出当前函数,这是一个好习惯,否则后面代码仍会执行,仅仅不会在当前页面输出罢了
    exit();
}

/**
 * 验证用户登录
 * @param $dbc
 * @param string $email
 * @param string $password
 */
function check_login($dbc, $email='', $password='')
{
    //初始化错误信息数组
    $errors = [];

    //验证邮箱
    if (empty($email)) {
        $errors[] = '邮箱地址不能为空';
    } else {
        //mysqli_real_escape_string():转义字符串的特殊字符
        $e = mysqli_real_escape_string($dbc, trim($email));
    }

    //验证密码
    if (empty($password)) {
        $errors[] = '密码不能为空';
    } else {
        $p = mysqli_real_escape_string($dbc, trim($password));
    }

    //非空验证通过,即$error数组为空
    if (empty($errors)) {
        //根据邮箱与密码来查询用户id与用户名
        $sql = "SELECT `user_id`,`user_name` FROM `user` WHERE `email`='$e' AND `password`=sha1('$p') ";

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

        //查询成功应该返回唯一一条记录
        if (mysqli_num_rows($res) == 1) {

            //将查询结果解析到数组中
            $row = mysqli_fetch_array($res, MYSQLI_ASSOC);

            //返回查询结果
//            print_r($row);exit();
            return [true, $row];
        } else { //查询失败
            $errors[] = '邮箱或密码不正确,请重新输入';
        }
    }
    return [false, $errors];
}

运行实例 »

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

实例

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>
        <?php
            //设置当前的页面标题
            echo isset($page_title) ? $page_title :'默认标题';
        ?>
    </title>
</head>
<body>
<h3>我是公共头部的代码</h3>

运行实例 »

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

实例

<?php
//1.设置cookie(name,value,expire)
//cookie名也是变量,也要遵循php关于变量标识符的命名规则
setcookie('username', 'liang',time()+3600);  //一小时后过期
setcookie('email', 'liang@php.cn');

// 查看$_COOKIE

echo '用户名: ',$_COOKIE['username'],'<br>';
echo '邮箱: ',$_COOKIE['email'],'<br>';



// 更新

setcookie('username','梁xiansheng');


// 删除
//  删除1。 只传一个用户名进行删除
// setcookie('username');


// 删除2 传一个空的参数
// setcookie('username','');



// 删除方法3
// 添加一个过期的时间

setcookie('username','',time()-3600);

运行实例 »

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

实例

<?php
$page_title = '首页';
include ('inc/header.php');
echo '<h2 style="color:red">我是首页</h2>';
if ((isset($_COOKIE['user_id'])) && basename($_SERVER['PHP_SELF']) != 'logout.php') {
    echo '<a href="logout.php">退出</a>';
} else {
    echo '<a href="login.php">登录</a>';
}
include ('inc/footer.php');

运行实例 »

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

实例

<?php
if (!isset($_COOKIE['user_id'])) {
    require ('inc/function.php');
    //跳转到默认首页
    redirect_user();
}

//如果已经登录
//设置页面标题
$page_title = '已经登录';
include ('inc/header.php');

//打印欢迎信息,并提供退出功能
echo <<< "WELCOME"
<h2 style="color:red">登陆成功</h2>
<p>欢迎您: {$_COOKIE['user_name']}</p>
<p><a href="logout.php">退出</a></p>
WELCOME;

//加载底部
include ('inc/footer.php');

运行实例 »

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

实例

<?php
if (!isset($_COOKIE['user_id'])) {
    require ('inc/function.php');
    //跳转到默认首页
    redirect_user();
}

//如果已经登录
//设置页面标题
$page_title = '已经登录';
include ('inc/header.php');

//打印欢迎信息,并提供退出功能
echo <<< "WELCOME"
<h2 style="color:red">登陆成功</h2>
<p>欢迎您: {$_COOKIE['user_name']}</p>
<p><a href="logout.php">退出</a></p>
WELCOME;

//加载底部
include ('inc/footer.php');

运行实例 »

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

实例

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

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

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

    //验证通过
    if ($check) {
        //设置cookies
        setcookie('user_id', $data['user_id']);
        setcookie('user_name', $data['user_name']);

        //跳转页m
        redirect_user('loggedin.php');
    } else {
        //验证失败
        $errors = $data;
    }


    //关闭数据库连接
    mysqli_close($dbc);
}

//加载
include('login_page.php');
*/



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

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

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

    //验证通过
    if ($check) {
        //设置cookies
        setcookie('user_id', $data['user_id']);
        setcookie('user_name', $data['user_name']);

        //跳转页面
        redirect_user('loggedin.php');
    } else {
        //验证失败
        $errors = $data;
    }

    //关闭数据库连接
    mysqli_close($dbc);
}

//加载
include('login_page.php');

运行实例 »

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

实例

<?php
/**
 * 登录页面并报告错误
 * 设置当前页面的标题
 * 在login.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'); //加载底部 ?>

运行实例 »

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

实例

<?php
// echo $_COOKIE['user_id'];
if(!isset($_COOKIE['user_id'])){
	require('inc/function.php');
	redirect_usre();
}  else{
	setcookie(user_id,'',time()-600);
	setcookie(user_name,'',time()-600);

}

//退出登录

$page_title='退出成功';
// 导入头部
include('inc/header.php');//导入一个头文件夹

// 打印欢迎信息
echo<<<"WELCOME"
<h2 style="color:red">退出成功</h2>

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

// 导入尾部
include('inc/footer.php');//导入一个尾文件夹

运行实例 »

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














session登录案例


实例

<?php
//1.设置cookie(name,value,expire)
//cookie名也是变量,也要遵循php关于变量标识符的命名规则
setcookie('username', 'liang',time()+3600);  //一小时后过期
setcookie('email', 'liang@php.cn');

// 查看$_COOKIE

echo '用户名: ',$_COOKIE['username'],'<br>';
echo '邮箱: ',$_COOKIE['email'],'<br>';



// 更新

setcookie('username','梁xiansheng');


// 删除
//  删除1。 只传一个用户名进行删除
// setcookie('username');


// 删除2 传一个空的参数
// setcookie('username','');



// 删除方法3
// 添加一个过期的时间

setcookie('username','',time()-3600);

运行实例 »

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

实例

<?php

// 向浏览器生成已个cookie=phpsessid
session_start();





$page_title='首页';//创建一个变量用来设置页面标题

// 导入头部
include('inc/header.php');//导入一个头文件夹
echo '<h2 style="color:red">测试首页</h2>';




//登录检测 
if ((isset($_COOKIE['user_id'])) && basename($_SERVER['PHP_SELF']) != 'logout.php') {
	echo '<a href="logout.php">退出</a>';
}
echo '<a href="login.php">登录</a>';

// 登录页面


// 导入尾部
include('inc/footer.php');//导入一个尾文件夹

运行实例 »

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

实例

 <?php


// session_start();


// if (!isset( $_SESSION['user_id'])) {
//     require ('inc/function.php');
//     //跳转到默认首页
//     redirect_user();
// }

// //如果已经登录
// //设置页面标题
// $page_title = '已经登录';
// include ('inc/header.php');

// //打印欢迎信息,并提供退出功能
// echo <<< "WELCOME"
// <h2 style="color:red">登陆成功</h2>
// <p>欢迎您: {$_SESSION['user_name']}</p>
// <p><a href="logout.php">退出</a></p>
// WELCOME;

// //加载底部
// include ('inc/footer.php'); 



 // echo $_COOKIE['user_id'];
 if(!isset($_COOKIE['user_id'])){
 	require('inc/function.php');
 	redirect_usre();
 }


 // 验证登录成功

 $page_title='登录成功';
 // 导入头部
 include('inc/header.php');//导入一个头文件夹

 // 打印欢迎信息
 echo<<<"WELCOME"
 <h2 style="color:red">登录成功</h2>

 <p>欢迎你{$_COOKIE['user_name']}</p>
 <p><a hrer="logout.php">退出</a></p>
 WELCOME;

 // 导入尾部
 include('inc/footer.php');//导入一个尾文件夹

运行实例 »

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

实例

<?php 

// 向浏览器生成已个cookie=phpsessid
session_start();


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

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

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

    //验证通过
    if ($check) {
        //设置cookies
        // setcookie('user_id', $data['user_id']);
        // setcookie('user_name', $data['user_name']);
    
     $_SESSION['user_id']= $data['user_id'];
     $_SESSION['user_id']= $data['user_name'];

        //跳转页面
        redirect_user('loggedin.php');
    } else {
        //验证失败
        $errors = $data;
    }

    //关闭数据库连接
    mysqli_close($dbc);
}

//加载
include('login_page.php');

运行实例 »

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

实例

<?php
/**
 * 登录页面并报告错误
 * 设置当前页面的标题
 * 在login.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'); //加载底部 ?>

运行实例 »

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

实例

<?php
session_start();


// echo $_COOKIE['user_id'];
if(!isset($_SESSION['user_id'])){
	require('inc/function.php');
	redirect_usre();
}  else{
	// setcookie(user_id,'',time()-600);
	// setcookie(user_name,'',time()-600);

     $_SESSION=[];
     session_destroy();
     session('PHPSESSID',time()-600);




}

//退出登录

$page_title='退出成功';
// 导入头部
include('inc/header.php');//导入一个头文件夹

// 打印欢迎信息
echo<<<"WELCOME"
<h2 style="color:red">退出成功</h2>

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

// 导入尾部
include('inc/footer.php');//导入一个尾文件夹

运行实例 »

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


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