PHP学习笔记之三,php短域名转移为实际域名函数

2020-01-17 22:37栏目:金沙网址大全
TAG:

近来在做三个核心投票网站,顾客懂一些顺序方面包车型地铁东西。有特地必要须求过滤一些字符幸免sql注入。本来这地点就从未特意的钻研过。呵呵,又弘扬了一遍拿来主义。把discuz论坛的sql防注入函数取了来! 复制代码 代码如下: $magic_quotes_gpc = get_magic_quotes_gpc(); @extract); @extract; @extract; if { $_FILES = daddslashes; } function daddslashes { if(!$GLOBALS['magic_quotes_gpc'] || $force) { if { foreach($string as $key => $val) { $string[$key] = daddslashes; } } else { $string = addslashes; } } return $string; } 我们能够加强下边包车型大巴代码加以保障服务器的安全,PHP防止SQL注入安全函数十一分至关主要! 复制代码 代码如下: /* 函数名称:inject_check(卡塔尔国函数作用:检查实验提交的值是或不是满含SQL注射的字符,幸免注射,怜惜服务器安全 参 数:$sql_str: 提交的变量 返 回 值:重回检查实验结果,ture or false */ function inject_check { return eregi('select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str卡塔尔; // 实行过滤 } /* 函数名称:verify_id()函数效用:校验提交的ID类值是不是合法 参 数:$id: 提交的ID值 返 回 值:重返管理后的ID */ function verify_id { exit; } // 是不是为空判别elseif { exit; } // 注射判别 elseif { exit; } // 数字剖断 $id = intval; // 整型化 return $id; } /* 函数名称:str_check(State of Qatar函数功用:对交付的字符串实行过滤 参 数:$var: 要管理的字符串 返 回 值:重回过滤后的字符串 */ function str_check { if (!get_magic_quotes_gpc { // 判断magic_quotes_gpc是还是不是展开 $str = addslashes; // 进行过滤 } $str = str_replace; // 把 '_'过滤掉 $str = str_replace; // 把 '%'过滤掉 return $str; } /* 函数名称:post_check(卡塔尔(قطر‎函数作用:对交付的编辑撰写内容张开始拍戏卖 参 数:$post: 要提交的内容 返 回 值:$post: 重返过滤后的剧情 */ function post_check { if (!get_magic_quotes_gpc { // 判断magic_quotes_gpc是或不是为开采 $post = addslashes; // 实行magic_quotes_gpc没有展开的动静对交付数据的过滤 } $post = str_replace; // 把 '_'过滤掉 $post = str_replace; // 把 '%'过滤掉 $post = nl2br; // 回车转变 $post = htmlspecialchars; // html标志调换 return $post; }

2011-1-12 * @link * @license * 计算目录下的文书行数及总文件数··去除注释 */ $obj = new CaculateFiles(卡塔尔; //若是设置为false,那不博览会示每一个文件的信息,不然展现$obj->setShowFlag; //会跳过全体All起头的文书 $obj->setFileSkip; $obj->run("D:PHPAPPphp_tests"State of Qatar; //全数文件, $obj->setFileSkip; $obj->run; $obj->setShowFlag; //跳过全数I和A伊始的文件, $obj->setFileSkip; $obj->run; /** * 实践目录中文件的总结(包罗文件数及总行数 * * 1、跳过文件的时候: * 相配的平整只是从文件名上起先,相配的家有家规也只限在上马。 * 2、跳过文件中的注释行: * 相配的规规矩矩只是从注释段落的头顶相称,如若现身// 及 *及 #及/*起来的行及空行会被跳过。所以形似/*这种多汗注释,每行的启幕都必须要抬高*号,否则不可能合营到这种的讲明。 * 3、目录过滤: * 相称的法则是从目录名的全名相称 */ class CaculateFiles { /** * 总计的后缀 */ private $ext = ".php"; /** * 是或不是出示每一个文件的总括数 */ private $showEveryFile = true; /** * 文件的的跳过准则 */ private $fileSkip = array(); /** * 计算的跳过行准则 */ private $lineSkip = array; /** * 总括跳过的目录准绳 */ private $dirSkip = array; public function __construct($ext = '', $dir = '', $showEveryFile = true, $dirSkip = array(), $lineSkip = array(), $fileSkip = array { $this->setExt; $this->setDirSkip; $this->setFileSkip; $this->setLineSkip; $this->setShowFlag; $this->run; } public function setExt && $this->ext = strtolower; } public function setShowFlag { $this->showEveryFile = $flag; } public function setDirSkip { $dirSkip && is_array && $this->dirSkip = $dirSkip; } public function setFileSkip { $this->fileSkip = $fileSkip; } public function setLineSkip { $lineSkip && is_array && $this->lineSkip = array_merge($this->lineSkip, $lineSkip); } /** * 施行计算 * @param string $dir 总结的目录 */ public function run { if return; if exit; $this->dump($dir, $this->readDir; } /** * 展现计算结果 * @param string $dir 目录 * @param array $result 计算结果(包蕴总行数,有效函数,总文件数 */ private function dump { $totalLine = $result['totalLine']; $lineNum = $result['lineNum']; $fileNum = $result['fileNum']; echo "*************************************************************rn
"; echo $dir . ":rn
"; echo "TotalLine: " . $totalLine . "rn
"; echo "TotalLine with no comment and empty: " . $lineNum . "rn
"; echo 'TotalFiles:' . $fileNum . "rn
"; } /** * 读取目录 * @param string $dir 目录 */ private function readDir { $num = array('totalLine' => 0, 'lineNum' => 0, 'fileNum' => 0); if { while ) !== false) { if ) continue; if (is_dir { $result = $this->readDir; $num['totalLine'] += $result['totalLine']PHP学习笔记之三,php短域名转移为实际域名函数_php本领_脚本之家。; $num['lineNum'] += $result['lineNum']; $num['fileNum'] += $result['fileNum']; } else { if ($this->skipFile continue; list = $this->readfiles; $num['totalLine'] += $num1; $num['lineNum'] += $num2; $num['fileNum']++; } } closedir; } else { echo 'open dir error!' . "r"; } return $num; } /** * 读取文件 * @param string $file 文件 */ private function readfiles { $str = file; $linenum = 0; foreach { if ($this->skipLine continue; $linenum++; } $totalnum = count; if (!$this->showEveryFile) return array; echo $file . "rn"; echo 'TotalLine in the file:' . $totalnum . "rn"; echo 'TotalLine with no comment and empty in the file:' . $linenum . "rn"; return array; } /** * 施行跳过的目录法则 * @param string $dir 目录名 */ private function skipDir { if (in_array) return true; return false; } /** * 实施跳过的公文法规 * @param string $file 文件名 */ private function skipFile { if (strtolower != $this->ext) return true; if return false; foreach ($this->fileSkip as $skip) { if === 0) return true; } return false; } /** * 施行文书中央银行的跳过法规 * @param string $string 行内容 */ private function skipLine { if return true; foreach ($this->lineSkip as $tag) { if === 0) return true; } return false; } }

复制代码 代码如下: $url = ""; echo unshorten; function unshorten { $url = trim; $headers = get_headers; $location = $url; $short = false; foreach { if($head=="HTTP/1.1 302 Found") $short = true; if($short && startwith { $location = substr; } } return $location; } function startwith{ return strpos === 0; }

上面是在Linux上登入mysql,创造数据库和创制表的历程。 yin@yin-Ubuntu10:~$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 360 Server version: 5.1.41-3ubuntu12.1 Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> create database UseCase; Query OK, 1 row affected mysql> use UseCase; Database changed mysql> create table User primary key,Password varchar not null,CreateTime timestamp default current_timestamp卡塔尔(قطر‎; Query OK, 0 rows affected 上面就来确立贰个页面来完毕新建客户的页面。首先是二个简便的表单: 复制代码 代码如下: PHP通过$_POST数组来拿到通过post方法提交的表单中的数据。在PHP程序中,我们率先要判别是有OK字段,进而推断出该页面是首次访问,仍然客户点击OK后交由的,接着剖断若干次密码输入是还是不是归总。然后就足以拿到到客户名和密码,插入数据库中。PHP连接MySQL数据库日常能够接纳mysql扩张大概mysqli扩充,mysqli扩展比较新一点,这里我们运用这种艺术。mysqli大概须求设置配置下,然而在自身的遇到中是暗许装好的。利用mysqli扩充操作数据库常常分为如下几步:布局mysqli对象,构造statement,绑定参数,实践,关闭。代码如下: 复制代码 代码如下: stmt_init(); $stmt->prepare; $stmt->bind_param; $name=$_POST["UserName"]; $pwd=$_POST["Password"]; $stmt->execute(); if { $success=true; }else { $success=false; } $stmt->close; } ?> 其中bind_param方法必要有些解释下,第几个参数的意思是参数类型。逐个字符对应一个参数,s表示字符串,i表示整数,d表示浮点数,b表示blob。最后,再为这一个页面增加一点提示音讯: 复制代码 代码如下:

1. 数组 PHP的数组其实是三个提到数组,也许说是哈希表。PHP没有必要事前评释数组的大小,可以用直接赋值的格局来创制数组。举个例子: //最守旧,用数字做键,赋值 $state[0]="Beijing"; $state[1]="Hebei"; $state[2]="Tianjin"; //借使键是多如牛毛的数字,则能够大概$city[]="Shanghai"; $city[]="Tianjin"; $city[]="Guangzhou"; //用字符串做键 $capital["China"]="Beijing"; $capital["Japan"]="Tokyo"; 用array(State of Qatar来创设数组会特别有益于一点,能够将数组成分作为array的参数字传送递给他,也足以用=>运算符成立关联数组。举例: $p=array; $capital=array(“China”=>”Beijing”, “Japan=>”Tokyo”State of Qatar; array其实是生机勃勃种语法构造,并非函数。和array相仿,还应该有三个list(卡塔尔国,它能够用来领取数组中的值,并给三个变量赋值。比方: list=$city; echo $s,' ',$t; 输出结果:Shanghai Tianjin 注意,list方法只可以用来由数字索引的数组。 PHP内建了部分常用的数组处理函数,具体能够参考手册。常用的函数比如如下,count或许sizeof能够拿到数组的长短,array_merge 能够统少年老成四个,大概四个数组,array_push可以像仓库同样接收数组。 复制代码 代码如下:

Password and Confirm Password must match.

'; array_push; $newarray=array_merge; foreach echo $elem.'
'; ?> 输出结果为: 3 Shanghai Tianjin Guangzhou Beijing Tokyo Paris 2. 类和对象金沙网址大全 , PHP5最早对面向对象编制程序有了很好的支撑。PHP中的类的概念和别的面向对象的语言比方C#是拾壹分相仿的,它也是三个值和艺术的聚合体,使用class关键字定义。举例: 复制代码 代码如下:

复制代码 代码如下:

userName=$userName; $this->password=$password; } public function GetUserName(卡塔尔(قطر‎ { return $userName; } public function ChangePassword { if($this->password==$old卡塔尔国 { $this->password=$new; return true; }else return false; } public function Login { return $this->password==$password; } public static function CreateUser { $user=new AuthUser; return $user; } } $user=AuthUser::CreateUser; echo $user->GetUserName(卡塔尔国; if($user->ChangePassword echo 'ChangePassword success'; else echo 'Change Password fail'; $user->ChangePassword; if echo "Login"; else echo "Login fail"; ?> 下边是四个即便从未什么用可是语法构造上较为完好的类。首先利用class关键字定义类的名字,内部能够定义字段和措施。字段和艺术的修饰词能够是private,protected,public 和 final。其含义和此外语言相符。不再赘言。区别之处在于,PHP不协理函数的重载。其余,PHP5的布局函数的定义是__construct,注意前缀是四个下划线。PHP4的布局函数的定义和别的语言同样,是和类名相同的函数,PHP5也相称这种写法。PHP5还帮衬析构函数,名字是__destruct。在函数内部,能够选取$this变量来拿到当前目的的援用。 PHP也帮衬静态函数,同样是接收static关键字修饰。示例中最终叁个函数就静态函数。静态函数不可能因此类的实例援用。 类的定义下边是选择类的代码示例,PHP也是经过new关键字来实例化一个类。通过->运算符来援引对象的办法。注意其静态类的援用方法是::,这是和C++风度翩翩致的。 上面再简介下类的世襲。PHP中使用extends关键字来促成类的持续,那是和Java生龙活虎致的: 复制代码 代码如下:

版权声明:本文由金沙网址大全发布于金沙网址大全,转载请注明出处:PHP学习笔记之三,php短域名转移为实际域名函数