【发布时间】:2011-08-06 16:22:03
【问题描述】:
我拼凑了来自各种互联网资源的一些脚本,以使表单能够正常工作。我遇到了一个我无法解决的问题。我创建的表单允许用户在字段中提交他们的数据,外加一个图片附件(验证:.EPS 或 .JPG 格式)。
该脚本在 Firefox 和 Safari 中运行良好,但在 Internet Explorer 中却不行。在 IE 中,无论您是否附加了正确类型的图像,它都会返回错误文件类型的错误。因此,出于某种原因,IE 似乎没有像 PHP 要求的那样验证文件类型。
<?php
/* ....
snip
.... */
$filetype=$_FILES["prosp_client_logo"]["type"];
/* ....
snip
.... */
elseif($filetype=="application/postscript" or $filetype=="image/jpg" or $filetype=="image/jpeg") {
/* ....
snip
.... */
?>
如果您需要任何说明,请告诉我。
【问题讨论】:
-
您好,其中有很多代码无法解决您所描述的问题。您能否将其缩减为仅处理上传文件并返回错误的代码(并仔细检查您的修剪代码是否发生错误)。
-
这不是你问的,但肯定有人会告诉你,也可能是我。您应该阅读您的脚本容易受到攻击的 SQL 注入攻击。每当您将变量传递给 SQL 查询时,您应该首先将其传递给
mysql_real_escape_string()。你的代码中的例子是`$newentry="INSERT INTO TestTable (...) VALUES ('NULL','$user_name', '$user_email', '$filename')";` 首先你应该调用$user_name = mysql_real_escape_string($user_name);等所有这些变量。 -
谢谢,我感觉我的脚本不安全。我会尝试插入该代码。
-
@preinheimer - 我已经对它进行了相当大的修剪(它的形式要长得多),但是因为我不确定我可能在哪里绊倒了 IE,所以留下了很多。我知道它的结构不是很好。我将尝试进一步修剪,但欢迎任何对我在这里提出建议的人。谢谢!
-
@BrianChicago76:我已经为你完成了修剪。 :)
标签: php internet-explorer file-upload mime-types