0

我可以毫无问题地从单个表中检索图像,但我不确定如果我在不同的表中有图像,它会如何工作。假设我有两个可以包含图像的表(图像和类别)

    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}\" />";

我正在搜索代码,但没有看到任何设置“允许”参数的地方。

所以我的问题是:这是从多个表中获取图像的好方法吗?如果是,我怎样才能允许“类型”参数?我想我可以将所有图像放在一张桌子上,但这对我来说似乎不是一个好主意......

ps 我在 phpthumb 支持论坛上发布了这个,但没有得到任何回应,所以我在这里尝试。从那以后就没有太多时间研究它了,希望这个周末我能抽出更多时间。

如果有人想知道,我将crdb用于 $database 对象。

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 回答