开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
开源项目 > 建站系统 > CMS建站系统 &&
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (2)
master
v7.0
master
分支 (2)
master
v7.0
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (2)
master
v7.0
icms
/
app
/
plugin
/
PluginVerify.php
icms
/
app
/
plugin
/
PluginVerify.php
PluginVerify.php 4.10 KB
一键复制 编辑 原始数据 按行查看 历史
iCMSdev 提交于 2025年12月08日 16:55 +08:00 . 更新至 iCMS v8.0.20251210
<?php
/**
* iCMS - i Content Management System
* Copyright (c) 2007-2017 iCMSdev.com. All rights reserved.
*
* @author icmsdev <master@icmsdev.com>
* @site https://www.icmsdev.com
* @licence https://www.icmsdev.com/LICENSE.html
*/
class PluginVerify extends Model
{
public $table = 'plugin_verify';
/**
* 默认过期时间
*/
const EXPIRE = 15 * 60;
public static function generate($account, $expire = 0)
{
$code = random(6, true);
$expire or $expire = self::EXPIRE;
$create_time = time();
$expire_time = $create_time + ($expire ?: 90);
$verify_time = 0;
$status = 0;
// $row = PluginVerify::field('create_time')->where([
// 'account'=>$account,
// 'status'=>'0',
// 'expire_time'=>['>=',$create_time]
// ])->orderby("id DESC")->get();
// if($row){
// throw new sException('plugin.verify.generate.expire');
// }
DB::beginTransaction();
$data = compact('account', 'code', 'create_time', 'expire_time', 'status');
$data['id'] = self::create($data, true);
$data['expire'] = $expire;
if (empty($data['id'])) {
$msg = 'plugin:email:verify:generate_error';
Utils::isPhone($account) && $msg = 'plugin:phone:verify:generate_error';
throw new sException($msg);
}
DB::commit();
return $data;
}
public static function result($result, $data)
{
DB::beginTransaction();
$update = [];
$update = $result === true ?
['status' => 1, 'result'=>'ok'] :
['status' => -1, 'result'=>json_encode($result)];
$update && self::update($update, $data['id']);
DB::commit();
if ($result === true) {
return true;
} else {
$msg = sprintf('Message:%s,Code:%s,RequestId:%s', $result['Message'], $result['Code'], $result['RequestId']);
throw new sException($msg);
}
}
/**
* 判断账号+验证码 是否通过验证
*
* @param [type] $account [$account description]
* @param [type] $code [$code description]
* @param [type] $expire [$expire 验证后多少秒内有效]
*
* @return [type] [return description]
*/
public static function verify($account, $code, $expire = 180)
{
if($expire==='email'){
$config = PluginEmail::config();
$expire = $config['expire']?:86400;
}
$status = 2;
$time = time();
$row = self::where(compact('account', 'code', 'status'))->get();
if (empty($row) || $time - $row['verify_time'] > $expire) {
if (Utils::isPhone($account)) {
throw new sException('plugin:phone:verify_fail');
}else{
throw new sException('plugin:email:verify_fail');
}
}
return true;
}
public static function phone($phone, $code)
{
if (!Utils::isPhone($phone)) {
// iJson::error('手机号码错误');
throw new sException('plugin:phone:error');
}
return self::checking($phone, $code, 'phone');
}
public static function email($email, $code)
{
if (!preg_match("/^[\w\-\.]+@[\w\-]+(\.\w+)+$/i", $email)) {
throw new sException('plugin:email:error');
}
return self::checking($email, $code, 'email');
}
public static function checking($account, $code, $type)
{
if (!is_numeric($code) || strlen($code) != 6) {
throw new sException('plugin:' . $type . ':verify:illegal');
}
$status = 1;
$time = time();
$row = self::where(compact('account', 'code', 'status'))->get();
if (empty($row)) {
throw new sException('plugin:' . $type . ':verify:error');
}
if ($row['expire_time'] < $time) {
throw new sException('plugin:' . $type . ':verify:expire');
}
return self::update([
'status' => 2,
'verify_time' => $time
]);
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

iCMS 是一个采用 PHP 和 MySQL 数据库构建的高效内容管理系统,为中小型网站提供一个完美的解决方案。
取消

发行版

暂无发行版

开源评估指数源自 OSS-Compass 评估体系,评估体系围绕以下三个维度对项目展开评估:

1. 开源生态

  • 生产力:来评估开源项目输出软件制品和开源价值的能力。
  • 创新力:用于评估开源软件及其生态系统的多样化程度。
  • 稳健性:用于评估开源项目面对多变的发展环境,抵御内外干扰并自我恢复的能力。

2. 协作、人、软件

  • 协作:代表了开源开发行为中协作的程度和深度。
  • 人:观察开源项目核心人员在开源项目中的影响力,并通过第三方视角考察用户和开发者对开源项目的评价。
  • 软件:从开源项目对外输出的制品评估其价值最终落脚点。也是开源评估最"古老"的主流方向之一"开源软件" 的具体表现。

3. 评估模型

    基于"开源生态"与"协作、人、软件"的维度,找到与该目标直接或间接相关的可量化指标,对开源项目健康与生态进行量化评估,最终形成开源评估指数。

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/php/icms.git
git@gitee.com:php/icms.git
php
icms
iCMS
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /