随机数的生成函数,这里贡献给大家。

首先是要用mt_rand()函数生成指定个数的随机数字;

然后使用array_unique()函数去重;

因为去重了;所以得到的数字就不够指定个数了;

所以;核心是要用while循环;直到得到指定个数的数字;

到这里基本可以是结束了;

对于追求完美的人来说;还可以再用个sort();

目的不是要用来排序;主要是将得到的数组key格式化;

用代码来说话;就如下;

<?php
/**
* 生成不重复的随机数
* @param  int $start  需要生成的数字开始范围
* @param  int $end    结束范围
* @param  int $length 需要生成的随机数个数
* @return array       生成的随机数
*/
function get_rand_number($start=1,$end=10,$length=4){
$connt=0;
$temp=array();
while($connt<$length){
$temp[]=mt_rand($start,$end);
$data=array_unique($temp);
$connt=count($data);
}
sort($data);
return $data;
}

当然;重点不是这个函数;重点是这个函数的思路;可以解决很多类似的问题;

6f8cd40d-4516-4c6d-b602-fb8671ab5530

Vsftp的安装,Vsftp添加用户linux/windows

关于Vsftp的安装以及配置方法现总结如下(包括vsftp如何添加用户)不多说,直接看操作流程:

设置方法:

aliyun Linux(Redhat)安装vsftp软件

1.更新yum源

首先需要更新系统的yum源,便捷工具下载地址:update_source.zip。这里需要注意的是,目前文件无法传输,所以想要运行 update_source.sh 只能用文本打开,复制粘贴到阿里云服务器系统运行。

2.安装vsftp

使用yum命令安装vsftp

#yum install vsftpd -y

3.添加ftp帐号和目录

先检查一下nologin的位置,通常在/usr/sbin/nologin或者/sbin/nologin下。

使用下面的命令创建帐户,该命令指定了/ftp为用户test的家目录,您可以自己定义帐户名和目录:

#useradd -d /ftp -s /sbin/nologin test

修改该帐户密码:

#passwd test

修改指定目录的权限

#chown -R test:test /ftp

4.配置vsftp

编辑vsftp配置文件,命令如下:

#vi /etc/vsftpd/vsftpd.conf

将配置文件中”anonymous_enable=YES “改为 “anonymous_enable=NO”

取消如下配置前的注释符号:

#local_enable=YES

#write_enable=YES

#chroot_local_user=YES

#ascii_upload_enable 允许使用ascii码上传

#ascii_download_enable 允许使用ascii码下载

保存修改,按ESC键,输入:wq

5.修改shell配置

vi编辑/etc/shells,如果该文件里没有/usr/sbin/nologin或者/sbin/nologin(具体看当前系统配置)则追加进去

6.启动vsftp服务并测试登录

使用命令启动vsftp服务:

#service vsftpd start

然后用帐号test测试下是否可以登陆ftp。目录是/ftp  推荐用filezilla比较流行的ftp工具。

dedecms后台删除不了文章,文章删除之后,提示成功,但是实际未删除_dedecms

前些日子给一朋友用dedecms套用了一个站点,因为都是用的模板,套起来非常快,三两小时就搞定,搞完之后马上交稿。好景不长,没过多久,这朋友找上门来说:dedecms后台删除不了文章,文章删除之后,提示成功,但是实际后台未删除。

后来我给检查了一番,因为对dedecms这种cms,一些问题基本都是站长摸透了的,这类问题应该可以说是家常便饭吧。于是baidu,google了一下,寥寥无几的答案,大都是无关紧要的答案,亦或是答非所问,也许都是抱着灌水的态度把,却而止步。

决定对程序进行排查了,得得看看删除程序是怎么进行的吧,查了几个php页面:archives_do.php

QQ图片20160708151305

发现这里用了的函数  DelArc

然后继续往下找到这个函数,函数来自inc_batchup.php文件

QQ截图20160708151534

 

看到这里就基本一目了然了,将sql进行执行查询出来,发现这里表里面的数据让人大吃一惊。

将表中的数据进行校对处理,最终得以解决了。

万恶的dedecms,害我找了一晚上的Bug,居然是它惹的祸啊…

客户的一个老站点,最近客户反馈说怎么前台内容页都访问不了呢……

咨询了一下客户前后操作,客户只说重新生成了下后台,没做其它操作,我说这不可能导致内容页访问不了吧,紧接着开始找bug了……

T$R834[F8ISK(P)VOU~Y}9C

 

奇怪的问题在于:所有信息详情页的标题,时间,作者等都不见了,不管是动态还是静态都不显示。

尽然都不显示,并且有些都直接404页面,那就看看生成了什么诡异文件呢,ssh 进入服务器看了看,发现都生成了1970的文件夹,这都是时间文件夹,为什么时间会变成1970呢,百度,谷歌了一下,发现都是什么1970时间是因采集导致的问题,其它的问题就一概不知,也没见人提,这真是“邪乎”了。

0[[S)JLZ]%{Y_@MOKZLE@5J

不管如何修改后台进行生成,都无济于事,都还是生成1970的文件夹

很是纳闷。。。

翻了下代码:

4WQQ_A5SO[$IM8JZ10KJ$`H

一步步的查询,一步步的打断点,整整找了几个小时。。。

就在焦头烂额的时候,心想这下无解了吗,不可能

继续扫描代码,终于发现了,原来是在数据缓存上出了问题啊,缓存表上保存的栏目路径和实际栏目路径完全不是一回事,dedecms在配置文件缓存上需要有足够的权限才能访问,调整了权限后,对缓存表和实际栏目表对应起来,最终解决问题。

phpcms那点事——setting_models

关于phpcms的setting_models[”]一说,网站建设麦芒在这里简单说下:

今天在做phpcms的二次开发的时候,突然遇到一个不解的问题,一客户要求将phpcms的网页模块进行二次开发,在phpcms\modules\yp\index.php文件里面就有如下的一段代码:

//列表页推荐位ID,模块配置推荐位第二个为列表页推荐位配置
$posid = intval($this->setting[‘position’][2][‘posid’]);
$siteid = SITEID;
$SEO = seo(SITEID, ”, $this->setting[‘seo_title’], $this->setting[‘seo_description’], $this->setting[‘seo_keywords’]);
//产品modelid
$product_id = $this->setting_models[73];
$buy_id = $this->setting_models[76];
$news_id = $this->setting_models[72];//这句为麦芒添加

看到如何得来”产品modelid“感觉很困惑,因为麦芒想得到”news_id”,所以才困惑不解的。

困惑点就是setting_models 里面为什么是73、76、72 ???

在数据中到处进行了查找,发现并没有任何的蛛丝马迹?难道这个setting_models里面的数字无中生有,我觉得不可能,程序中一切皆对象,不相信不存在…

编者麦芒就通过不断的var_dump()去调试,终于找到了缘由,原来$this->setting_models是一缓存数组,显然缓存是由文件缓存函数来生成的…  到目前为止,终于真相大白了

 

今天是一个好日子,luz工作室博客在今天正式上线

准备了几载,终于在今天,http://www.luzirq.com 正式上线了,为什么非要选择今天呢,在今后的每一天请听武汉建站luz工作室一一道来……

武汉建站luz工作室是一个集网站建设,网站优化,seo,仿站,软件开发,网页制作,源码修改等网络技术开发的帮助一切所需要的企业及个人排忧解难的一个团体。

关于这个工作室的更多详尽的介绍,也将在后面慢慢的”浮出水面“。