phpThumb показывает мне пример использования, хотя я предоставил правильный ввод - PullRequest
1 голос
/ 25 марта 2011

phpThumb - это библиотека PHP, которая преобразует большие изображения в миниатюры изображений и кэширует результат.Он использует такой синтаксис: http://domain.com/phpThumb.php?src=/images/image.jpg

Однако в моем веб-приложении я придерживаюсь строгой архитектуры MVC, поэтому я изменил синтаксис следующим образом: http://domain.com/thumb/images%2Fimage.jpg/width/height

Однако теперь выводизображение теперь жалуется

Использование: /workspace/urs/index.php?src=/path/and/filename.jpg

Даже если я проверил$ _GET dump и читает:

array(1) {
  ["src"]=>
  string(42) "/workspace/urs/images/portfolio/shoopm.jpg"
}

Этот код работает до ошибки (в моем веб-приложении):

// If getting a thumbnail
if($qa[0] == "thumb")
{
    if(!isset($qa[1]) || !isset($qa[2]) || !isset($qa[3]))
        die("Bad thumb request. Needs 3 parameters!");

    unset($_GET["q"]);
    $_GET["src"] = $qa[1];
    $_GET["w"] = $qa[2];
    $_GET["h"] = $qa[3];

    include("phpThumb/phpThumb.php");

    exit();
}

Теперь я боюсьчто phpThumb проверяет фактический URL, а не только параметры $ _GET ... Трудно подтвердить, так как источник содержит тысячи и тысячи строк кода, и я не знаю, с чего начать.

Спасибоза любые полезные ответы

Ответы [ 2 ]

1 голос
/ 05 апреля 2012

У меня была похожая проблема при работе в системе Windows.

В моих путях src были смешаны прямые / и обратные \ косые черты, поэтому я конвертировал их все в постоянную PHP DIRECTORY_SEPARATOR (обратную косую черту в окнах).

Когда я конвертировал их всех в слеш, он просто работал

1 голос
/ 25 марта 2011

Судя по чтению некоторого источника , похоже, что он пытается выполнить собственный PATH_INFO синтаксический анализ. Вы можете предотвратить это, изменив переменную disable_pathinfo_parsing config или установив для $_SERVER['PATH_INFO'] значение null.

Это может быть важно, потому что ошибка «Usage: ...» возникает только , когда атрибут src объекта $phpThumb пуст. Он заполняет этот атрибут, ища его в $_GET, и выполняет довольно серьезные манипуляции $_GET['src'], когда пытается обработать PATH_INFO.

В качестве альтернативы, вы можете попробовать использовать собственные нативные URL-адреса на основе PATH_INFO вместо своих собственных, чтобы избежать сбоев.

...