2011-02-06 80 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内容类型的头,那么代码就会到达一个试图发送图像的点。事实上你没有得到一个图像会表明没有图像文件发送。