【发布时间】:2010-08-18 00:57:54
【问题描述】:
我正在从一个上传文件的教程中学习这个 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 起,此功能已被弃用。强烈建议不要依赖此功能。”。请详细说明?
- 有没有办法将文件上传到(网络)服务器硬盘并提供指向它们的链接..
【问题讨论】:
-
无论magic_quotes如何,这段代码都容易受到sql注入的影响,如果你想要一个更好的答案,你应该给它一个[security]标签。写这篇文章的人不懂 php 或安全性。
-
好吧,如果禁止在我的输入(文本框)中输入 '(引号)字符,那么我将确保 SQL 注入不是我...
标签: php security function manual