博主信息
博文 22
粉丝 1
评论 1
访问量 26568
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php之cookies和session
forever浅笑
原创
1226人浏览过

1.gif


login_page.php

实例

<?php
    $page_title = '用户登陆页';
?>
<?php include 'lib/header.php'?>
<h3>当前页: 登陆页</h3>


<div class="content">
    <form action="login.php" method="post">
        <p>
            <label for="email">邮箱</label>
            <input type="text" name="email" id="email">
        </p>
        <p>
            <label for="pass">密码</label>
            <input type="password" name="pass" id="pass">
        </p>
        <p><button type="submit">登陆</button></p>
    </form>
</div>

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

运行实例 »

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

login.php

实例

<?php
// 判断是否post提交
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // 加载公共函数库
    require 'lib/function.php';

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

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

    // 验证通过
    if ($check) {
        setcookie('user_id',$data['user_id']);
        setcookie('user_name',$data['user_name']);
        redirect_user('../success.php');
    } else {
        $error = $data;
    }

    mysqli_close($dbc);

}

运行实例 »

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

\lib\connect.php

实例

<?php
$dbc = @mysqli_connect('localhost','root','root');
if (mysqli_connect_errno($dbc)) {
    echo '连接失败' . mysqli_connect_error();
} else {
//    echo '成功';
}
mysqli_select_db($dbc,'php');
mysqli_set_charset($dbc,'utf8');

运行实例 »

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

function.php

实例

<?php

/医院
 *用户自定义跳转
 * @param string $page
 */
function redirect_user($page = 'index.php')
{
    $url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']);
    // 去掉右侧的 /,\
    $url = rtrim($url, '/\\');
    // 生成跳转地址
    $url .= '/' . $page;
    // 跳转到指定定址
    header('Location:' . $url);
    exit();
}

function check_login($dbc, $email, $pass)
{
    // 创建错误信息数组
    $errors = [];

    // 验证邮箱
    if (empty($email)) {
        $errors[] = '邮箱不能为空';
    } else {
        $e = mysqli_real_escape_string($dbc,trim($email));
    }

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

    // 验证成功
    if (empty($errors)) {
        $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_assoc($res);
            return [true,$row];
        } else {
            $errors[] = '邮箱或密码不正确,请重新输入';
        }
    }

    return [false,$errors];
}

运行实例 »

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

\lib\header.php

实例

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><?php echo isset($page_title) ? $page_title : '' ;?></title>
</head>
<body>
<h3>头部公共页</h3>

运行实例 »

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

\lib\footer.php

实例

<h3>底部公共页</h3>
</body>
</html>

运行实例 »

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

success.php

实例

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<?php
// 用户没有登陆跳转到登陆页
if (!isset($_COOKIE['user_id'])) {
    require 'lib/function.php';
    redirect_user('login_page.php');
}
?>
    登陆成功!!! 欢迎 <span style="color:red;"><?php echo !empty($_COOKIE['user_name']) ? $_COOKIE['user_name'] : '' ?></span> 的来到!     <a href="logout.php">注销</a>
</body>
</html>

运行实例 »

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

logout.php 

实例

<?php
// 用户没有登陆跳转到登陆页
if (!isset($_COOKIE['user_id'])) {
    require 'lib/function.php';
    redirect_user('login_page.php');
}
setcookie('user_id', '', time() - 3600);
setcookie('user_name', '', time() - 3600);
echo "<a href='login_page.php'>点击登陆</a>";
?>

运行实例 »

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


批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学