积分明细表
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); } } }