2010-06-28 94 views
1
if ((($_FILES["file"]["type"] == "image/gif") || 
     ($_FILES["file"]["type"] == "image/jpeg") || 
     ($_FILES["file"]["type"] == "image/pjpeg")) && 
    ($_FILES["file"]["size"] < 20000)) 
    { 
     header ("Location: index.html"); 
    } 

我正在使用上面的代码将页面重定向到index.html,如果用户上传了任何图像。但它不起作用。该页面没有被重定向。有谁能够帮助我?如果条件不起作用

预先感谢

+2

怎么了?你有错误吗? '$ _FILES [“file”] [“type”]'和'$ _FILES [“file”] [“size”]''中有什么值? – 2010-06-28 09:55:02

+0

确保'$ _FILES [“文件”]“不是空的,并且确实包含这些类型中的一个和匹配大小的图像 - 在此之前回显它们的值”if“ – Amarghosh 2010-06-28 09:56:04

+0

页面保持空白而不是重定向页面 – Rachel 2010-06-28 09:56:55

回答

0

是否重定向工作,而如果条件呢?也许它不是,如果条件未工作,但您的重定向命令中的一些错误。这有时有点奇怪,用header('Location: ...');

+0

是的重定向工作,没有如果条件 – Rachel 2010-06-28 10:22:41

+0

没问题这样,我们知道,这是真的如果条件失败。尝试删除if条件中的单个条件以查看哪些条件失败,哪些不是。这样我们就可以知道究竟在哪里搜索错误。 – 2010-06-28 10:33:52

0

PHP: header - manual:

记住,标题()必须在任何实际输出之前被调用 被发送, 或者通过正常的HTML标记,空白 线在一个文件中,或从PHP。

+0

你可以看到我的代码没有输出正在发送之前header() – Rachel 2010-06-28 10:07:01

0

鉴于此评论...

用户需要提交PDF或 Word文件。页面保持空白的 不是重定向的页面

此语句检查该图像是一个GIF,JPEG或PJPEG,如果它是其中一个它重定向。由于该图像将是pdf或doc类型,因此不符合条件。

if ((($_FILES["file"]["type"] == "image/gif") || 
     ($_FILES["file"]["type"] == "image/jpeg") || 
     ($_FILES["file"]["type"] == "image/pjpeg")) && 
    ($_FILES["file"]["size"] < 20000)) 
    { 
     header ("Location: index.html"); 
    } 

我建议你要if语句要么删除此完全,只是用“头(...”线 - 或要检查该文件是正确的类型,并显示一条消息,告知人们认为它是不...

if ($_FILES["file"]["type"] == "application/pdf") { 
    header ("Location: index.html"); 
} else { 
    echo 'Incorrect File Type'; 
} 
+0

图像如何可以输入pdf或doc?我是说,如果用户上传图像,他应该被重定向到其他主页到下一页 – Rachel 2010-06-28 10:10:18

0

$ _FILES [“file”] [“type” ]取决于客户端发送给服务器的内容。
使用getimagesize()来确定服务器上的mimetype。

调用exit();重定向后的
因为脚本保持运行,可以从301(重定向)修改HTTP状态回到像200,404,500等

你可以进一步加入调试您的if语句:

// ... 
    header ("Location: index.html"); 
    exit(); 
} else { 
    var_dump($_FILES["file"]); 
}