关于get_magic_quotes_gpc()函数(交互数据转义的判断)

在PHP中get_magic_quotes_gpc()函数是内置的函数,这个函数的作用就是得到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,但是又让用户进行配置的矛盾(用户必须在代码中加入magic_quotes_gpc是否开启的判断,如果是off状态,就必须调用addslashes这个函数来为字符串增加转义),在PHP6中删除了这个选项,一切的编程都需要在magic_quotes_gpc=Off下进行了。在这样的环境下如果不对用户的数据进行转义,后果不仅仅是程序错误而已了。同样的会引起数据库被注入攻击的危险。所以从现在开始大家都不要再依赖这个设置为On了,以免有一天你的服务器需要更新到PHP6而导致你的程序不能正常工作。

Read More

绝对路径和相对路径总结

虽然入门的时候第一个接触的概念就是绝对路径和相对路径,但是在使用的时侯,仍然会出现很多的问题,今天就把以往会犯的错误做一个总结。

一、绝对路径

概念:是从盘符开始的路径,形如C:\windows\system32\cmd.exe(Windows 系统),LINUX系统中 绝对路径 以“/”为起始 例:/home/user1/abc1.txt
在网络中,以http开头的链接都是绝对路径,绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,绝对路径一般在CGI程序的路径配置中经常用到,而在制作网页中实际很少用到。

二、相对路径

概念:指相对于该文件本身的其他文件的位置
以下为建立路径所使用的几个特殊符号,及其所代表的意义。(qq文件的位置:E:/wamp/www/xm/home1/qq.php)
“./“:代表目前所在的目录。例:./user1/abc1.php 也可简写成:user1/abc1.php
“../“:代表上一层目录。例:../home2/user2/abc2.php
以”/“开头:代表根目录。例:/xm/home2/user2/abc2.php
一般来讲讲在一个文件中引入另一个文件或图片,那么导入另一文件的路径则是相对于该文件的本身,这里也有两种导入的方法:
1.从该文件的自身位置开始找:../home2/user2/abc2.php
2.从根目录开始找:/xm/home2/user2/abc2.php(推荐使用此方法)

Read More