GVKun编程网logo

php函数get_magic_quotes_gpc详解(php get函数)

9

在本文中,我们将详细介绍php函数get_magic_quotes_gpc详解的各个方面,并为您提供关于phpget函数的相关解答,同时,我们也将为您带来关于get_magic_quotes_gpc(

在本文中,我们将详细介绍php函数get_magic_quotes_gpc详解的各个方面,并为您提供关于php get函数的相关解答,同时,我们也将为您带来关于get_magic_quotes_gpc()不能用怎么处理、get_magic_quotes_gpc()函数、get_magic_quotes_gpc()函数用法介绍、get_magic_quotes_gpc解决办法的有用知识。

本文目录一览:

php函数get_magic_quotes_gpc详解(php get函数)

php函数get_magic_quotes_gpc详解(php get函数)

set_magic_quotes_runtime是用来设置PHP 环境配置的变量 magic_quotes_runtime 值。
0-关闭 1-打开
程序中检测状态用get_magic_quotes_runtime,返回 0 表示关闭本功能;返回 1 表示本功能打开。若magic_quotes_runtime 打开时,所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。

本 函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0表示关闭本功能;返回 1 表示本功能打开。当 magic_quotes_gpc 打开时,所有的 '' (单引号), " (双引号), / (反斜线) and 空字符会自动加上转义符/;

默认情况下,PHP 指令magic_quotes_gpc为 on,它主要是对所有的 GET、POST 和 COOKIE (即G P C)数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_ magic_quotes_gpc() 进行检测。


其实这个函数就是判断有PHP有没有自动调用addslashes这个函数

 

<?php
echo get_magic_quotes_gpc(); //显示gpc状态值(0或1)
echo $_POST[''lastname''];

echo addslashes($_POST[''lastname'']);

if (!get_magic_quotes_gpc()) {
$lastname = addslashes($_POST[''lastname'']);
} else {
$lastname = $_POST[''lastname''];
}

echo
$lastname; //
Simao/''pig
$sql = "INSERT INTO lastnames (lastname) VALUES (''$lastname'')";
?>

get_magic_quotes_gpc()不能用怎么处理

get_magic_quotes_gpc()不能用怎么处理

get_magic_quotes_gpc()不能用怎么办
刚学php三天,希望高手们多多指教,谢谢哈
我用的编译软件是php5.4 。我在我的程序中使用了echo get_magic_quotes_gpc()函数来判断环境,从而决定输入数据库的信息是否需要设置转码。代码写好后在编译软件上没有显示错误,但是我打开浏览器却显示Deprecated: Function get_magic_quotes_gpc() is deprecated in.....。 于是我写了个测试用的语句echo get_magic_quotes_gpc();结果在浏览器上还是如此。
请问这种问题怎么解决,或者还有没有其它的方法来判断输入数据库的信息是否需要转码? 


------解决方案--------------------
这个函数已经抛弃了,所以也就不需要再使用了.
可以使用addslashes()对提交的变量进行过滤.
------解决方案--------------------
到了php5.4 已经移除了这个功能。你直接用mysql_real_escape_string() 或者 addslashes 进行转义。

get_magic_quotes_gpc()函数

get_magic_quotes_gpc()函数

get_magic_quotes_gpc

<script>ec(2);</script>

()函数


在PHP中()函数是内置的函数,这个函数的作用就是得到php.ini设置中magic_quotes_gpc选项的值。

那么就先说一下magic_quotes_gpc选项:
如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。

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

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

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

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

get_magic_quotes_gpc()函数用法介绍

get_magic_quotes_gpc()函数用法介绍

magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误

 

在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;

}

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

 代码如下 复制代码

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

?>


get_magic_quotes_gpc解决办法

get_magic_quotes_gpc解决办法

get_magic_quotes_gpc
大虾们,请教个问题哈。

我的php.ini中有关post/get数据中包含引号、反斜线自动转义的设置为

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape '' with '''' instead of \'').
magic_quotes_sybase = Off

,可是我不明白函数get_magic_quotes_gpc()的输出居然为int(1),为啥呢,不应该是int(0)吗?

求解答。

------解决方案--------------------
输出 phpinfo();看看你所看到的php.ini是不是输出的相同路径文件.另外是否修改后有重启apache.

关于php函数get_magic_quotes_gpc详解php get函数的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于get_magic_quotes_gpc()不能用怎么处理、get_magic_quotes_gpc()函数、get_magic_quotes_gpc()函数用法介绍、get_magic_quotes_gpc解决办法的相关知识,请在本站寻找。

本文标签: