IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> PHP复习综合应用:银行系统 -> 正文阅读

[开发测试]PHP复习综合应用:银行系统

一、主页

<?php
echo '<h1><a href="User/login_html.php">登录</a></h1>';
echo '<h1><a href="User/newUser_html.php">注册</a></h1>';

页面效果:
在这里插入图片描述
点击登录跳转到登录页

二、用户

1、登录页面

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>登录页面</title>
</head>
<body align="center">
    <div id="all">
        <h4>欢迎!请登录</h4>
        <br>
        <form action="CheckUser.php" method="post">
            卡号:<input type="text" name="username" id="" placeholder="请输入银行卡号" />
            <br>
            密码:<input type="password" name="password" id="" placeholder="请输入银行卡密码" />
            <br><br>
            <input type="submit" name="" id="" value="登录"/>
        </form>
    </div>
	</body>
</html>

页面效果:
在这里插入图片描述
2、从数据库中获取卡号和密码进行登录,在过程中设定好SESSION、COOKIE的值,并进行检查

<?php
//加载数据库连接类
include_once '../Tools/DBTools.php';

//开启SESSION功能
session_start();

//定义变量存放登录是否成功的判断结果
$flag = false;

//定义变量存放登录是否成功的提示信息
$message = '';

//定义用户名和密码变量进行存放
$username = $_POST['username'];
$password = $_POST['password'];

//初始化数据库连接
DBTools::init();

//查询相应的银行卡和密码是否存在
$loginSql = "select *,(select RealName from accountinfo where accountinfo.AccountId=bankcard.AccountId)
    RealName from bankcard where CardNo='$username' and CardPwd='$password'";
$result = DbTools::select($loginSql);
//print_r($result);
//进行登录判断
if (!empty($result)){
        $flag = true;
        $message = '登录成功!';
        //定义准备存放进COOKIE的值
        $token = md5($username.$password.time(),"/");
        //定义COOKIE
        setcookie('Token',$token,time()+3600);
        $_COOKIE['Token'] = $token;

        //定义SESSION
        $_SESSION[$token]=[
            'username'=>$username,
            'password'=>$password,
            'RealName'=>$result['RealName'],
            'CardId'=>$result['CardId']
        ];
//        echo $_SESSION[$token]['CardId'];
}else{
    $message = '登入失败';
}

?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>登录验证</title>
    </head>
    <body>
        <input type="hidden" name="" id="flag" value="<? echo $flag;?>" />
        <input type="hidden" name="" id="message" value="<? echo $message;?>" />
    </body>
    <script type="text/javascript">
        var flag = document.getElementById('flag').value;
        var message = document.getElementById('message').value;
        onload = load();
        function load() {
            alert(message);
            if (flag){
                location.href='user_center.php';
            } else{
                <?php echo '111'?>
                // location.href='login_html.php.php';
            }
        }
    </script>
</html>

效果:
在这里插入图片描述
3、用户中心

<?php
//加载数据库连接类
include_once '../Tools/DBTools.php';

//开启SESSION功能
session_start();

//加载common,调用检查登录状态方法
include_once '../common/common.php';
$is_login = getLoginStatus();
if (!$is_login){
    echo '尚未登入,<a href="login_html.php">请先登入</a>';
    die;
}

//到这里表示顺利登录
$token = $_COOKIE['Token'];
$RealName = $_SESSION[$token]['RealName'];
$CardNo = $_SESSION[$token]['username'];

//进行数据库操作,查询出相应用户的相关信息
DbTools::init();
$sql = "select CardMoney from bankcard where CardId=".$_SESSION[$token]['CardId'];
$result = DbTools::select($sql);
$money = $result['CardMoney'];
DbTools::close();
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>用户中心</title>
    </head>
    <body>
        <h3>欢迎您:<?php echo $RealName?></h3>
        <br>
        <p>卡号:<?php echo $CardNo?></p>
        <p>余额:<?php echo $money?></p>
        <p>
            <a href="../Money/MoneyIn.php">存钱</a>
            <a href="../Money/MoneyOut.php">取钱</a>
            <a href="../Money/Transfer.php">转账</a>
        </p>
        <br>
        <a href="leave_login.php">退出登录</a>
    </body>
</html>

页面效果:
在这里插入图片描述

三、数据库连接:封装成类

<?php

class DBTools
{
    private static $coon;
    private static $host = '127.0.0.1';
    private static $user = 'root';
    private static $password = 'root';
    private static $database = 'bank';

    public static function init($host='',$user='',$password='',$database=''){
        if(!empty($host)){
            self::$host = $host;
        }
        if(!empty($user)){
            self::$user = $user;
        }
        if(!empty($password)){
            self::$password = $password;
        }
        if(!empty($database)){
            self::$database = $database;
        }

        self::$coon = new \mysqli();
        self::$coon->connect(self::$host,self::$user,self::$password,self::$database);

        if (!empty(self::$coon->connect_error)){
            echo '数据库连接失败:'.self::$coon->connect_error;
            die;
        }
    }

