如下图所示,logincheck.phpp是什么意思?检查?

当前位置: >
Discuz目录、文件是否可写权限检查函数dirfile_ch
栏目: 来源:
函数:dirfile_check(&$dirfile_items)参数:$dirfile_items 目录和文件构成的二维数组位置:/install/include/install_function.php作用:检查discuz目录、文件是否可写,这是安装前非常必要的检查,如果discuz程序文件或目录不可写,那么,就无法安装。& 当程序安装到第一步时,使用这个函数来检测一下discuz程序文件所在目录和文件是不是可写,如下图所示:检查原理:& 1. 先在install_var.php文件里面,把上图中的“文件”和“目录”名称写入到一个二维数组里面,代码如下:& 2. 遍历数组并进行检查目录、文件是否有可写权限,把不同情况写入到数组$dirfile_items里面,这个跟环境检查函数env_check类似。代码分析开始:& 1. 函数结构:& & &根据$item['path']来判断是目录还是文件:& & & &a) 当$item['path']为目录时,分为目录可写权限和不可写权限,当一个目录有不可写权限时,又分为是不是一个目录。& & & &b) 当$item['path']为文件,分为存在文件和不存在二种情况。& 2. 获取路径:$item_path&=&$item['path'];& 3. 当类型$item['type'] 为“dir”时:& & & a) 如果ROOT_PATH.$item_path不是一个可写的目录(这里用到一个判断目录是不是可写函数dir_writeable($dir),如果不是一个目录则创建这个目录,否则,如果是一个目录,判断一下是不是可写,成功返回true,不可写返回false),如果给定的文件名ROOT_PATH.$item_path是一个目录,则状态设置为0,current数组值设为'+r',否则,分别设置为-1和'nodir',代码如下:&&&&&&&&&&&&&&&&if(is_dir(ROOT_PATH.$item_path))&{
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['status']&=&0;
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['current']&=&'+r';
&&&&&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['status']&=&-1;
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['current']&=&'nodir';
&&&&&&&&&&&&&&&&} &如果可读写的话,直接把status和current分别设置为1和'nodir',代码如下:&&&&&&&&&&&&&&&&$dirfile_items[$key]['status']&=&1;
&&&&&&&&&&&&&&&&$dirfile_items[$key]['current']&=&'+r+w';&4. 如果$item['path']是一个文件:如果ROOT_PATH.$item_path文件存在,且是一个可写的文件,则把数组里面对应的键status和current分别设置为:1和'+r+w',否则,设置为0和'+r',代码如下:&&&&&&&&&&&&if(file_exists(ROOT_PATH.$item_path))&{
&&&&&&&&&&&&&&&&if(is_writable(ROOT_PATH.$item_path))&{
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['status']&=&1;
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['current']&=&'+r+w';
&&&&&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['status']&=&0;
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['current']&=&'+r';
&&&&&&&&&&&&&&&&}&如果这个文件ROOT_PATH.$item_path不存在,则使用函数dir_writeable创建目录,若可以创建则设置status和current分别设置为:1和'+r+w',否则,设置为-1和'nofile',代码如下:&&&&&&&&&&&&&&&&if(dir_writeable(dirname(ROOT_PATH.$item_path)))&{
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['status']&=&1;
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['current']&=&'+r+w';
&&&&&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['status']&=&-1;
&&&&&&&&&&&&&&&&&&&&$dirfile_items[$key]['current']&=&'nofile';
&&&&&&&&&&&&&&&&} &通过这个函数这样处理后,数组$dirfile_items就多了二个键值,如下所示:Array
&&&&[config]&=&&Array
&&&&&&&&&&&&[type]&=&&file
&&&&&&&&&&&&[path]&=&&./config/config_global.php
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[ucenter&config]&=&&Array
&&&&&&&&&&&&[type]&=&&file
&&&&&&&&&&&&[path]&=&&./config/config_ucenter.php
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[config_dir]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./config
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[data]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[cache]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/cache
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[avatar]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/avatar
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[plugindata]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/plugindata
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[plugindownload]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/download
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[addonmd5]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/addonmd5
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[ftemplates]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/template
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[threadcache]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/threadcache
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[attach]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/attachment
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[attach_album]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/attachment/album
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[attach_forum]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/attachment/forum
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[attach_group]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/attachment/group
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[logs]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./data/log
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[uccache]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./uc_client/data/cache
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[uc_server_data]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./uc_server/data/
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[uc_server_data_cache]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./uc_server/data/cache
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[uc_server_data_avatar]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./uc_server/data/avatar
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[uc_server_data_backup]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./uc_server/data/backup
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[uc_server_data_logs]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./uc_server/data/logs
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[uc_server_data_tmp]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./uc_server/data/tmp
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+w
&&&&[uc_server_data_view]&=&&Array
&&&&&&&&&&&&[type]&=&&dir
&&&&&&&&&&&&[path]&=&&./uc_server/data/view
&&&&&&&&&&&&[status]&=&&1
&&&&&&&&&&&&[current]&=&&+r+wphp checkdate()函数检验日期的有效性实例详解
原创
1296
摘要:我们都知道一年有12个月,一个月有31天(或30天,2月有28天,闰年2月有29天),一个星期有7天,一天有24个小时......等等。但是我们的计算机不知道啊,它是不能自己分辨数据的对与错的,所以,只能依靠开发者提供的功能去执行或检查。在PHP中使用 checkdate()函数来进行日期检查,本章我们就给大家讲解 “checkdate()”函数。
我们都知道一年有12个月,一个月有31天(或30天,2月有28天,闰年2月有29天),一个星期有7天,一天有24个小时......等等。但是我们的计算机不知道啊,它是不能自己分辨数据的对与错的,所以,只能依靠开发者提供的功能去执行或检查。在PHP中使用 checkdate()函数来进行日期检查,本章我们就给大家讲解 “checkdate()”函数。checkdate()函数语法:checkdate()函数是检查日期的有效性,它的语法如下: checkdate (month , day ,year )语法详解:如果给出的日期有效则返回 TRUE,否则返回 FALSE。它有三个参数:其中 month 的有效值为1~12;day的有效值为当月的最大天数,如1月为31天,2月为29天(闰年);year 的有效值从1~366.checkdate()函数实例我们使用checkdate()函数来检查一个正确的日期,一个错误的日期,代码如下:首先检查对的日期:&?php
header(&Content-type:text/charset=utf-8&);
//设置编码
$year=2017;
var_dump(checkdate($year,$month,$day));
?&运行结果如下图:下面我们再用checkdate()函数来检查一个错误的日期,我们看上面的实例知道4月份有30天,我们现在将30改为31天,代码如下:&?php
header(&Content-type:text/charset=utf-8&);
//设置编码
$year=2017;
var_dump(checkdate($month,$day,$year));
?&运行结果如下图:也可以直接在checkdate()函数里面写日期&?php
header(&Content-type:text/charset=utf-8&);
//设置编码
var_dump(checkdate(12,4,2017));
?&上面就是checkdate()函数的简单运用,下一节,我们讲解date()函数的参数format的格式化选项。以上就是php checkdate()函数检验日期的有效性实例详解的详细内容,更多请关注php中文网其它相关文章!
江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。
PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...
ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...
本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。
所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...
《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。
本课以最新版ThinkPHP5.0.10为基础进行开发,全程实录一个完整企业点,从后台到前台,从控制器到路由的全套完整教程,不论是你是新人,还是有一定开发经验的程序员,都可以从中学到实用的知识~~
ThinkPHP是一个快速、开源的轻量级国产PHP开发框架,是业内最流行的PHP框架之一。本课程以博客系统为例,讲述如何使用TP实战开发,从中学习Thinkphp的实践应用。模版下载地址:http:/...
本课程是php实战开发课程,以爱奇艺电影网站为蓝本从零开发一个自己的网站。目的是让大家了解真实项目的架构及开发过程
本课以一个极简的PHP开发框架为案例,向您展示了一个PHP框架应该具有的基本功能,以及具体的实现方法,让您快速对PHP开发框架的底层实现有一个清楚的认识,为以后学习其实的开发框架打下坚实的基础。
javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。...
本站9月直播课已经结束,本套教程是直播实录,没有报上名或者漏听学员福利来了,赶紧看看吧,说不定这里就有你的菜
轻松明快,简洁生动,让你快速走入HTML5的世界,体会语义化开发的魅力
《php用户注册登录系统》主要介绍网站的登录注册功能,我们会从最简单的实现登录注册功能开始,增加验证码,cookie验证等,丰富网站的登录注册功能
Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。为所有开发者、所有应用场景而设计,它让前端开发更快速、简单,所有开发者都能快速上手...
《PHP学生管理系统视频教程》主要给大家讲解了HTML,PHP,MySQL之间的相互协作,实现动态的网页显示和获取数据.
JavaScript能够称得上是史上使用最广泛的编程语言,也是前端开发必须掌握的三技能之一:描述网页内容的HTML、描述网页样式的CSS以及描述网页行为的JavaScript。本章节将帮助大家迅速掌握...
《php.cn独孤九贱(2)-css视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了CSS知识...
《弹指间学会HTML视频教程》从最基本的概念开始讲起,步步深入,带领大家学习HTML,了解各种常用标签的意义以及基本用法,学习HTML知识为以后的学习打下基础
jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的...
《最新微信小程序开发视频教程》本节课程是由微趋道录制,讲述了如何申请一个微信小程序,以及开发中需要使用哪些工具,和需要注意哪些等。
PHP开发工程师
文章总浏览数php captcha 有check方法检查验证码吗_百度知道
php captcha 有check方法检查验证码吗
我有更好的答案
必须要有,不然用户输入的验证码你怎么知道是正确的呢?在你生出验证码的时候存入session中,用户提交的时候和session中的做比较即可
采纳率:82%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。PHP里 $check-&check($string) 是什么意思?_百度知道
PHP里 $check-&check($string) 是什么意思?
貌似有人答非所问!这个符号 -& 是什么意思 ?
我有更好的答案
$check是一个类的实例,也就是说是个对象。check是这个对象的方法。举个栗子:class blabla {
public function check($string) {
echo '大家好,我是' , $string , ',我是来打酱油的';
}}$string = '楼主';$check = new blabla();$check-&check($string);将输出:大家好,我是楼主,我是来打酱油的
采纳率:23%
string check=Request[&u&];表示获取前台页面提交的参数为u传过来的值。以便进行后续处理。 补充举例:表示这个url含有h和u两个参数比如a.aspx?u=a&H=c获取的结果就是a和c
为您推荐:
其他类似问题
您可能关注的内容
string的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。ThinkPHP教程 列表
相关参考课程ThinkPHP 自动验证实例ThinkPHP 自动验证语法回顾
ThinkPHP 自动验证格式如下(更详细信息见:《》):
array(验证字段,验证规则,错误提示[,验证条件][,附加规则][,验证时间])
ThinkPHP 自动验证定义的附加规则如下:
regex:使用正则进行验证(默认)
unique:验证唯一性
confirm:验证表单中的两个字段是否相同
equal:验证是否等于某个值
in:验证是否在某个范围内
function:使用函数验证
callback:使用方法验证
自动验证例子
各种自动验证参考例子如下:
// 默认情况下用正则进行验证
array('title','require','标题不能为空。'),
array('order','number','排序必须是数字。',2),
array('email','email','邮箱格式不符合要求。'),
array('qq','qq','QQ号码不正确。'),
// 在新增的时候验证标题title字段是否唯一
array('title','','标题已经存在!',0,'unique',1),
// 验证确认密码是否和密码一致
array('repassword','password','确认密码不正确。',0,'confirm'),
// 验证class填写的值为 一班
array('class','一班','班级必须填写一班。',0,'equal'),
// 当值不为空的时候判断是否在一个范围内
array('value',array(1,2,3),'值的范围不正确。',2,'in'),
// 自定义函数验证用户名格式
array('username','checkName','用户名格式不正确。',0,'function'),
// 在注册或更改资料是调用 checkEmail 方法检查邮箱
array('email','checkEmail',1,'callback'),
使用正则表达式(regex)验证
上述几类附加规则中,使用正则表达式是经常使用的,也是系统默认的验证附加规则。系统内置了如下正则检测规则:
require(必须)、email(邮箱格式)、url(URL地址)、currency(货币)、number(数字)、qq(QQ号码)、english(英文字符)。
这些附加规则可以直接使用,如果这些附加规则无法满足要求,可以使用自定义的正则规则:
array('username','/^{3,15}$/','用户名不符合要求。'),
该规则要求用户名只能为英文字符及下划线和数字组成,且长度为3-15个字节。
要了解更多的正则表达式规则参见《》。
使用自定义函数(function)验证
使用自定义函数验证附加规则,函数可以是 Common/common.php 里的自定义函数,也可以是 PHP 的内置函数:
class UserModel extends Model{
protected $_validate = array(
array('username','checkName','用户名不符合要求。',0,'function'),
自定义 checkName 函数:
function checkName($username){
if(!preg_match('/^{3,15}$/', $username)){
提示:对于用户名的规则可以直接使用正则验证而无需函数,在此只是为了演示自定义函数的验证的用法而已。
使用方法(callback)验证
ThinkPHP 自动验证还支持调用当前 Model 类的一个方法来进行验证。
class UserModel extends Model{
protected $_validate = array(
array('email','checkEmail','邮箱已经存在。',1,'callback'),
// checkEmail方法
protected function checkEmail(){
$User=new Model('User');
// 新用户注册,验证唯一
if(empty($_POST)){
if($user-&getByEmail($_POST)){
// 更改资料判断邮箱与其他人的邮箱是否相同
if($user-&where(&uid!={$_POST} and email='{$_POST}'&)-&find()){
当 checkEmail 方法返回 false 时,验证就不通过。
可见 ThinkPHP 自动验证功能十分强大,能满足对表单的各种验证要求。
本章节内容共分 4 部分:1.
ThinkPHP 自动验证实例3.
5idev.com(我爱开发网) — 提供最好的 、、、 及}

我要回帖

更多关于 logincheck.php 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信