当前位置:  编程技术>php
本页文章导读:
    ▪php防范sql注入的一些代码收集      防范sql注入的代码: <?php /** * 防范sql注入 * edit www. */ $_POST = sql_injection($_POST); $_GET = sql_injection($_GET); function sql_injection($content) { if (!get_magic_quotes_gpc()) { if (is_array($content)) .........
    ▪php中method_exists()与is_callable()函数的区别分析      了解php函数method_exists()与is_callable()的区别? 在php面相对象设计过程中,往往需要在调用某一个方法是否属于某一个类的时候做出判断,常用的方法有method_exists()和is_callable()。 相比之下,is_c.........
    ▪php中time()和mktime()用法的区别分析      在php编程中,时间函数time(),返回当前时间的。而mktime()函数,不是返回当前时间,而是格式化时间。 虽然单独写mktime()而不加任何参数如:echo mktime()和echo time()的效果是一样的。但本质上是.........

[1]php防范sql注入的一些代码收集
    来源: 互联网  发布时间: 2013-12-24

防范sql注入的代码:

<?php
/**
* 防范sql注入
* edit www.
*/
$_POST = sql_injection($_POST);  
$_GET = sql_injection($_GET);  
  
function sql_injection($content)  
{  
if (!get_magic_quotes_gpc()) {  
if (is_array($content)) {  
foreach ($content as $key=>$value) {  
$content[$key] = addslashes()($value);  
}  
} else {  
addslashes($content);  
}  
}  
return $content;  
}  
?>

下面这个适合在php oop面向对象的程序中使用:

<?php 
/*  
函数名称:inject_check()  
函数作用:检测提交的值是不是含有SQL注射的字符  
参  数:$sql_str: 提交的变量  
返 回 值:返回检测结果,ture or false  
*/   
function inject_check($sql_str) {   
return eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str); // 进行过滤  
}  
 
/*  
函数名称:verify_id()  
函数作用:校验提交的ID类值是否合法  
参  数:$id: 提交的ID值  
返 回 值:返回处理后的ID  
*/   
function verify_id($id=null) {   
if (!$id) { exit('没有提交参数!'); } // 是否为空判断   
elseif (inject_check($id)) { exit('提交的参数非法!'); } // 注射判断   
elseif (!is_numeric($id)) { exit('提交的参数非法!'); } // 数字判断   
$id = intval($id); // 整型化   
  
return $id;   
}   
  
/*  
函数名称:str_check()  
函数作用:对提交的字符串进行过滤  
参  数:$var: 要处理的字符串  
返 回 值:返回过滤后的字符串  
*/   
function str_check( $str ) {   
if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否打开   
$str = addslashes($str); // 进行过滤   
}   
$str = str_replace()("_", "\_", $str); // 把 '_'过滤掉   
$str = str_replace("%", "\%", $str); // 把 '%'过滤掉   
  
return $str;   
}   
  
/*  
函数名称:post_check()  
函数作用:对提交的编辑内容进行处理  
参  数:$post: 要提交的内容  
返 回 值:$post: 返回过滤后的内容  
*/   
function post_check($post) {   
if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否为打开   
$post = addslashes($post); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤   
}   
$post = str_replace("_", "\_", $post); // 把 '_'过滤掉   
$post = str_replace("%", "\%", $post); // 把 '%'过滤掉   
$post = nl2br($post); // 回车转换   
$post = htmlspecialchars()($post); // html标记转换   
  
return $post;   
}   
?>

这里,再提供一个代码。
//预防数据库攻击的正确做法:

<?php  
function check_input($value)  
{  
// 去除斜杠  
if (get_magic_quotes_gpc())  
  {  
  $value = stripslashes()($value);  
  }  
// 如果不是数字则加引号  
if (!is_numeric($value))  
  {  
  $value = "'" . mysql_real_escape_string($value) . "'";  
  }  
return $value;  
}  
  
$con = mysql_connect()("localhost", "hello", "321");  
if (!$con)  
  {  
  die('Could not connect: ' . mysql_error());  
  }  
  
