【问题标题】:phpThumb shows me "usage" example even though I've supplied the correct input即使我提供了正确的输入,phpThumb 也会向我展示“用法”示例
【发布时间】:2011-07-22 14:21:35
【问题描述】:

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"
}

这是运行到错误的代码(在我的网络应用程序中):

// 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 参数...很难确认,因为源代码包含成千上万行代码,我不知道从哪里开始。

感谢任何有用的回复

【问题讨论】:

    标签: php thumbnails phpthumb


    【解决方案1】:

    reading some of the source 来看,它看起来像是在尝试做它自己的PATH_INFO 解析。您可以通过更改 disable_pathinfo_parsing 配置变量或将 $_SERVER['PATH_INFO'] 设置为 null 来防止这种情况。

    这可能很重要,因为“Usage: ...”错误$phpThumb 对象的src 属性为空时发生。它通过在$_GET 中查找来填充此属性,并且在尝试处理PATH_INFO 时会执行一些非常严重的$_GET['src'] 操作。

    或者,您可能想尝试仅使用它自己的原生基于PATH_INFO 的 URL,而不是您自己的 URL,以避免出现问题。

    【讨论】:

      【解决方案2】:

      我在 Windows 系统上工作时遇到了类似的问题。

      我的 src 路径混合了前向 / 和后向 \ 斜杠,因此我将它们全部转换为 PHP 的 DIRECTORY_SEPARATOR 常量(Windows 中的反斜杠)。

      当我将它们全部转换为正斜杠时,它就起作用了

      【讨论】:

        猜你喜欢
        • 2020-07-21
        • 2015-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-28
        • 2016-01-24
        • 2018-08-04
        相关资源
        最近更新 更多