php get_magic_quotes_gpc() addslashes()

最近学了学PHP,看到这段代码

function daddslashes($str){
       return (!get_magic_quotes_gpc())?addslashes($str):$str;
   }

发现get_magic_quotes_gpc())和addslashes()函数不太熟悉,就查了下资料,如下:

get_magic_quotes_gpc();就是取得php环境变量magic_quotes_gpc的值。如果值为1时,表示开启;如果为0时,表示该配置关闭!

  1. get_magic_quotes_gpc();值为1,表示开启。那么 php会自动为POST、GET、COOKIE传过来的参数值自动增加转义字符“\”,来确保这些数据的安全性。尤其是防止SQL注入。
  2. get_magic_quotes_gpc();值为0,表示关闭。php解析器不会自动为POST、GET、COOKIE传过来的参数值加转义字符“\”,那么这时就用addslashes函数来转义参数了。
  • get_magic_quotes_gpc();未开启,用addslashes函数过滤参数防止注入示例:

    <?php

    $str=$_POST[‘str‘];

    if(!get_magic_quotes_gpc()){//首先判断未开启

    $newStr=addslashes($str);//然后用addslashes函数过滤

    }

    ?>

    • addslashes() 函数在指定的预定义字符前添加反斜杠。

      这些预定义字符是:

      • 单引号 (‘)
      • 双引号 (")
      • 反斜杠 (\)
      • NULL
  • 默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
  • 讲得还蛮清楚的,所以就收藏起来了!!!

注明:源自网络

时间: 2024-11-05 11:54:27

php get_magic_quotes_gpc() addslashes()的相关文章

php get_magic_quotes_gpc()函数用法介绍

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

php get_magic_quotes_gpc()

magic_quotes_gpc函数在php中的作用是判断解析用户输入的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序异常,特别是数据库语句因为特殊字符引起的污染而出现致命的错误 在magic_quotes_gpc=On的情况下,如果输入的数据有 单引号(’).双引号(”).反斜线()与 NUL(NULL 字符)等字符都会被加上反斜线.这些转义是必须的,如果这个选项为off,那么我们就必须调用addslashes这个函数来为字符串增加转义.

get_magic_quotes_gpc()

get_magic_quotes_gpc 取得 PHP 环境变数 magic_quotes_gpc 的值,属于 PHP 系统功能. 语法: long get_magic_quotes_gpc(void); 返回值: 长整数 这个函数做什么的? 本函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值.返回 0 表示关闭本功能:返回 1 表示本功能打开.当 magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号

PHP实例学习之&mdash;&mdash;&mdash;&mdash;MVC架构模式分析与设计

  写博客,不容易,你们的评论和转载,就是我的动力, 但请注明出处,隔壁老王的开发园:http://www.cnblogs.com/titibili 2016年1月31日 18:53 作者:Ygirl Model(模型) View(视图) Controller(控制器) 以前大部分应用程序通过过程化模式创建 然而,代码混叠 MVC优势: MVC开发环境: 编辑器:  EmEditor Php环境:运用WampServe集成软件安装配置而成 下载地址:http://www.wampserver.c

MVC架构模式分析与设计(一)---简单的mvc架构

首先 我要感谢慕课网的老师提供视频资料 http://www.imooc.com/learn/69 下面我来进行笔记 我们制作一个简单的mvc架构 制作第一个控制器 testController.class.php <?php /** * */ class testController { function show(){ // 控制器的作用是调用模型,冰调用视图,将模型产生的数据传递到视图 // 让相关视图去显示 echo "hello world"; } } 制作第一个模型

php long time(1)

好久好久没有发表新的文章了,主要是懒得在这里写,都记在记事本上,所得都是自己理解的情况下写的,如今借此闲暇记录下来,:::: ****************PHP********************************************************************************************************************包含了php的基础知识点的自我理解*****还有自我mysql数据库的强化***************

我的简单PHP框架——LabPHP

就我上次提到的  基于MVC设计模式实现简单PHP框架(雏形)-初期 这次列出我实现的LabPHP简易框架,该框架中没有使用任何的模板引擎,所以说要在模板中使用到php变量的话,仍然需要用到php的标签和语法,输出显示变量.但是却大体实现了逻辑与界面的分离. 该框架的简单同时也因此存在的许多的局限性,如目录结构不能轻易修改,当然除非修改框架内容,介于时间关系我也没有做过多的修改. LabPHP框架的目录结构如下: 项目的目录结构如下: 入口文件为 index.php URL模式为: http:/

PHP框架_Smarty_实现登录功能

1.项目框架 |--mvc |--data 数据 |--cache 缓存 |--template_c 模板生成目录 |--framework |--function |--function.php 功能类 |--libs |--core |--DB.class.php 数据库工具类 |--VIEW.class.php 视图工具类 |--db |--mysql.class.php  mysql工具类 |--view |--Smarty smarty核心文件 |--include.list.php

PHP之简单实现MVC框架

PHP之简单实现MVC框架 1.概述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 2.代码结构 3.代码实现 1 2 3 4 5 6 7 8 9 10 1