// 进行安全的 SQL  
$user = check_input($_POST['user']);  
$pwd = check_input($_POST['pwd']);  
$sql = "SELECT * FROM users WHERE  
user=$user AND password=$pwd";  
  
mysql_query()($sql);  
  
mysql_close($con);  
?>

注意:
mysql_real_escape_string()函数和addslashes()的功能类似。
mysql_real_escape_string()效果更好。
由于 mysql_real_escape_string()函数是必须在mysql连接之后才可以使用的,基于此,建议使用addslashes()函数进行处理。


    
[2]php中method_exists()与is_callable()函数的区别分析
    来源: 互联网  发布时间: 2013-12-24

了解php函数method_exists()与is_callable()的区别?
在php面相对象设计过程中,往往需要在调用某一个方法是否属于某一个类的时候做出判断,常用的方法有method_exists()和is_callable()。

相比之下,is_callable()函数要高级一些,它接受字符串变量形式的方法名作为第一个参数,如果类方法存在并且可以调用,则返回true。
如果要检测类中的方法是否能被调用,可以给函数传递一个数组而不是类的方法名作为参数。

数组必须包含对象或类名,以将其作为它的第一个元素,要检查的方法名则作为第二个元素。如果该方法在类中存在,函数返回true。

说了这么多,看下面的例子:
 

<?php
if ( is_callable( array( $obj, $method ) ) ) 
{ 
/*要操作的代码段*/ 
}
?>

is_callable()可以加收另外一个参数:
一个布尔值,如果将该参数设置为true,函数仅仅检查给定的方法或函数名称的语法是否正确,而不检查其是否真正存在。
method_exists()函数的参数为一个对象(或类名)和一个方法名,如果给定方法在对象的类中存在,则返回true。

例子:
 

<?php
if ( method_exists( $obj, $method ) ) 
{ 
/*要操作的代码段*/ 
}
?>

说明:
php函数method_exists()与is_callable()的区别,在php5中,一个方法存在并不意味着它就可以被调用。
对于private,protected和public类型的方法,method_exits()会返回true,但是is_callable()会检查存在其是否可以访问,如果是private,protected类型的,它会返回false。

就介绍这么多了,希望有助于大家理解这二个函数的区别。


    
[3]php中time()和mktime()用法的区别分析
    来源: 互联网  发布时间: 2013-12-24

在php编程中,时间函数time(),返回当前时间的。而mktime()函数,不是返回当前时间,而是格式化时间。
虽然单独写mktime()而不加任何参数如:echo mktime()和echo time()的效果是一样的。但本质上是不一样的。
PHP mktime() 函数
PHP Date / Time 函数

定义和用法
mktime() 函数返回一个日期的 Unix 时间戳。
参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。
参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

语法
mktime(hour,minute,second,month,day,year,is_dst)

参数 描述
 

hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst 
可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。
 

自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。
提示和注释
注释:在 PHP 5.1 之前,如果该函数的参数非法,则会返回 false。

例子:
mktime() 函数对于日期运算和验证非常有用。它可以自动校正越界的输入:
 

<?php
echo(date("M-d-Y",mktime(0,0,0,12,36,2001)));
echo(date("M-d-Y",mktime(0,0,0,14,1,2001)));
echo(date("M-d-Y",mktime(0,0,0,1,1,2001)));
echo(date("M-d-Y",mktime(0,0,0,1,1,99)));
?>

输出:
Jan-05-2002
Feb-01-2002
Jan-01-2001
Jan-01-1999

PHP time() 函数
PHP Date / Time 函数

定义和用法
time() 函数返回当前时间的 Unix 时间戳。

语法
time(void)

参数 描述
void 可选。
说明
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
提示和注释
提示:自 PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了发起该请求时刻的时间戳。

例1,
 

<?php
//time()函数示例1
$t=time();
echo($t . "<br />");
echo(date("D F d Y",$t));
?>

输出:
1138618081
Mon January 30 2006

例2,
 

<?php
//time()函数示例2
$nextWeek = time() + (7 * 24 * 60 * 60); // 7 days; 24 hours; 60 mins; 60secs
echo 'Now:       '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
?>

输出:
Now:       2005-03-30
Next Week: 2005-04-07


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3