zqifa的博客

我不管,反正我最萌~

php7报错Deprecated: Function get_magic_quotes_gpc() is deprecated问题解决

报错信息:

Deprecated: Function get_magic_quotes_gpc() is deprecated in D:\phpstudy_pro\WWW\im\app\common\checkData.php on line 52

报错代码如下:

if (!get_magic_quotes_gpc()) {    // 判断magic_quotes_gpc是否为打开
    $post = addslashes($post);    // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}

报错原因:
PHP7.4不推荐使用get_magic_quotes_gpc函数替代(PHP 7.4 deprecated get_magic_quotes_gpc function alternative)。

解决办法:

在程序入口位置或者报错文件开头添加如下代码:

define('MAGIC_QUOTES_GPC',ini_set("magic_quotes_runtime",0)?True:False);

或者切换php到7.3版本,这个报错自然也就没有了。

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

始终返回 FALSE,因为这个魔术引号功能已经从 PHP 中移除了。

下面给出一个兼容各个php版本的示例:

<?php
// 如果启用了魔术引号
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly
// 适用各个 PHP 版本的用法
if (get_magic_quotes_gpc()) {
    $lastname = stripslashes($_POST['lastname']);
}
else {
    $lastname = $_POST['lastname'];
}
// 如果使用 MySQL
$lastname = mysql_real_escape_string($lastname);
echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

作者:zqifa

出处:https://www.l1mn.com

原文地址:https://www.l1mn.com/p/s24q1.html

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

分类:php
标签:phpphp7

公告

昵称:zqifa

站龄: 3年10个月

博客持续完善ing,敬请期待...

打滚求打赏(๑ ̄ ̫  ̄๑)

此处弱弱求打赏~~万一有好心人呢~~

支付宝酱

支付宝赞助

微信酱

微信赞助

随笔分类

php(110)

linux(63)

python(44)

web前端(39)

js(35)

服务器(33)

mysql(30)

html(24)

docker(23)

windows(22)

centos(22)

django(20)

前端设计(18)

git(16)

常用软件(14)

数据库(14)

算法(14)

字符编码(13)

编程进阶(13)

笔记(12)

更多

我的标签

php(106)

linux(47)

python(45)

js(34)

mysql(30)

centos(28)

web前端(23)

docker(22)

windows(22)

django(20)

更多

相册

Copyright © zqifa 联系方式:z___qf@163.com