博客列表 >4月20号作业

4月20号作业

小蚂蚁的博客
小蚂蚁的博客原创
2018年05月08日 01:57:17746浏览

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');//导入一个尾文件夹

运行实例 »

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


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议