0

問題なく単一のテーブルから画像を取得できますが、別のテーブルに画像がある場合にどのように機能するかわかりません。画像を含むことができる2つのテーブル(画像とカテゴリ)があるとします

    images          category
    -gallery_id     -cat_id
    -image_id       -image
    -image          

したがって、クエリ文字列に別のパラメーターを渡して、どのテーブルを指定できるかを考えます

if(mysql_escape_string(@$_GET['type']) === 'icon')
   $PHPTHUMB_CONFIG['mysql_query'] = 'SELECT `image` FROM `category` WHERE (`cat_id` = \''.mysql_escape_string(@$_GET['id']).'\')';
else
   $PHPTHUMB_CONFIG['mysql_query'] = 'SELECT `image` FROM `images` WHERE (`image_id` = \''.mysql_escape_string(@$_GET['id']).'\')';

これはうまくいきます

foreach($database->images->gallery_id($gal_id) as $v)
{
   $img = "<img src=\"/test/include/phpThumb_1.7.9/phpThumb.php?w=150&id={$v->image_id}\" />";
   echo "<li>{$img}</li>";
}

これは「禁止されたパラメーター: タイプ」で失敗します

echo "<img src=\"/test/include/phpThumb_1.7.9/phpThumb.php?w=150&type=icon&id={$database->category($v->cat_id)->cat_id}\" />";

コードを検索していましたが、「許可」されるパラメーターを設定する場所がどこにもありません。

私の質問は次のとおりです。これは複数のテーブルから画像を取得する良い方法ですか? はいの場合、「type」パラメーターを許可するにはどうすればよいですか? すべての画像を 1 つのテーブルに入れることができると思いますが、それは良い考えではないようです...

psこれをphpthumbサポートフォーラムに投稿しましたが、応答がなかったので、ここで試しています。それ以来、調べる時間があまりなかったので、今週末はもっと時間を作れたらいいなと思っています。

誰かが疑問に思っている場合は、$database オブジェクトにcrdbを使用しています。

4

1 に答える 1

0

くそ、今はバカみたいだ

phpThumb.php には (232 行目) $allowedGETparameters 変数があります。

$allowedGETparameters = array('type', 'src', 'new', 'w', 'h', 'wp', 'hp', 'wl', 'hl', 'ws', 'hs', 'f', 'q', 'sx', 'sy', 'sw', 'sh', 'zc', 'bc', 'bg', 'bgt', 'fltr', 'xto', 'ra', 'ar', 'aoe', 'far', 'iar', 'maxb', 'down', 'phpThumbDebug', 'hash', 'md5s', 'sfn', 'dpi', 'sia', 'nocache');

それを見逃したなんて信じられない、あのファイルを除いてすべてのファイルをチェックしたに違いない

于 2010-12-18T14:25:35.100 に答える