2020-10-08

CREATE TABLE `user` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `pwd` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `mobile` char(11) COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `image_url` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `inte` int(6) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


积分明细表

CREATE TABLE `integral` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `u_id` int(10) DEFAULT NULL,
  `type` enum('1','2','3','4','5') COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '1注册 2登录 3退出登录 4签到 5完善信息',
  `detail` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `classify` enum('2','1') COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '1增加  2扣除',
  `created_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


注册

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
</head>
<body>
<form action="\demo\Sign\addUserInfo" method="post" enctype="multipart/form-data">
    用户名:<input type="text" name="name">
    <br>
    密码:<input type="password" name="pwd">
    <br>
    手机号:<input type="tel" name="mobile">
    <br>
    邮箱:<input type="email" name="email">
    <br>
    <input type="submit" value="注册">
</form>
</body>
</html>

登录

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
<form action="\demo\Sign\sele" method="post">
    用户名:<input type="text" name="name">
    <br>
    密码:<input type="password" name="pwd">
    <br>
    <input type="submit" value="登录">
</form>
</body>
</html>

个人中心

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>个人中心</title>
</head>
<body>
<table>
    <tr>
        <td>用户名:{$res.name}</td>
    </tr>
    <tr>
        <td>手机号:{$res.mobile}</td>
    </tr>
    <tr>
        <td>邮箱:{$res.email}</td>
    </tr>
    <tr>
        <td>头像:<img src="{$res.image_url}" alt=""></td>
    </tr>
    <tr>
        <td>资料编辑:<a href="/demo/Sign/dz?id={$res.id}">修改</a></td>
    </tr>
</table>
</body>
</html>

修改

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>个人中心</title>
</head>
<body>
<form action="\demo\Sign\upd" method="post" enctype="multipart/form-data">
    <input type="hidden" name="id" value="{$res.id}">
    用户名:<input type="text" name="name" value="{$res.name}">
    <br>
    手机号:<input type="tel" name="mobile" value="{$res.mobile}">
    <br>
    头像:<input type="file" name="image_url">
    <br>
    <input type="submit" value="修改">
</form>
</body>
</html>

用户登录

<?php
namespace app\demo\controller;

use app\demo\model\Integral;
use app\demo\model\User;
use think\App;
use think\Controller;
use think\facade\Session;
use think\Request;

class Sign extends Controller
{



    //注册
    public function login()
    {
        return $this->fetch('sign/login');
    }

    public function addUserInfo(Request $request)
    {
        $data = $request->param();

        $result = $this->validate($data,'\app\demo\validate\User',[],false);
        if(true !== $result){
            dump($result);
            exit();
        }

        $arr['name'] = $data['name'];
        $arr['pwd'] = md5($data['pwd']);
        $arr['mobile'] = $data['mobile'];
        $arr['email'] = $data['email'];

        $add = new User();
        $int = new Integral();
        $res = $add->save($arr);


        if($res){
            $add->where('name',$arr['name'])->update(['inte'=>150]);
            $num['u_id'] = $add['id'];
            $num['type'] = 1;
            $num['detail'] = '+150';
            $num['classify'] = 1;
            $int->save($num);
            $this->success('注册成功','sign/sel');
        }else{
            $this->error('注册失败');
        }
    }

    //登录
    public function sel()
    {
        return $this->fetch('sign/sel');
    }

    public function sele(Request $request)
    {
        $name = $request->param('name');
        $pwd = md5($request->param('pwd'));

        $sel = new User();
        $int = new Integral();
        $res = $sel->where('name',$name)->where('pwd',$pwd)->find();

        if($res){
            $sel->where('id',$res['id'])->update(['inte'=>$res['inte']+=25]);
            //halt($a);
            //$sel['inte'] += $res['inte']+=25; //登录
            //halt($sel['inte']);
            Session::set('name',$name);
            Session::set('pwd',$pwd);
            $num['u_id'] = $res['id'];
            $num['type'] = 2;
            $num['detail'] = '+25';
            $num['classify'] = 1;
            $int->save($num);
            $this->success('登录成功','sign/sel');
        }
    }

 //修改
    public function dz()
    {
        $res = User::where('name',Session::get('name'))->find();
        return view('sign/up',['res'=>$res]);
    }



<?php
namespace app\demo\controller;

use app\demo\model\Image;
use OSS\Core\OssException;
use OSS\OssClient;
use think\Controller;
use think\facade\Config;
use think\Request;

class Images extends Controller
{

    public function login()
    {
        return $this->fetch('image/image');
    }


    /**
     * 实例化阿里云OSS
     * @return object 实例化得到的对象
     * @return 此步作为共用对象,可提供给多个模块统一调用
     */
    function newOss()
    {
        //获取配置项,并赋值给对象$config
        $config = config('aliyun_oss');
        //实例化OSS
        $ossClient = new OssClient($config['KeyId'],$config['KeySecret'],$config['Endpoint']);

        return $ossClient;
    }

    /**
     * 上传指定的本地文件内容
     *
     * @param OssClient $ossClient OSSClient实例
     * @param string $bucket 存储空间名称
     * @param string $object 上传的文件名称
     * @param string $Path 本地文件路径
     * @return null
     */
    function uploadFile($bucket,$object,$Path)
    {
        //try 要执行的代码,如果代码执行过程中某一条语句发生异常,则程序直接跳转到CATCH块中,由$e收集错误信息和显示

        try{

            //没忘吧,new_oss()是我们上一步所写的自定义函数

            $ossClient =$this->newOss();

            //uploadFile的上传方法

            $res =  $ossClient->uploadFile($bucket, $object, $Path);
            return json($res);
        } catch(OssException $e) {

            //如果出错这里返回报错信息
            return $e->getMessage();

        }

    }

    public function upload(Request $request)
    {


        // 获取表单上传文件 例如上传了001.jpg
        $file = $request->file('image_url');

        // 移动到框架应用根目录/uploads/ 目录下
        $info = $file->move('./uploads');

        if ($info) {

            $path = $info->getSaveName();



            //$filepath = 'https://qz.10huisp.com/uploads/' . $info->getSaveName();
            $fileName = 'uploads/' . $info->getSaveName();
            $bucket = Config::get('app.aliyun_oss.Bucket');
            $this->uploadFile($bucket, $fileName, $info->getPathname());

            $res['image_name'] =  $request->param('image_name');

            $res['image_url'] = $fileName;

            $arr = Image::addImageInfo($res);
            if($arr){
                return $path;
            }


        } else {

            // 上传失败获取错误信息
            echo $file->getError();
        }
        return json($file);
    }
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值