    public static function Select($sql){
        $data = [];
        $result = self::$coon->query($sql);

        if (empty(self::$coon->error)){
            while (true){
                $row = $result->fetch_assoc();
                if (empty($row)){
                    break;
                }
                $data = $row;
            }
        }
        return $data;
    }

    //非查询方法
    public static function noSelect($sql){

        $result = self::$coon->query($sql);

        if ($result){
            if (self::$coon->affected_rows>0){
                return [
                    'status'=>true,
                    'message'=>''
                ];
            }else{
                return [
                    'status'=>false,
                    'message'=>'影响数为0'
                ];
            }
        }else{
            return [
                'status'=>false,
                'message'=>self::$coon->error
            ];
        }
    }

    //关闭数据库连接方法
    public static function close(){
        self::$coon->close();
    }
}

四、将页面SESSION、COOKIE值的检查、存取钱方法、获取卡号方法都写入一个文件中

<?php
//开启SESSION功能
session_start();

//检查登录状态方法
function getLoginStatus(){
    //是否有token COOKIES值
    if(empty($_COOKIE['Token'])){
        return false;
    }
    $token = $_COOKIE['Token'];
    //判断是否SESSION中是否有对应的token项
    if(empty($_SESSION[$token])){
        return false;
    }
    return true;
}

//存取钱方法
function MoneyIn_Out($type,$cardId,$money){
    //money操作
    if ($type==1){
        $sql ="update bankcard set CardMoney=CardMoney+$money where CardId=$cardId";
    }else{
        $sql ="update bankcard set CardMoney=CardMoney-$money where CardId=$cardId and CardMoney>$money";
    }
    $result = DbTools::noSelect($sql);
    if (!$result['status']){
        return $result;
    }
    //日志操作
    if ($type==1){
        $sql ="insert into cardexchange(CardId,MoneyInBank,MoneyOutBank,ExchangeTime)
               values ($cardId,$money,0,NOW())";
    }else{
        $sql ="insert into cardexchange(CardId,MoneyInBank,MoneyOutBank,ExchangeTime)
               values ($cardId,0,$money,NOW())";
    }
    $result = DbTools::noSelect($sql);
    return $result;
}

//获取卡号方法
function getCardId($CardNum){
    $sql ="select CardId from bankcard where CardNo = $CardNum";
    $result = DbTools::select($sql);
    return $result['CardId'];
}

五、存钱、取钱、转账以及检查

1、存钱页面和检查

<?php
include_once '../tools/DBTools.php';
include_once '../common/common.php';
session_start();




$is_login = getLoginStatus();
if (!$is_login){
    echo '尚未登入,<a href="../User/login_html.php">请先登入</a>';
    die;
}

//到这里,表示已经登入
$token = $_COOKIE['Token'];
$userInfo = $_SESSION[$token];

//初始化数据库连接
DbTools::init();
$Sql = "select CardMoney from bankcard where CardId=".$userInfo['CardId'];
$result = DbTools::select($Sql);
$money = $result['CardMoney'];

//关闭连接
DbTools::close();
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>用户中心</title>
    </head>
    <body>
        <p><a href="../User/user_center.php">回到个人中心</a></p>
        <form action="MoneyInCheck.php" method="post">
            当前余额:<input type="text" name="old_money" id="" value="¥<?php echo $money; ?>" readonly="readonly" disabled="disabled" /><br />
            存钱金额:<input type="text" name="money" id="" value="" />
            <br />
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>

页面效果:
在这里插入图片描述
检查代码:

<?php
include_once '../tools/DBTools.php';
session_start();

include_once '../common/common.php';
$is_login = getLoginStatus();

if (!$is_login){
    echo '尚未登入,<a href="../User/login_html.php">请先登入</a>';
    die;
}
$money = $_POST['money'];
if(empty($money) || $money<0){
    echo '存款金额有误,<a href="MoneyIn.php">重新存款</a>';die;
}

$token = $_COOKIE['Token'];
$userInfo = $_SESSION[$token];

//函数调用
DbTools::init();
$result = MoneyIn_Out(1,$userInfo['CardId'],$money);
if($result['status']){
    echo '存款成功<a href="MoneyIn.php">继续存款</a>';
}else{
    echo '存款有误: '.$result['message'];
}
DbTools::close();

2、取钱页面和检查

<?php
include_once '../tools/DBTools.php';
session_start();

include_once '../common/common.php';
$is_login = getLoginStatus();
if (!$is_login){
    echo '尚未登入,<a href="../User/login_html.php">请先登入</a>';
    die;
}

