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);
}
}
}