2012-04-22 1 views
0

Я использую скрипт, который я нашел для создания эскизов, но я получаю ошибку в первом в строках 3 и 4. Я предполагаю, что одна из функций устарела (это год назад), но я действительно понятия не имею. Поддержка GD включена. Я читаю связанные вопросы и понимаю, что есть что-то, чего я не получаю от isset, но я не уверен, как написать это как для «изображения», так и для «ширины», он также кажется, что он установлен в следующих нескольких линий. Вся помощь была оценена.Неопределенный индекс в первых строках сценария генерации миниатюр

Notice: Undefined index: image in C:\xampp\htdocs\thumbnail\thumbnail.php on line 3

Notice: Undefined index: width in C:\xampp\htdocs\thumbnail\thumbnail.php on line 4

<?php 

$imageSrc = (string)$_GET['image'];  
$width = $_GET['width']; 

if (is_numeric($width) && isset($imageSrc)){ 
    header('Content-type: image/jpeg'); 
    makeThumb($imageSrc, $width); 
} 

function makeThumb($src,$newWidth) { 
    // read the source image given 
    $srcImage = imagecreatefromjpeg($src); 
    $width = imagesx($srcImage); 
    $height = imagesy($srcImage); 

    // find the height of the thumb based on the width given 
    $newHeight = floor($height*($newWidth/$width)); 

    // create a new blank image 
    $newImage = imagecreatetruecolor($newWidth,$newHeight); 

    // copy source image to a new size 
    imagecopyresized($newImage,$srcImage,0,0,0,0,$newWidth,$newHeight,$width,$height); 

    // create the thumbnail 
    imagejpeg($newImage); 
} 
?> 

Я понимаю, генерируя сценарии на лету для каждой загрузке страницы не является эффективным, но я просто пытаюсь получить что-то работать.

я сделал третье изменение, предложенное Лоуренс и я все еще получаю сообщение об ошибке:

Notice: Undefined variable: width in C:\xampp\htdocs\thumbnail\thumbnail.php on line 13

+0

Это означает, что вы вызываете скрипт без каких-либо параметров запроса, например. 'http: // example.com/script.php' вместо' http: //example.com/script.php? image = X & width = Y'. –

ответ

0

Использование isset

Попробуйте

$imageSrc = isset($_GET['image']) ? $_GET['image'] : null;  
$width = isset($_GET['width']) ? $_GET['width'] : null ; 
0

Вам нужно проверить там установить перед использованием:

Изменить:

$imageSrc = (string)$_GET['image'];  
$width = $_GET['width']; 

до

$imageSrc = (isset($_GET['image']))?$_GET['image']:null;  
$width = (isset($_GET['width']))?$_GET['width']:null; 

или если еще путь

if(isset($_GET['image'])){$imageSrc = $_GET['image'];}else{$imageSrc =null;} 
if(isset($_GET['width'])){$width = $_GET['width'];}else{$width =null;} 

Или вы можете забыть о Thos 2 линии и просто сделать:

if (isset($_GET['width']) && is_numeric($_GET['width']) && isset($_GET['image'])){ 
    header('Content-type: image/jpeg'); 
    makeThumb(basename($_GET['image']), $_GET['width']); 
} 
+0

if (isset ($ _ GET ['width']) && is_numeric ($ _ GET ['width']) && isset ($ _ GET ['image'])) { header ('Content-type: image/jpeg') ; makeThumb ($ _ GET ['image'], $ _GET ['width']); } // $ imageSrc = (string) $ _ GET ['image']; // $ width = $ _GET ['width']; if (is_numeric ($ width) && isset ($ imageSrc)) { \t header ('Content-type: image/jpeg'); \t makeThumb ($ imageSrc, $ width); } как первая часть скрипта должна быть? Я все еще получаю сообщение об ошибке: Примечание: Неопределенная переменная: ширина в C: \ xampp \ htdocs \ thumbnail \ thumbnail.php в строке 13. – expiredninja

Смежные вопросы