php 实现用户签到,ThinkPHP3.2.3基础上开发的用户签到功能实现
时间: 2024-02-05 09:11:54 浏览: 107
以下是一个简单的用户签到功能的实现示例:
1. 创建一个名为 `SignController` 的控制器,然后添加一个名为 `doSign` 的方法用于处理用户签到请求。
```php
class SignController extends Controller {
public function doSign() {
$uid = session('uid'); // 获取当前用户的ID
$signModel = M('UserSign'); // 实例化用户签到模型
$lastSign = $signModel->where('uid='.$uid)->order('sign_time desc')->find(); // 获取用户最后一次签到记录
$today = date('Y-m-d'); // 获取当前日期
if(empty($lastSign) || $lastSign['sign_time'] < $today) { // 如果用户今天还没有签到
$data['uid'] = $uid;
$data['sign_time'] = $today;
$signModel->add($data); // 添加签到记录
$this->success('签到成功!');
} else { // 如果用户今天已经签到过了
$this->error('今天已经签到过了!');
}
}
}
```
2. 创建一个名为 `UserSignModel` 的模型,用于操作用户签到记录表。
```php
class UserSignModel extends Model {
protected $tableName = 'user_sign';
}
```
3. 创建一个名为 `user_sign` 的数据表,用于存储用户签到记录。
```sql
CREATE TABLE `user_sign` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`sign_time` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
```
4. 在用户登录成功后,将用户ID存储到Session中。例如:
```php
session('uid', $user['id']);
```
5. 在前端页面上添加一个签到按钮,并在点击按钮时向服务器发送签到请求。例如:
```html
<button id="sign-btn">签到</button>
<script>
$('#sign-btn').on('click', function() {
$.ajax({
url: '/sign/doSign',
type: 'POST',
success: function(res) {
if(res.code == 0) {
alert(res.msg);
} else {
alert(res.msg);
}
}
});
});
</script>
```
以上就是一个简单的用户签到功能的实现示例,你可以根据自己的需求进行修改和扩展。
阅读全文