PHP的INPUT赋值和默认值

<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script>
    // 原理: 
    // 1. J_endtime 获取到期时间的时间戳
    // 2. 将 J_endtime 转化为 datetime-local 格式,并赋值给 J_newtime 显示
    // 3. 检测 J_newtime 值是否有改动
    // 4. J_newtime 值有改动,则将其 value 转化为时间戳,并赋值给 J_endtime

    // 说明:

// newtime.val(getDateTime(endtime));

// newtime.val() 是给 newtime 进行赋值

// 值为 getDateTime(endtime);endtime 是获取的数据库的值;getDateTime 是格式化时间戳为 datatime-local
//这个 getzf 作用是给 1一位数的时间加个前导0,2022-1-26 改成 2022-01-26

    var times = $('.J_time');
    if (times.length) {
        $('.J_endtime').each(function() {
            var endtime = $(this).val();
            var newtime = $(this).parent().find('.J_newtime');
            newtime.val(getDateTime(endtime));
        });
    }

    $('.J_newtime').on('input propertychange', function() {
        var newtime = $(this).val().replace('T', ' ').replace(/-/g, '/');
        $('.J_endtime').val(Date.parse(newtime) / 1000);
    });
    // 将时间戳转化为 datetime-local 格式---------getzf(date.getSeconds()秒;
    function getDateTime(str) {
        var date = new Date(parseInt(str + '000'));
        return date.getFullYear() + '-' + getzf(date.getMonth() + 1) + '-' + getzf(date.getDate()) + 'T' + getzf(date.getHours()) + ':' + getzf(date.getMinutes());
    }
    // 两位数的前导零
    function getzf(num) {
        if (parseInt(num) < 10) {
            num = '0' + num;
        }
        return num;
    }
</script>

Thinkphp 发布于 2022-01-26 01:18

thinkphp5 验证码类库

think-captcha
thinkphp5 验证码类库

安装
composer require topthink/think-captcha
使用
模板里输出验证码
<div>{:captcha_img()}</div>
或者

<div><img src="{:captcha_src()}" alt="captcha" /></div>
上面两种的最终效果是一样的
控制器里验证
使用TP5的内置验证功能即可

$this->validate($data,[
    'captcha|验证码'=>'require|captcha'
]);
或者手动验证

if(!captcha_check($captcha)){
 //验证失败
};

Thinkphp 发布于 2021-11-25 14:04

ThinkPHP5支付宝支付类库(超级简单,超级好用!)

简介:

<?php
/**
 * 支付宝支付
 */
return [
        //应用ID,您的APPID。
        'app_id' => "",
        //商户私钥, 请把生成的私钥文件中字符串拷贝在此
        'merchant_private_key' => "",
        //异步通知地址
        'notify_url' => "",
        //同步跳转
        'return_url' => "",
        //编码格式
        'charset' => "UTF-8",
        //签名方式
        'sign_type'=>"RSA2",
        //支付宝网关
        'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
        //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
        'alipay_public_key' => "",
];
ThinkPHP5 支付宝支付扩展库, 包括手机网站支付、电脑网站支付、支付查询、退款、退款查询、对账单等。

用法

电脑网站支付 Pagepay.php

调用 \alipay\Pagepay::pay($params) 即可

手机网站支付 Wappay.php

调用 \alipay\Wappay::pay($params) 即可

交易查询接口 Query.php

调用 \alipay\Query::exec($query_no) 即可

交易退款接口 Refund.php

调用 \alipay\Refund::exec($params) 即可

退款统一订单查询 RefundQuery.php

调用 \alipay\RefundQuery::exec($params) 即可

交易关闭接口 Close.php

调用 \alipay\Close::exec($query_no) 即可

查询账单下载地址接口 Datadownload.php

调用 \alipay\Datadownload::exec($bill_type, $bill_date) 即可

验签 Notify.php

调用 \alipay\Notify::checkSign($params) 即可
标签: thinkphp

Thinkphp 发布于 2021-11-25 14:03

thinkphp5 数据查询方法

查询1条数据

Db::table('think_user')->where('id',1)->find();

查询数据集

Db::table('think_user')->where('status',1)->select();

如果设置了数据表前缀参数的话,可以使用

Db::name('user')->where('id',1)->find();
Db::name('user')->where('status',1)->select();

一般这个这样的写法 比较 常见!

标签: thinkphp

Thinkphp 发布于 2021-11-17 13:47

thinkPHP5数据删除语法

删除数据
// 根据主键删除
Db::table('think_user')->delete(1);
Db::table('think_user')->delete([1,2,3]);

// 条件删除
Db::table('think_user')->where('id',1)->delete();
Db::table('think_user')->where('id','<',10)->delete();


最终生成的SQL语句可能是:

DELETE FROM think_user WHERE id = 1
DELETE FROM think_user WHERE id IN (1,2,3)
DELETE FROM think_user WHERE id = 1
DELETE FROM think_user WHERE id < 10



通过上面可以看出,无论TP的删除语法是什么样的,都是 通过PHP原生语句转化来的;

标签: thinkphp

Thinkphp 发布于 2021-11-17 13:46

