php get_magic_quotes_gpc()函数用法介绍

在magic_quotes_gpc=On的情况下,如果输入的数据有

单引号(’)、双引号(”)、反斜线()与 NUL(NULL 字符)等字符都会被加上反斜线。这些转义是必须的,如果这个选项为off,那么我们就必须调用addslashes这个函数来为字符串增加转义。

正是因为这个选项必须为On,但是又让用户进行配置的矛盾,在PHP6中删除了这个选项,一切的编程都需要在magic_quotes_gpc=Off下进行了。在这样的环境下如果不对用户的数据进行转义,后果不仅仅是程序错误而已了。同样的会引起数据库被注入攻击的危险。所以从现在开始大家都不要再依赖这个设置为On了,以免有一天你的服务器需要更新到PHP6而导致你的程序不能正常工作。

 代码如下 复制代码

当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1

当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc()就会返回0

因此可以看出这个get_magic_quotes_gpc()函数的作用就是得到环境变量magic_quotes_gpc的值。既然在PHP6中删除了magic_quotes_gpc这个选项,那么在PHP6中这个函数我想也已经不复存在了。

php 判断是否开启get_magic_quotes_gpc功能了,以方便我们是否决定使用addslashes这个函数了。

 代码如下 复制代码

function SQLString($c, $t){
 $c=(!get_magic_quotes_gpc())?addslashes($c):$c;
 switch($t){
  case 'text':
   $c=($c!='')?"'".$c."'":'NULL';
   break;
  case 'search':
   $c="'%%".$c."%%'";
   break;
  case 'int':
   $c=($c!='')?intval($c):'0';
   break;
 }
 return $c;
}

预防数据库攻击的正确做法

 代码如下 复制代码

<?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);

?>

时间: 2024-09-27 22:04:10

php get_magic_quotes_gpc()函数用法介绍的相关文章

javascript中函数用法介绍(匿名函数,函数传值,参数)(1/2)

第一课 -- 匿名函数 一.什么是匿名函数? 在Javascript定义一个函数一般有如下三种方式: 1.函数关键字(function)语句:  代码如下 复制代码 function fnMethodName(x){alert(x);} 2.函数字面量(Function Literals): var fnMethodName = function(x){alert(x);} 3.Function()构造函数: var fnMethodName = new Function('x','alert(

Laravel 5.3 cache()函数用法介绍

自从来到贝贝后,工作越来越忙,已经做不到一日一更了,一个星期能做到三篇更新就很不容易了,惭愧... 今天我们来看一看 Laravel 5.3 中新增的一个辅助函数:cache. 这个辅助函数和另外两个辅助函数很相似:session和cookie,它们都有三个用法:获取值,设置值以及返回对应服务的实例,以session为例: session('abc', null)会获取abc对应的值,如果为空的话返回null session(['abc'=>'laravel学院'])设置abc的值为Larave

java中random()函数用法介绍

Random() 创建一个新的随机数生成器.    代码如下 复制代码 Random(long seed) 使用单个 long 种子创建一个新的随机数生成器. 我们可以在构造Random对象的时候指定种子,如:  代码如下 复制代码 Random r1 = new Random(20); 或者默认当前系统时间对应的相对时间有关的数字作为种子数:  代码如下 复制代码 Random r1 = new Random(); 种子数只是随机算法的起源数字,和生成的随机数字的区间无关. 2.Random类

php自定义函数用法介绍

自定义函数 7.2.1函数命名基本原则: 1.函数名不能和已有的函数名重名. 2.函数名只能包含字母.数字和下划线. 3.函数名不能以数字开头   7.2.2基本使用:用function进行声明  代码如下 复制代码 <?php //创建函数 function funcCountArea($radius) {     return $radius*$radius*pi();    }   //使用函数 $area = funcCountArea(20); echo $area; echo '<

PostgreSQL的时间日期函数用法介绍

一.获取系统时间函数 1.1 获取当前完整时间  代码如下 复制代码 select now(); david=# select now();               now              -------------------------------  2013-04-12 15:39:40.399711+08 (1 row) david=# current_timestamp 同 now() 函数等效. david=# select current_timestamp;    

PHP curl_setopt函数用法介绍

bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置,value是这个选项给定的值 伪造登录 主站wap登录和discuz论坛wap登录,两边的用户数据资料在同一个表中进行调用   //论坛api登录接口地址 $uri = "http//www.111cn.net/ //参数数组  代码如下 复制代码 $data = array( 'username'

PHP中array_slice函数用法介绍

array_slice() 函数在数组中根据条件取出一段值,并返回. 注释:如果数组有字符串键,所返回的数组将保留键名.(参见例子 4) 语法 array_slice(array,offset,length,preserve) 函数在数组中根据条件取出一段值,并返回 参数  array  必需.规定输入的数组. offset  必需.数值.规定取出元素的开始位置.如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值. length  可选.数值.规定被返回数组的长度.如果是

python中函数用法介绍

 代码如下 复制代码 def sumOf(a, b):     return a + b 1. 函数形参 函数中的参数名称为'形参',调用函数时传递的值为'实参' 2. 局部变量 在函数内定义的变量与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的.这称为变量的作用域. global语句, 为定义在函数外的变量赋值时使用global语句.  代码如下 复制代码 def func():     global x     print "x is ", x     x

php中parse_url()函数用法介绍

PHP中一个好用的函数parse_url,特别方便用来做信息抓取的分析,举例子如下:  代码如下 复制代码 $url = "http://www.111cn.net/aaaa/";$parts = parse_url($url); 输出: Array (     [scheme] => http     [host] => www.111cn.net     [path] => /aaaa/ ) 又如:  代码如下 复制代码 <?php$url = 'http: