如何在此图像调整大小代码中设置$ _GET?

时间:2010-07-21 19:57:33

标签: php mysql get image-resizing

我正在使用脚本来调整图像大小。我好像得到了一个错误:

错误:未指定图像
可能是因为脚本中的这段代码(image.php):

    if (!isset($_GET['image']))
    {
        header('HTTP/1.1 400 Bad Request');
        echo 'Error: no image was specified';
        exit();

}

以下是我正在做的事(profile.php)

$your_image = $row['Image'];
$path_to_image = $row['PortraitPath'];
$width = 100;
$height = 100;

echo "<img src=\'/image.php/{$your_image}?width={$width}&amp;height={$height}&amp;cropratio=1:1&amp;image={$path_to_img}\' alt=\'Alt text goes here.\' />";

因此,我正在从MySQL表中读取$your_image$path_to_image,然后将其放入img source。如上所述,显然,图像没有设置,这就是我得到第一个错误的原因。我没有得到的是,实际上甚至可以使用我的img src代码设置图像?我不是只是显示实际图像吗?那么如果简单地显示图片,如何设置图像呢?谢谢。

4 个答案:

答案 0 :(得分:0)

图片的URl包含?foo=bar&this=that&image=path。这些变量将传递给$ _GET数组中的image.php脚本。

答案 1 :(得分:0)

如果你想要一个php文件而不是一个图像,你需要告诉你的php文件输出将是一个图像。 您可以使用php header()函数执行此操作,如下所示:

header('Content-type: image/jpeg');

以下是一些参考:php header function

关于你所指的地址,有点奇怪吗?你在.php之后有一个斜杠,这表示你正试图访问某个文件夹...你是否测试了这个网址,看看屏幕上是否输出了真实的图像?

希望这可以帮助你=)

答案 2 :(得分:0)

作为警告,在profile.php的代码中,我看到了这个片段:

image={$path_to_img}

根据您处理$_GET['image']值的方式,这可能会导致RFI漏洞。用户可以使用自己的“图像”路径向image.php伪造GET请求。

答案 3 :(得分:0)

我注意到了一些事情,我不确定你在此处发布之前修改了多少代码......

1a)如果使用双引号括起来,请不要使用单引号。

OR

1b)将转义的单引号更改为转义双引号。

2)在您使用的网址$path_to_img中,您定义的变量为$path_to_image。使它们保持一致。