thinkphp常用积分增加setInc减少setDec用法

今天给客户做一个网络网站,用到了用户积分管理,经常用到thinkphp的积分加减法,感觉thinkphp的累加蛮方便的,用的setInc、setDec方法
thinkphp3.0增加setInc、setDec方法,今天查看thinkphp2.0的方法setInc、setDec时是这样写的:

而对于统计字段(通常指的是数字类型)的更新,系统还提供了 setInc 和 setDec 方法:

$User = M( "User" ); // 实例化 User 对象

$User->setInc( 'score','id=5',3 ); // 用户的积分加 3

$User->setInc( 'score','id=5' ); // 用户的积分加 1

$User->setDec( 'score','id=5',5 ); // 用户的积分减 5

$User->setDec( 'score','id=5' ); // 用户的积分减 1

而tp3.0有了新的改动,这样写了,方便了不少:

必须配合连贯操作where一起使用
$User = M("User"); // 实例化User对象
$User->where('id=5')->setInc('score',3); // 用户的积分加3
$User->where('id=5')->setInc('score'); // 用户的积分加1
$User->where('id=5')->setDec('score',5); // 用户的积分减5
$User->where('id=5')->setDec('score'); // 用户的积分减1


Thinkphp 发布于 2021-11-17 13:41

thinkphp5中进行联表查询

use think\Db;

$map['a.id'] = input('id');
$info = Db::table('table1_name')
->alias('a')
->join('table2_name w','a.id = w.id')
->where($map)
->find();

注意:这里如果两个表的联表查询的字段名称一样,需要在查询条件map里指定表名,否则会报错!比如这里的map[‘a.id’],不能写map[‘id’];


Thinkphp 发布于 2021-11-17 13:40

thinkphp5 数据增加语法

使用 Db 类的 insert 方法向数据库提交数据

$data = ['foo' => 'bar', 'bar' => 'foo'];

Db::table('think_user')->insert($data);

从上面可以看出,直接使用Db的方法,讲$data 进行数据的写入!

添加数据后如果需要返回新增数据的自增主键,可以使用getLastInsID方法:

Db::name('user')->insert($data);
$userId = Db::name('user')->getLastInsID();

或者直接使用insertGetId方法新增数据并返回主键值:

Db::name('user')->insertGetId($data);

添加多条数据直接向 Db 类的 insertAll 方法传入需要添加的数据即可

$data = [
['foo' => 'bar', 'bar' => 'foo'],
['foo' => 'bar1', 'bar' => 'foo1'],
['foo' => 'bar2', 'bar' => 'foo2']
];
Db::name('user')->insertAll ($data);

标签: thinkphp

Thinkphp 发布于 2021-11-17 13:36

thinkphp5.1的目录结构

相对于5.0来说,5.1版本目录结构的主要变化是配置目录和路由定义目录独立出来,不再放入应用类库目录(并且不可更改)!

www WEB部署目录(或者子目录)
├─application 应用目录
│ ├─common 公共模块目录(可以更改)
│ ├─module_name 模块目录
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config 配置目录
│ │ └─ ... 更多类库目录
│ │
│ ├─command.php 命令行定义文件
│ ├─common.php 公共函数文件
│ └─tags.php 应用行为扩展定义文件

├─config 应用配置目录
│ ├─module_name 模块配置目录
│ │ ├─database.php 数据库配置
│ │ ├─cache 缓存配置
│ │ └─ ...
│ │
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─log.php 日志配置
│ ├─session.php Session配置
│ ├─template.php 模板引擎配置
│ └─trace.php Trace配置

├─route 路由定义目录
│ ├─route.php 路由定义
│ └─... 更多

├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写

├─thinkphp 框架系统目录
│ ├─lang 语言文件目录
│ ├─library 框架类库目录
│ │ ├─think Think类库包目录
│ │ └─traits 系统Trait目录
│ │
│ ├─tpl 系统模板目录
│ ├─base.php 基础定义文件
│ ├─convention.php 框架惯例配置文件
│ ├─helper.php 助手函数文件
│ └─logo.png 框架LOGO文件

├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─vendor 第三方类库目录(Composer依赖库)
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件

标签: thinkphp

Thinkphp 发布于 2021-11-17 13:35

TP5简单的注册执行

public function Udengzc() //注册执行
{
$usersinfo = input();

$data['useremails'] = input('post.useremails'); //定义个获取邮箱的变量

$usersif = Db::name('users')->where($data )->find();//查询

if(count($usersif) >1 ){
$this->error('抱歉,您的注册邮箱已经存在!请重新注册!');
exit;
}

if(!input('post.useremails') || !input('post.usertel') ){
header("Content-Type: text/html;charset=utf-8");
echo "<script> alert('抱歉,您还有注册信息没填写哦!');parent.location.href='../Index'; </script>";
// $this->error('抱歉,注册用户名、密码、邮箱不能为空!');
exit;
}

Db::table('users')->insert($usersinfo);
echo "<script> alert('注册成功,请重新登录!');parent.location.href='../Index'; </script>";

}

Thinkphp 发布于 2021-11-17 11:56
    1 2