置顶沉梦云全新生态系统诚招开发者

为了打造更全面的商城,提供更全面更优质成本更低的全新商城管理系统为大众服务,于2021年启动了全新商城开发计划,目前商城客户端程序和控制端已经完备,于2023年2月10日推出了采用thinkphp6+workerman+vue2开发的沉梦云Pro,接着在同年9月12日推出了采用thinkphp6+workerman+vue+vite开发的沉梦云SUP权益实物系统,版本和功能更完善,深度开发适配的插件系统,支持各种复杂功能实现,帮助客户有更多选择的同时,还能给各大开发者带来收益

【JavaScript笔记】如何快速设置Object多维对象的某个属性或值

前端在部分业务下会有一种场景,需要修改某个对象单独的属性或值且修改后立即生效(如页面缓存、样式布局DIY调整配置),当这个对象是3维或者3维以上时,且传参的数据不一致,如果配置项较多,死方法就是每个对象都去一遍(比较愚蠢的写法)这个时候的代码量就比较多,那么如何减少这个代码量呢??下面我就写了一个函数,可以通过固定代码即可达到减少代码量const setValue = function(data, key, value) {    if ('object' !== typeof data) {        return null    }    if (key.indexOf('.') > 0) {        let index1 = key.split('.')[0];        let index2 = key.replace(new RegExp('^' + index1 + '\.', 'g'), '');        if (data.hasOwnProperty(index1)) {            data[index1] = setValue(data[index1], index2, value);        }        return data;    } else {        if (data.hasOwnProperty(key)) {            data[key] = value        }        return data    }}

【vue笔记】运行npm install or npm update 报错 path git errno -4058

运行npminstall报错解决方法npm ERR! code ENOENTnpm ERR! syscall spawn gitnpm ERR! path gitnpm ERR! errno -4058npm ERR! enoent Error while executing:npm ERR! enoent undefined ls-remote -h -t ssh://git@github.com/sohee-lee7/Squire.gitnpm ERR! enoentnpm ERR! enoentnpm ERR! enoent spawn git ENOENTnpm ERR! enoent This is related to npm not being able to find a file.npm ERR! enoentnpm ERR! A complete log of this run can be found in:npm ERR! D:\node\node_cache_logs\2020-09-01T01_09_19_309Z-debug.log

【Session】Session缓存Mysql数据库版

通过用户反馈服务器在使用时,如果网站过多或者并发过大,php自带的session可能会失效于是就有个了这个数据库版本,模拟session功能,今天把主要逻辑代码分享出来注意:代码中的DB类如果和你的程序不兼容需要自己改一下哦// +----------------------------------------------------------------------// | Nmae:Session数据库版  根据cookie生成设备标识,可替换本地服务器session过多出错问题// +----------------------------------------------------------------------// | Author: 沉梦执于梦 857285711 <blog.chenmyun.com>// +----------------------------------------------------------------------// | Date: 2020/10/16// +----------------------------------------------------------------------class Session{    /**     * 设置Session     * @param [type] $name   [description]     * @param [type] $value  [description]     * @param [type] $expire [description]     */    public static function set($name, $value, $expire = null)    {        global $DB;        $userid = self::getUserId();        if ($expire === null || $expire < time()) {            $expire = time() + 3600;        }        try {            $row = $DB->get_row("SELECT * FROM `auth_session` WHERE u= ? and k= ? limit 1", [$userid, $name]);            if ($row != false && isset($row['id'])) {                $data = [$value, $expire, $row['id']];                return $DB->query("UPDATE `auth_session` SET  v= ?, e= ? WHERE `id`= ?", $data);            } else {                $sql  = "INSERT INTO `auth_session` (`u`,`k`,`v`,`e`) VALUES (?, ?, ?, ?)";                $data = [$userid, $name, $value, $expire];                if ($DB->query($sql, $data)) {                    return true;                }                throw new \PDOException($DB->error());            }        } catch (\PDOException $e) {            die('数据库错误:' . $e->getMessage());        } catch (\Exception $e) {            die('系统错误:' . $e->getMessage());        }    }    /**     * 获取session     * @param  string $name session名称     * @return string     */    public static function get($name = 'userid')    {        global $DB;        $userid = self::getUserId();        $data   = [$userid, $name];        $row    = $DB->get_row("SELECT * FROM `auth_session` WHERE u= ? and k= ? limit 1", $data);        if (is_array($row) && $row['e'] > time()) {            return $row['v'];        }        return '';    }    /**     * 获取设备唯一标识     * @param  boolean $update 是否刷新     */    public static function getUserId($update = false)    {        $userid = isset($_COOKIE['uid']) ? $_COOKIE['uid'] : null;        if ($update || empty($userid) || !isset($_COOKIE['uid'])) {            $userid = md5(uniqid(mt_rand(), 1) . time() . rand(1111, 9999) . x_real_ip());            setcookie('uid', $userid, time() + 86400 * 30, '/', null);        }        return $userid;    }    /**     * 生成随机MD5字符串     * @return string     */    public static function getRandString()    {        return md5(uniqid(mt_rand(), 1) . time() . rand(11111, 99999) . x_real_ip());    }    /**     * 清空当前设备cookie     * @param  [type] $name [description]     * @return [type]       [description]     */    public static function checkDel($name)    {        $num = 0;        if (is_array($_COOKIE)) {            foreach ($_COOKIE as $key => $value) {                if ($key == $name) {                    $num++;                }            }            if ($num >= 2) {                unset($_COOKIE[$name]);            }        }    }}

沉梦Free惠易付聚合系统更新发布帖

沉梦Free惠易付系统是沉梦科技旗下推出的一款免费惠易付系统沉梦科技承诺:可能会推出付费版本,但免费版永久可用!!下面贴出更新日志(下载链接在最下面)2023年7月大更新,推出无授权永久版本!仅需80元永久使用无后门超级流畅

【数组篇】数组指定下标内容获取和数组指定下标检测是否存在 快捷函数 可用于thinkphp框架严格模式

php现在比较成熟的框架有好几个,但是都是用的严格模式,这会导致在获取不存在的数组成员时就会报错!!诸如现在thinkphp的就会,为了解决这个问题,封装了几个函数if (!function_exists('array_get')) {    /**     * 快捷获取数组指定键的成员 可避免php框架的严格模式下报错     * 如 $arr = ['name'=>'测试','data'=> ['a'=>'555','b'=>'6565']]; 可以 array_get('data.b', $arr);     * @param  string|number $key     key 支持无限级获取     * @param  array         $array   数组     * @param  string        $default 默认值     */    function array_get($key = null, $array = [], $default = null)    {        if (is_array($array)) {            if (is_null($key)) {                $key = 0;            }            if ($pos = strpos($key, '.')) {                $key2   = mb_substr($key, 0, $pos);                $array2 = array_has($key2, $array) ? $array[$key2] : $default;                if (is_array($array2)) {                    return array_get(mb_substr($key, $pos + 1), $array2);                }                return $default;            }            return array_has($key, $array) ? $array[$key] : $default;        }        return $default;    }}if (!function_exists('array_has')) {    /**     * 快捷检测数组指定键是否存在     * @param  string $key   key     * @return [type]        数组     */    function array_has($key = null, $array = [])    {        if (is_array($array) && !is_null($key)) {            return array_key_exists($key, $array);        }        return fasle;    }}

宝塔面板Nginx设置所有文件或某文件允许跨域请求

第一种,允许该站点所有请求可跨域请求       #允许跨域请求        #放在诸如  include enable-php-.conf;这种的前面        add_header 'Access-Control-Allow-Origin' '*';        add_header 'Access-Control-Allow-Credentials' 'true';        add_header 'Access-Control-Allow-Headers' '*';        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

目录[+]