Обучение/Помощь новичкам | Налаживание картинки с GET-ом
Тема закрыта by
Mr_Ezzy
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл
Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)
Подумать надо почему так
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл
Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)
Подумать надо почему так
вот сам скрипт
<?
if(isset($_GET['r']))$r = $_GET['r'];
if(isset($_GET['h']))$h = $_GET['h'];
$img = ''.$r.'';
$size = getimagesize($img);
$height = $size[1];
$width = $size[0];
$size2 = getimagesize($h);
$height2 = $size2[1];
$width2 = $size2[0];
$opacity = 60;
$image = imagecreatefromjpeg($img);
$new = imagecreatefrompng($h);
$x = $width - $width2;
$y = $height - $height2;
imagecopymerge(
$image, $new, $x, $y, 0, 0,
$width2, $height2, $opacity
);
header('Content-Type: image/png');
imagejpeg($image);
imagedestroy($image);
?>
________
посл. ред. 02.10.2015 в 19:16; всего 2 раз(а); by Mr_Ezzy
Mr_Ezzy (02.10.2015 в 19:14)
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл
Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)
Подумать надо почему так
вот сам скрипт
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл
Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)
Подумать надо почему так
вот сам скрипт
<?
if(isset($_GET['r']))$r = $_GET['r'];
if(isset($_GET['h']))$h = $_GET['h'];
$img = ''.$r.'';
$size = getimagesize($img);
$height = $size[1];
$width = $size[0];
$size2 = getimagesize($h);
$height2 = $size2[1];
$width2 = $size2[0];
$opacity = 60;
$image = imagecreatefromjpeg($img);
$new = imagecreatefrompng($h);
$x = $width - $width2;
$y = $height - $height2;
imagecopymerge(
$image, $new, $x, $y, 0, 0,
$width2, $height2, $opacity
);
header('Content-Type: image/png');
imagejpeg($image);
imagedestroy($image);
?>
У картинок расширения и расположение на хосте отличаются?
Mr_Ezzy , и что в итог? Он пустой будет! Так как вы ссылку до пути не брали картинку чтобы показать.
CreepMatis (02.10.2015 в 19:17)
Mr_Ezzy (02.10.2015 в 19:14)
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл
Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)
Подумать надо почему так
вот сам скрипт
У картинок расширения и расположение на хосте отличаются?
Mr_Ezzy (02.10.2015 в 19:14)
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл
Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)
Подумать надо почему так
вот сам скрипт
<?
if(isset($_GET['r']))$r = $_GET['r'];
if(isset($_GET['h']))$h = $_GET['h'];
$img = ''.$r.'';
$size = getimagesize($img);
$height = $size[1];
$width = $size[0];
$size2 = getimagesize($h);
$height2 = $size2[1];
$width2 = $size2[0];
$opacity = 60;
$image = imagecreatefromjpeg($img);
$new = imagecreatefrompng($h);
$x = $width - $width2;
$y = $height - $height2;
imagecopymerge(
$image, $new, $x, $y, 0, 0,
$width2, $height2, $opacity
);
header('Content-Type: image/png');
imagejpeg($image);
imagedestroy($image);
?>
У картинок расширения и расположение на хосте отличаются?
png обе и обе в одной папке
262110938 (02.10.2015 в 19:20)
Mr_Ezzy , и что в итог? Он пустой будет! Так как вы ссылку до пути не брали картинку чтобы показать.
Mr_Ezzy , и что в итог? Он пустой будет! Так как вы ссылку до пути не брали картинку чтобы показать.
"Так как вы ссылку до пути не брали картинку чтобы показать. "?
Mr_Ezzy (02.10.2015 в 19:21)
CreepMatis (02.10.2015 в 19:17)
Mr_Ezzy (02.10.2015 в 19:14)
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл
Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)
Подумать надо почему так
вот сам скрипт
У картинок расширения и расположение на хосте отличаются?
png обе и обе в одной папке
CreepMatis (02.10.2015 в 19:17)
Mr_Ezzy (02.10.2015 в 19:14)
Whistle (02.10.2015 в 19:11)
Mr_Ezzy (02.10.2015 в 19:10)
Whistle (02.10.2015 в 19:05)
Разложи по кейсам. 1 - одна картинка на вывод
2 - default:
Вторая картинка и урл
Уточню, урл читает, но не выводит(т.е. с переменными всё норм, но сам скрипт, почему-то не выводит, хотя когда без гета всё норм)
Подумать надо почему так
вот сам скрипт
<?
if(isset($_GET['r']))$r = $_GET['r'];
if(isset($_GET['h']))$h = $_GET['h'];
$img = ''.$r.'';
$size = getimagesize($img);
$height = $size[1];
$width = $size[0];
$size2 = getimagesize($h);
$height2 = $size2[1];
$width2 = $size2[0];
$opacity = 60;
$image = imagecreatefromjpeg($img);
$new = imagecreatefrompng($h);
$x = $width - $width2;
$y = $height - $height2;
imagecopymerge(
$image, $new, $x, $y, 0, 0,
$width2, $height2, $opacity
);
header('Content-Type: image/png');
imagejpeg($image);
imagedestroy($image);
?>
У картинок расширения и расположение на хосте отличаются?
png обе и обе в одной папке
Ну так кто мешает подсовывать в get название картинки без png? А в скрипте уже получать название и слить с путем до картинки и расширения.
$img = '/images/'.$_GET['img'].'.png';
Mr_Ezzy , сначало сделай file_exists() проверку на файл если есть то выводи, а если ошибка то делаем статус 500. Иначе несушествуюшие файлы будет создавать пустой картинка.
CreepMatis , 0 толку
самый оптимальный-оптимизация вот код
function LoadJpeg($imgname)
{
/* Пытаемся открыть */
$im = @imagecreatefromjpeg($imgname);
/* Если не удалось */
if(!$im)
{
/* Создаем пустое изображение */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Выводим сообщение об ошибке */
imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
}
return $im;
}
header('Content-Type: image/jpeg');
$img = LoadJpeg('bogus.image');
imagejpeg($img);
imagedestroy($img);
?>
{
/* Пытаемся открыть */
$im = @imagecreatefromjpeg($imgname);
/* Если не удалось */
if(!$im)
{
/* Создаем пустое изображение */
$im = imagecreatetruecolor(150, 30);
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Выводим сообщение об ошибке */
imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
}
return $im;
}
header('Content-Type: image/jpeg');
$img = LoadJpeg('bogus.image');
imagejpeg($img);
imagedestroy($img);
?>
Mr_Ezzy , и еше автор дам заметку ты пытаешься загрузить картинку png функцией imagecreatefromjpeg
то добавлю для безопасности и без шелла.
то добавлю для безопасности и без шелла.
<?php
function imageCreateFromAny($filepath) {
$type = exif_imagetype($filepath); // [] if you don't have exif you could use getImageSize()
$allowedTypes = array(
1, // [] gif
2, // [] jpg
3, // [] png
6 // [] bmp
);
if (!in_array($type, $allowedTypes)) {
return false;
}
switch ($type) {
case 1 :
$im = imageCreateFromGif($filepath);
break;
case 2 :
$im = imageCreateFromJpeg($filepath);
break;
case 3 :
$im = imageCreateFromPng($filepath);
break;
case 6 :
$im = imageCreateFromBmp($filepath);
break;
}
return $im;
}
?>
function imageCreateFromAny($filepath) {
$type = exif_imagetype($filepath); // [] if you don't have exif you could use getImageSize()
$allowedTypes = array(
1, // [] gif
2, // [] jpg
3, // [] png
6 // [] bmp
);
if (!in_array($type, $allowedTypes)) {
return false;
}
switch ($type) {
case 1 :
$im = imageCreateFromGif($filepath);
break;
case 2 :
$im = imageCreateFromJpeg($filepath);
break;
case 3 :
$im = imageCreateFromPng($filepath);
break;
case 6 :
$im = imageCreateFromBmp($filepath);
break;
}
return $im;
}
?>