2012年8月31日
摘要: msql: 送出 query 字符串。 msql_affected_rows: 得到 mSQL 最后操作影响的列数目。 msql_close: 关闭 mSQL 数据库连接。 msql_connect: 打开 mSQL 数据库连接。 msql_create_db: 建立一个新的 mSQL 数据库。 msql_createdb: 建立一个新的 mSQL 数据库。 msql_data_seek: 移动内部返回指针。 msql_dbname: 取得目前所在数据库名称。 msql_drop_db: 删除指定的 mSQL 数据库。 msql_dropdb: 删除指定的 mSQL 数据库。 msql_err 阅读全文
posted @ 2012-08-31 11:55 莫笑 阅读(146) 评论(0) 推荐(0) 编辑
  2012年8月29日
摘要: require() 和 include() 几乎完全一样,除了处理失败的方式不同之外。include() 产生一个Warning而 require() 则导致一个 Fatal Error。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。 阅读全文
posted @ 2012-08-29 14:24 莫笑 阅读(179) 评论(0) 推荐(0) 编辑
  2012年8月27日
摘要: 1 找到php目录下的 php.ini.recommended (或者php.ini-dist)文件,重命名为 php.ini 并复制到系统盘的windows目录下(以c:\windows为例). 2 再把php目录下的php5ts.dll,libmysql.dll复制到目录 c:\windows\system32下. 3 把php\ext目录下的php_gd2.dll,php_mysql.dll,php_mbstring.dll文件复制到c:\windows\system32下 注意:不要把 php_mysql.dll 和 php_mssql.dll 混淆 如果没有加载 php_g... 阅读全文
posted @ 2012-08-27 11:33 莫笑 阅读(327) 评论(0) 推荐(0) 编辑
  2012年8月21日
摘要: 1、 普通用户与系统管理员用户的权限要有严格的区分。2、 强迫使用参数化语句。 3、 加强对用户输入的验证。 4、 多多使用SQL Server数据库自带的安全参数。 5、 多层环境如何防治SQL注入式攻击?6、 必要的情况下使用专业的漏洞扫描工具来寻找可能被攻击的点。http://www.oecp.cn/hi/right_way/blog/2274 阅读全文
posted @ 2012-08-21 16:56 莫笑 阅读(306) 评论(0) 推荐(0) 编辑
摘要: SQL注入攻击的简单示例: statement := "SELECT * FROM Users WHERE Value= " + a_variable + " 上面这条语句是很普通的一条SQL语句,他主要实现的功能就是让用户输入一个员工编号然后查询处这个员工的信息。但是若这条语句被不法攻击者改装过后,就可能成为破坏数据的黑手。如攻击者在输入变量的时候,输入以下内容SA001’;drop table c_order--。那么以上这条SQL语句在执行的时候就变为了SELECT * FROM Users WHERE Value= ‘SA001’;drop table c 阅读全文
posted @ 2012-08-21 16:33 莫笑 阅读(5407) 评论(0) 推荐(0) 编辑
  2012年8月20日
摘要: $strDelCodes = "A;B;;C;;C;D;;;D;D";$rsArray = array_values (array_unique (array_diff (split (";", $strDelCodes), array (""))));数组$rsArray中存的值为:A B C Darray_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。array_unique() 函 阅读全文
posted @ 2012-08-20 16:48 莫笑 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 与PHP字符串转义相关的配置和函数如下:1.magic_quotes_runtime PHP5.3.0以上为关闭,set、get废除2.magic_quotes_gpc magic_quotes_gpc设置是否自动为GPC(GET,POST,COOKIE)传来的数据中的某些字符进行转义3.addslashes()和stripslashes() addslashes()‍ 在指定的预定义字符前添加反斜杠。预定义字符包括单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。 stripslashes()函数的功... 阅读全文
posted @ 2012-08-20 15:54 莫笑 阅读(458) 评论(0) 推荐(0) 编辑
  2012年8月18日
摘要: 没啥区别,一般用(int),另外还有 float, string, array 等intval()而言,如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。如果字符串第一个是‘-',则从第二个开始算起。如果参数是符点数,则返回他取整之后的值。例:intval("A")=0; intval(12.3223)=12; intval("1123Asdfka3243")=1123;$a=0.99;$b=(int)$a; //$b=0;$a=1.99;$b=(int)$a; //$b=1; 阅读全文
posted @ 2012-08-18 11:50 莫笑 阅读(5366) 评论(0) 推荐(0) 编辑
  2012年8月17日
摘要: 有些时候在执行数据库的INSERT操作后需要知道其产生的ID(我用的MySQL,主键都是设的AUTO_INCREMENT,执行插入操作的时候不用指定ID的值而由数据库自行产生),这时候就可以使用PHP的函数mysql_insert_id()直接获得这个ID,非常方便。但是有一点,如果在INSERT语句里面明确指出了具有AUTO_INCREMENT属性的ID列的值,那么函数将返回0,因为该ID值是由用户指定的,不是由数据库自动产生的。PHP手册对该函数的描述如下:mysql_insert_id()mysql_insert_id() 函数返回上一步INSERT操作产生的ID。如果上一查询没有产生 阅读全文
posted @ 2012-08-17 17:50 莫笑 阅读(23534) 评论(0) 推荐(0) 编辑
摘要: 一条 SQL 语句会通过CDbCommand以如下两种方式被执行:execute(): 执行一个无查询 (non-query)SQL语句, 例如INSERT,UPDATE和DELETE。如果成功,它将返回此执行所影响的行数。query(): 执行一条会返回若干行数据的 SQL 语句,例如SELECT。 如果成功,它将返回一个CDbDataReader实例,通过此实例可以遍历数据的结果行。为简便起见, (Yii)还实现了一系列queryXXX()方法以直接返回查询结果。 阅读全文
posted @ 2012-08-17 16:59 莫笑 阅读(239) 评论(0) 推荐(0) 编辑