phpthumb访问db中多个表的图像

时间:2010-12-17 21:46:07

标签: php database phpthumb

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

    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'参数? 我想我可以将所有图像放在一张桌子上,但对我来说这似乎不是一个好主意......

PS 我在phpthumb支持论坛上发布了这个,但没有得到任何回复,所以我在这里尝试。没有太多时间来研究它,希望我本周末可以腾出更多时间。

如果有人在想,我正在使用crdb作为$ database对象。

1 个答案:

答案 0 :(得分: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');

不敢相信我错过了,我必须检查除了那个之外的所有文件