Возвращается белая страница? - PullRequest
0 голосов
/ 06 февраля 2011

Я создал Somekinda 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');
}

Ответы [ 2 ]

1 голос
/ 06 февраля 2011

Вы должны проверить свои журналы ошибок / убедиться, что регистрация включена, поскольку это очень похоже на то, что PHP выдает ошибку.(NB. Если это производственная среда, обязательно отключите ведение журнала впоследствии.)

По предположению, если это может быть один из неверных путей, или вы уже вывели некоторые данные до попыткиустановить заголовок, но в журналах ошибок должно быть достаточно очевидно, в чем проблема.

0 голосов
/ 06 февраля 2011

Если PHP выдает определенные виды ошибок, такие как синтаксические ошибки, он выведет сообщение об ошибке и завершится без каких-либо других выходных данных.Однако, если display_errors отключен в php.ini, то даже сообщение об ошибке не будет выведено, и вы просто получите пустой экран.

В качестве альтернативы, если вы пытаетесь отправить файл, который не существует после отправки заголовка изображения / gif, то это также может привести к пустой странице.Посмотрите на заголовки, которые были отправлены обратно.Если вы получили заголовок типа содержимого image / gif, тогда код достигает точки, когда он пытается отправить изображение.Тот факт, что вы на самом деле не получаете изображение, может указывать на отсутствие файла для отправки.

...