按照通用编程的思想,函数之外的变量应该被视为全局变量。如果是全局变量,在函数中调用没有问题。本文主要和大家分享php调用函数之外的变量方法,希望对你有所帮助。php和我们的传统思维好像有点问题,那么
顺晟科技
2022-09-25 09:14:52
207
在查看别人写的一个php项目时,发现了一个很少见的函数 get_magic_quotes_gpc(),本着学习的态度查了一下这个函数的介绍与用法,下面顺晟科技博客就来详细的说一说!
php get_magic_quotes_gpc 函数介绍get_magic_quotes_gpc():此函数用于获取 php 环境变数 magic_quotes_gpc 的值,属于 php 系统功能。
语法:
long get_magic_quotes_gpc(void);
返回值:长整数
get_magic_quotes_gpc()函数可以获取 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示功能关闭;返回 1 表示本功能打开。当 magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号), (反斜线) and 空字符会自动转为含有反斜线的溢出字符。
在php的配置文件php.ini中,有个布尔值的设置,就是magic_quotes_runtime。当它打开时,php的大部分函数自动的给从外部引入的(包括数据库或者文件)数据中的溢出字符加上反斜线。 当然如果重复给溢出字符加反斜线,那么字符串中就会有多个反斜线,所以这时就要用set_magic_quotes_runtime()与get_magic_quotes_runtime()设置和检测php.ini文件中magic_quotes_runtime状态。
为了使自己的程序不管服务器是什么设置都能正常执行。可以在程序开始用get_magic_quotes_runtime检测该设置的状态决定是否要手工处理,或者在开始(或不需要自动转义的时候)用set_magic_quotes_runtime(0)关掉该设置。
magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的'"\加上反斜线。可以用get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用addslashes()函数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
get_magic_quotes_gpc 使用示例利用 get_magic_quotes_gpc()函数来预防数据库攻击的方法。
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);
30
2022-11
30
2022-11
30
2022-11
30
2022-11
28
2022-11
24
2022-10