stripslashes()函数的作用_strip和strap的区别

stripslashes()函数的作用_strip和strap的区别我们在向mysql写入数据时,比如:

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

我们在向mysql写入数据时,比如:mysql_query(”update table set `title`=’kuhanzhu’s blog’”);

那就会出错。同asp时一样,数据库都会对单引号过敏。而addslashes在这个时候就最长面子了,跟asp的replace(”‘”,”””,”kuhanzhu’s blog”)功能一样。

PHP为了安全性,所以引入了个magic_quotes_gpc = On的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境。

当magic_quotes_gpc = On时,使用了addslashes()处理后的数据在数据库中将以\’形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个\,因此stripslashes()出场了,它能把\去掉(区别于str_replace(”\”, “”,$Str))。

当magic_quotes_gpc = Off时,使用了addslashes()处理后的数据在数据库中将以’形式保存,没有上面说的有\的问题,addslashes()起到插入数据不出错的作用,如果此时直接输出的话,数据正常。不需要再用stripslashes()。addslashes()和stripslashes()正好是相反的,直接记忆:addslashes()加个\,stripslashes()去个\那么什么时候用呢?

简单说:当magic_quotes_gpc = On时,系统会自动处理单引号等问题,用不用addslashes()和stripslashes()都没关系,但是如果添加数据时用了addslashes(),那么显示数据时必须要stripslashes()当magic_quotes_gpc = Off时,系统不会处理单引号等问题,所以插入数据时必须要使用addslashes(),显示数据时则不需要使用stripslashes()。既然有了分析,做程序时要怎么办呢?根据以上两种情况,可得:不管magic_quotes_gpc是On还是Off,咱添加数据时都用addslashes(),当On时,必须使用stripslashes(),Off时则不能用stripslashes()。如何判断On还是Off呢?用get_magic_quotes_gpc()。

PHP在默认配置情况下是会自动转移 post 过来的数据的,要先stripslashes()之后再存入数据库,也就是说默认:magic_quotes_gpc = On

最后举例:

 

代码

//这是为了防止没有转义的情况下数据库出现插入错误,插入数据到数据库,代码省略

//获取内容,如果服务器没有设置自动转义(特殊字符加上/),就将数据中的特殊符号进行转义(防止数据库中存储出现错误)
 if(!get_magic_quotes_gpc()){

  $onedsContent=addslashes($onedsContent);//这里面是数据,不管有没单引号或者还是变量
 }

————————————————————————————————————————

//查询出来的内容由于在出入数据库中的时候转义了,这里再转义回来
   $onedsContent=stripslashes($onedsContent);

查看文档:http://baike.baidu.com/link?url=-_IZ2lBVP3EpK215R7PeWNuBh9xeVmeuqBrtK_Q6dXZM1gwXhgTH4aZnuKURzj4e4lWCHVqCxx4WKGSI2i2jxq

扎客小站:www.ezhake.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178796.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue的$attrs_vue获取list集合中的对象

    vue的$attrs_vue获取list集合中的对象​说明本文用示例介绍Vue的$attrs和$listener的用法官网API—Vue.js$attrs和$listeners介绍Vue2.4中,引入了attrs和listeners,新增了inheritAttrs选项。$attrs:包含了父作用域中没有被prop接收的所有属性(不包含class和style属性)。可以通过v-bind=”$attrs”直接将这些属性传入内部组件。$

    2022年8月31日
    5
  • sdfsfd

    sdfsfd

    2021年11月14日
    39
  • c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」

    c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」AfxGetMainWndAfxGetMainWnd获取自身窗口句柄HWNDhWnd=AfxGetMainWnd()->m_hWnd;GetTopWindow函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。函数原型:HWNDGetTopWindow(HWNDhWnd);参数:hWnd:被查序的父窗口的句柄。如果该…

    2022年7月21日
    9
  • XAMPP环境的搭建[通俗易懂]

    XAMPP环境的搭建[通俗易懂]XAMPP是一个强大的集成软件包(什么是集成软件包?就是多个软件打包一起安装了,比如office办公软件包括了word、Excel、PPT)XAMPP包括了Apache,MySQL,PHP,Perl

    2022年6月30日
    35
  • SLN文件格式[通俗易懂]

    SLN文件格式[通俗易懂]VisualStudio开发套装进入.net时代后,使用解决方案文件(后缀为sln的文件)表示一个项目组,他通常包含一个项目中所有的工程文件信息。了解sln文件格式,可以手动修改错误的sln文件,也可以对解析sln文件有帮助。以下就VisualStudio.Net

    2022年6月9日
    35
  • 虚拟村庄java_虚拟村庄怎么玩?[通俗易懂]

    虚拟村庄java_虚拟村庄怎么玩?[通俗易懂]那个人生病了,找另外一个人帮他治病1。生火。首先,要一个村民(成年的)到左下方拿干木柴;然后,再要他去左上方去拿干草(位置是海的最上方的一堆花的地方);等他都拿齐后,他都会放到村子中间的一圈石头围成的圈中,这时你再把他拖放到上面他就会生火了。2。水坝。这个任务需要你把村民培养成masterbuilder,而且要工程技术(Engineering)达到2级,否则不会成功。把masterbuil…

    2025年8月23日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号