gpt4 book ai didi

php - 帮助理解 magic_quotes_gpc()

转载 作者:可可西里 更新时间:2023-11-01 12:28:53 25 4
gpt4 key购买 nike

我是从上传文件的教程中学习这段 PHP 代码的

<form method="post" enctype="multipart/form-data">
<input name="userfile" type="file" id="userfile">
</form>

<?php
if (isset($_POST['upload']) && $_FILES['userfile']['size'] > 0) {
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

if (!get_magic_quotes_gpc()) {
$fileName = addslashes($fileName);
}

include 'library/config.php';
include 'library/opendb.php';

$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed');
include 'library/closedb.php';

现在我通过使用 php 文档了解了每个函数和所有内容

除了

get_magic_quotes_gpc()
  • 这是什么?它有什么作用?
  • 重要吗?如果是,是否有替代品?
  • PHP 手册说“从 PHP 5.3.0 开始,此功能已被弃用。强烈建议不要依赖此功能。”。请详细说明?
  • 没有办法将文件上传到(网络)服务器 harDisk 并提供指向它们的链接..

最佳答案

get_magic_quotes_gpc() 是一个检查配置 (php.ini) 的函数,如果 magic_quotes_gpc 关闭则返回 0(否则返回 1)。

当 magic_quotes 开启时,所有 '(单引号)、"(双引号)、\(反斜杠)和 NUL 都会自动用反斜杠转义。这是为了防止各种注入(inject)安全问题。

在您的情况下,代码会检查设置是否已关闭并添加斜杠以正确转义内容以防止 SQL 注入(inject)。

正如您所说 - 此功能已被弃用,将来肯定会被删除(事实上,他们在 PHP6 中删除了它)。

另一种方法是根据需要在运行时转义数据

关于php - 帮助理解 magic_quotes_gpc(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com