//到这里,表示已经登入
$token = $_COOKIE['Token'];
$userInfo = $_SESSION[$token];

//初始化数据库连接
DbTools::init();
$Sql = "select CardMoney from bankcard where CardId=".$userInfo['CardId'];
$result = DbTools::select($Sql);
$money = $result['CardMoney'];
//关闭连接
DbTools::close();
?>


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户中心</title>
</head>
<body>
<p><a href="../User/user_center.php">回到个人中心</a></p>
<form action="MoneyOutCheck.php" method="post">
    当前余额:<input type="text" name="old_money" id="" value="¥<?php echo $money; ?>" readonly="readonly" disabled="disabled" /><br />
    取钱金额:<input type="text" name="money" id="" value="" />
    <br />
    <input type="submit" value="提交"/>
</form>

</body>
</html>

页面效果:
在这里插入图片描述
检查代码:

<?php
include_once '../tools/DBTools.php';
session_start();
include_once '../common/common.php';



$is_login = getLoginStatus();
if (!$is_login){
    echo '尚未登入,<a href="../User/login_html.php">请先登入</a>';
    die;
}

$money = $_POST['money'];
if(empty($money) || $money<0){
    echo '取款金额有误,<a href="MoneyOut.php">重新取款</a>';die;
}
$token = $_COOKIE['Token'];
$userInfo = $_SESSION[$token];

//方式3 函数调用
DbTools::init();
$result = MoneyIn_Out(2,$userInfo['CardId'],$money);
if($result['status']){
    echo '取款成功<a href="MoneyOut.php">继续取款</a>';
}else{
    echo '取款有误: '.$result['message'];
}
DbTools::close();

3、转账代码和检查

<?php
include_once '../tools/DBTools.php';
session_start();

include_once '../common/common.php';
$is_login = getLoginStatus();
if (!$is_login){
    echo '尚未登入,<a href="../User/login_html.php">请先登入</a>';
    die;
}

//到这里,表示已经登入
$token = $_COOKIE['Token'];
$userInfo = $_SESSION[$token];

//初始化数据库连接
DbTools::init();
$Sql = "select CardMoney from bankcard where CardId=".$userInfo['CardId'];
$result = DbTools::select($Sql);
$money = $result['CardMoney'];
//关闭连接
DbTools::close();
?>


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>用户中心</title>
</head>
<body>
<p><a href="../User/user_center.php">回到个人中心</a></p>
<form action="TransferCheck.php" method="post">
    当前余额:<input type="text" name="old_money" id="" value="¥<?php echo $money; ?>" readonly="readonly" disabled="disabled" /><br />
    转账金额:<input type="text" name="money" id="" value="" /><br/>
    对方卡号:<input type="text" name="Op_CardNo" id="" value="" />
    <br />
    <input type="submit" value="提交"/>
</form>

</body>
</html>

页面效果:
在这里插入图片描述
检查代码:

<?php
include_once '../tools/DBTools.php';
session_start();

include_once '../common/common.php';
$is_login = getLoginStatus();
if (!$is_login){
    echo '尚未登入,<a href="../User/login_html.php">请先登入</a>';
    die;
}

$money = $_POST['money'];
$Op_CardNo = $_POST['Op_CardNo'];

if(empty($money) || $money<0){
    echo '转帐金额有误,<a href="Transfer.php">重新转帐</a>';die;
}
if(empty($Op_CardNo) ){
    echo '对方卡号有误,<a href="Transfer.php">重新转帐</a>';die;
}

$token = $_COOKIE['Token'];
$userInfo = $_SESSION[$token];
$CarNum=$_SESSION[$token]['username'];
$CarId = $userInfo['CardId'];
//实现从转账放扣钱
DbTools::init();
$result = MoneyIn_Out(2,$CarId,$money);
if($result['status']){

}else{
    echo '转账有误: '.$result['message'];
}
//DbTools::close();

//实现转账金额进入对方卡号

$CarNum2= $_POST['Op_CardNo'];
//获取卡号
$CarId2 =getCardId($CarNum2);
//DbTools::init();
$result = MoneyIn_Out(1,$CarId2,$money);
if($result['status']){

}else{
    echo '转账有误: '.$result['message'];
}


//添加转账记录
$id1=$CarId;
$id2=$CarId2;

//DbTools::init();
$sql1="INSERT INTO cardtransfer(cardtransfer.CardIdOut,cardtransfer.CardIdIn,cardtransfer.TransferMoney,cardtransfer.TransferTime)
VALUES($id1,$id2,$money,NOW())";
$result=DbTools::noSelect($sql1);
if($result['status']){
    echo '转账成功,<a href="Transfer.php">重新转帐</a>';
}else{
    echo '转账有误: '.$result['message'];
}
DbTools::close();
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 14:14:47  更:2022-01-01 14:15:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 5:48:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码