2011-02-06 267 views
0

我爲我的網站構建了一個kindkinda image-api-key,但它似乎不起作用。我得到一個空白頁面,什麼也沒有返回!怎麼了?問候。返回白頁?

if(isset($_GET['key']) && !empty($_GET['key'])){ 
    $query = " SELECT 
        * 
       FROM 
        table 
       WHERE 
        apikey = '". mysql_real_escape_string($_GET['key']) ."' 
    "; 
    $mysqlquery = mysql_query($query); 

    if($mysqlquery){ 

     if(mysql_num_rows($mysqlquery) > 0){ 

      if(isset($_GET['type']) && isset($_GET['image'])){ 


       if($_GET['type'] == "gif"){ 


        if($_GET['image'] == "1"){ 
         header('Content-type: image/gif'); 
         echo file_get_contents('path/to/image/1.gif'); 
        } 

        elseif($_GET['image'] == "2"){ 
         header('Content-type: image/gif'); 
         echo file_get_contents('path/to/image/2.gif'); 
        } 

        elseif($_GET['image'] == "3"){ 
         header('Content-type: image/gif'); 
         echo file_get_contents('path/to/image/3.gif'); 
        } 

        elseif($_GET['image'] == "4"){ 
         header('Content-type: image/gif'); 
         echo file_get_contents('path/to/image/4.gif'); 
        } 

        elseif($_GET['image'] == "5"){ 
         header('Content-type: image/gif'); 
         echo file_get_contents('path/to/image/5.gif'); 
        } 

        else 
        { 
         die('Could not load image'); 
        } 
       } 
       else 
       { 
        die('Could not load image'); 
       } 
      } 
      else 
      { 
       die('Could not load image'); 
      } 
     } 
     else 
     { 
      die('Api key was not correct'); 
     } 
    } 
    else 
    { 
     die('Mysql query failed'); 
    } 
} 
else 
{ 
    die('No api key was set'); 
} 
+0

你確定頭還未被髮送?嘗試在調用`header()`函數之前回顯`intval(headers_sent())`。因爲這可能會導致錯誤,導致空白屏幕。 – Petah 2011-02-06 11:01:24

+0

@Petah它返回'0',所以我認爲它的錯誤... – Thew 2011-02-06 11:06:36

回答

1

你需要檢查你的錯誤日誌/確保你打開日誌記錄,因爲它聽起來非常像PHP正在拋出一個錯誤。 (注意:如果這是一個生產環境,請務必在之後關閉日誌記錄。)

猜測是否可能是某個路徑不正確,或者您在嘗試設置頭文件,但錯誤日誌應該很明顯是什麼問題。

0

如果PHP拋出某些類型的錯誤(如語法錯誤),它將輸出一條錯誤消息並終止,而沒有任何其他輸出。但是,如果在php.ini中關閉了display_errors,那麼即使輸出錯誤消息,您也只會看到空白屏幕。

或者,如果您在發送圖像/ gif標頭後嘗試發送不存在的文件,則這也可能導致空白頁。看看發回的標題。如果你有一個圖像/ gif內容類型的頭,那麼代碼就會到達一個試圖發送圖像的點。事實上你沒有得到一個圖像會表明沒有圖像文件發送。