2010-06-28 84 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"]); 
}