1

phpThumbは、大きな画像を画像のサムネイルに変換し、結果をキャッシュする PHP ライブラリです。次のような構文を取ります。http://domain.com/phpThumb.php?src=/images/image.jpg

ただし、私の Web アプリケーションでは厳密な MVC アーキテクチャに従っているため、構文を次のように変更しました。http://domain.com/thumb/images%2Fimage.jpg/width/height

ただし、現在、出力画像は不平を言っています

使用法: /workspace/urs/index.php?src=/path/and/filename.jpg

$_GET ダンプをチェックしたにもかかわらず、次のように表示されます。

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

これは、エラーまで実行されるコードです (私の Web アプリケーションで):

// 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 が $_GET パラメーターだけでなく、実際の URL をチェックすることです...ソースには何千行ものコードが含まれており、どこから始めればよいか見当がつかないため、確認するのは困難です。 .

役に立つ返信をありがとう

4

2 に答える 2

1

source の一部を読んで判断すると、独自のPATH_INFO解析を行おうとしているようです。構成変数を変更するか、null に disable_pathinfo_parsing設定することで、これを防ぐことができます。$_SERVER['PATH_INFO']

「Usage: ...」エラーはオブジェクトの属性が空の場合にのみ発生するため、これは重要な場合があります。で検索してこの属性を設定し、処理しようとするときにかなり深刻な操作を行います。src$phpThumb$_GET$_GET['src']PATH_INFO

PATH_INFO別の方法として、混乱を避けるために、独自の URL ではなく、 独自のネイティブ ベースの URL を使用してみることをお勧めします。

于 2011-03-25T03:29:06.460 に答える
1

Windowsシステムで作業しているときに、同様の問題が発生しました。

/私の src パスにはスラッシュとバックスラッシュが混在してい\たので、それらをすべて PHP のDIRECTORY_SEPARATOR定数 (Windows ではバックスラッシュ) に変換していました。

それらをすべてスラッシュに変換すると、うまくいきました

于 2012-04-05T13:53:19.680 に答える