Wrox Programmer Forums
|
BOOK: Beginning PHP 6, Apache, MySQL 6 Web Development ISBN: 9780470391143
This is the forum to discuss the Wrox book Beginning PHP 6, Apache, MySQL 6 Web Development by Timothy Boronczyk, Elizabeth Naramore, Jason Gerner, Yann Le Scouarnec, Jeremy Stolz; ISBN: 9780470391143
Welcome to the p2p.wrox.com Forums.

You are currently viewing the BOOK: Beginning PHP 6, Apache, MySQL 6 Web Development ISBN: 9780470391143 section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old July 11th, 2009, 12:31 PM
Registered User
 
Join Date: Jul 2009
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Exclamation Error in code

I have found an error in some code in the book you should know about and let others know. In chapter 7 page 213 you have the code:
Code:
imagejpeg($thumb, $dir . '/' . $_POST['id'] . '.jpg',100);
problem with that is, it puts the thumb nail in with the full size images, the correct code should be:
Code:
imagejpeg($thumb, $dir . '/thumbs/' . $last_id . '.jpg',100);
the $_POST['id'] doesn't work either but $last_id does.
Cheers
 
Old January 28th, 2010, 04:10 AM
Registered User
 
Join Date: Jan 2010
Posts: 9
Thanks: 0
Thanked 0 Times in 0 Posts
Exclamation Chapter 7 Thumbnail error

I used $image_id instead of $_POST['id'] or $last_id and $thumbdir instead of $dir.'/thumbs/'.
PHP Code:
imagejpeg($thumb$dir '/' $_POST['id'] . '.jpg',100); 
PHP Code:
imagejpeg($thumb$thumbdir '/' .$image_id.'.jpg'100); 

Also i feel that it had to be included with the if ($_POST['submit'] == 'Upload')' if section not just eh if ($_POST['submit'] == 'Save')

just below the saving the original image to disk BEFORE the imagedestroy($image)

PHP Code:
    // save the image to its final destination
    
$image_id $last_id;
    
imagejpeg($image$dir '/' $image_id  '.jpg');
       
//set the dimensions for the thumbnail
    
$thumb_width $width 0.10;
   
$thumb_height $height 0.10;

    
//create the thumbnail
   
$thumb imagecreatetruecolor($thumb_width$thumb_height);
   
imagecopyresampled($thumb$image0000$thumb_width$thumb_height$width$height);
   
imagejpeg($thumb$thumbdir '/' .$image_id.'.jpg'100);
    
imagedestroy($thumb);
    
imagedestroy($image);

} else {
    
// retrieve image information
    
$query 'SELECT
        image_id, image_caption, image_username, image_date
    FROM
        images
    WHERE
        image_id = ' 
$_POST['id']; 
Below is the whole page code

PHP Code:
<?php
//connect to MySQL
$db mysql_connect('localhost''bp6am''bp6ampass') or 
    die (
'Unable to connect. Check your connection parameters.');
mysql_select_db('moviesite'$db) or die(mysql_error($db));

//change this path to match your images directory
$dir ='C:/xampp/htdocs/PHP/chp7/images';

//change this path to match your thumbnail directory
$thumbdir $dir '/thumbs';

//change this path to match your fonts directory and the desired font
putenv('GDFONTPATH=' 'C:/windows/fonts');
$font 'arial.ttf';

// handle the uploaded image
if ($_POST['submit'] == 'Upload') {

    
//make sure the uploaded file transfer was successful
    
if ($_FILES['uploadfile']['error'] != UPLOAD_ERR_OK)
    {
        switch (
$_FILES['uploadfile']['error']) {
        case 
UPLOAD_ERR_INI_SIZE:
            die(
'The uploaded file exceeds the upload_max_filesize directive ' .
                
'in php.ini.');
            break;
        case 
UPLOAD_ERR_FORM_SIZE:
            die(
'The uploaded file exceeds the MAX_FILE_SIZE directive that ' .
                
'was specified in the HTML form.');
            break;
        case 
UPLOAD_ERR_PARTIAL:
            die(
'The uploaded file was only partially uploaded.');
            break;
        case 
UPLOAD_ERR_NO_FILE:
            die(
'No file was uploaded.');
            break;
        case 
UPLOAD_ERR_NO_TMP_DIR:
            die(
'The server is missing a temporary folder.');
            break;
        case 
UPLOAD_ERR_CANT_WRITE:
            die(
'The server failed to write the uploaded file to disk.');
            break;
        case 
UPLOAD_ERR_EXTENSION:
            die(
'File upload stopped by extension.');
            break;
        }
    }
    
    
//get info about the image being uploaded
    
$image_caption $_POST['caption'];
    
$image_username $_POST['username'];
    
$image_date = @date('Y-m-d');
    list(
$width$height$type$attr) =
        
getimagesize($_FILES['uploadfile']['tmp_name']);

    
// make sure the uploaded file is really a supported image
    
$error 'The file you uploaded was not a supported filetype.';
    switch (
$type) {
    case 
IMAGETYPE_GIF:
        
$image imagecreatefromgif($_FILES['uploadfile']['tmp_name']) or
            die(
$error);
        break;
    case 
IMAGETYPE_JPEG:
        
$image imagecreatefromjpeg($_FILES['uploadfile']['tmp_name']) or
            die(
$error);
        break;
    case 
IMAGETYPE_PNG:
        
$image imagecreatefrompng($_FILES['uploadfile']['tmp_name']) or
            die(
$error);
        break;
    default:
        die(
$error);
    }

    
//insert information into image table
    
$query 'INSERT INTO images
        (image_caption, image_username, image_date)
    VALUES
        ("' 
$image_caption '", "' $image_username '", "' $image_date .
        
'")';
    
    
$result mysql_query($query$db) or die (mysql_error($db));
    
    
//retrieve the image_id that MySQL generated automatically when we inserted
    //the new record
    
$last_id mysql_insert_id();
    
    
// save the image to its final destination
    
$image_id $last_id;
    
imagejpeg($image$dir '/' $image_id  '.jpg');
       
//set the dimensions for the thumbnail
    
$thumb_width $width 0.10;
   
$thumb_height $height 0.10;

    
//create the thumbnail
   
$thumb imagecreatetruecolor($thumb_width$thumb_height);
   
imagecopyresampled($thumb$image0000$thumb_width$thumb_height$width$height);
   
imagejpeg($thumb$thumbdir '/' .$image_id.'.jpg'100);
    
imagedestroy($thumb);
    
imagedestroy($image);

} else {
    
// retrieve image information
    
$query 'SELECT
        image_id, image_caption, image_username, image_date
    FROM
        images
    WHERE
        image_id = ' 
$_POST['id'];
    
$result mysql_query($query$db) or die (mysql_error($db));
    
extract(mysql_fetch_assoc($result));

    list(
$width$height$type$attr) = getimagesize($dir '/' $image_id .
        
'.jpg');
}

if (
$_POST['submit'] == 'Save') {
    
// make sure the requested image is valid
    
if (isset($_POST['id']) && ctype_digit($_POST['id']) &&
        
file_exists($dir '/' $_POST['id'] . '.jpg')) {
        
$image imagecreatefromjpeg($dir '/' $_POST['id'] . '.jpg');
    } else {
        die(
'invalid image specified');
    }

    
// apply the filter    
    
$effect = (isset($_POST['effect'])) ? $_POST['effect'] : -1;
    switch (
$effect) {
    case 
IMG_FILTER_NEGATE:
        
imagefilter($imageIMG_FILTER_NEGATE); 
        break;
    case 
IMG_FILTER_GRAYSCALE:
        
imagefilter($imageIMG_FILTER_GRAYSCALE); 
        break;
    case 
IMG_FILTER_EMBOSS:
        
imagefilter($imageIMG_FILTER_EMBOSS); 
        break;
    case 
IMG_FILTER_GAUSSIAN_BLUR:
        
imagefilter($imageIMG_FILTER_GAUSSIAN_BLUR);
        break;
    }

    
// add the caption if requested
    
if (isset($_POST['emb_caption'])) {
        
imagettftext($image12020200$font$image_caption);
    }

    
//add the logo watermark if requested
    
if (isset($_POST['emb_logo'])) {
        
// determine x and y position to center watermark
        
list($wmk_width$wmk_height) = getimagesize('images/logo.png');
        
$x = ($width $wmk_width) / 2;
        
$y = ($height $wmk_height) / 2;
    
        
$wmk imagecreatefrompng('images/logo.png');
        
imagecopymerge($image$wmk$x$y00$wmk_width$wmk_height20);
        
imagedestroy($wmk);
    }

    
// save the image with the filter applied
    
imagejpeg($image$dir '/' $_POST['id'] . '.jpg'100);

    
//set the dimensions for the thumbnail
    
$thumb_width $width 0.10;
   
$thumb_height $height 0.10;

    
//create the thumbnail
   
$thumb imagecreatetruecolor($thumb_width$thumb_height);
   
imagecopyresampled($thumb$image0000$thumb_width$thumb_height$width$height);
   
imagejpeg($thumb$thumbdir '/' .$image_id.'.jpg'100);
    
imagedestroy($thumb);
?>
<html>
 <head>
  <title>Here is your pic!</title>
 </head>
 <body>
  <h1>Your image has been saved!</h1>
  <img src="images/<?php echo $_POST['id']; ?>.jpg" />
 </body>
</html>
<?php
} else {
?>
<html>
 <head>
  <title>Here is your pic!</title>
 </head>
 <body>
  <h1>So how does it feel to be famous?</h1>
  <p>Here is the picture you just uploaded to our servers:</p>
<?php 
   
if ($_POST['submit'] == 'Upload') {
       
$imagename 'images/' $image_id  '.jpg';
   } else {
       
$imagename 'image_effect.php?id=' $image_id  '&e=' .
           
$_POST['effect'];

       if (isset(
$_POST['emb_caption'])) {
           
$imagename .= '&capt=' urlencode($image_caption); 
       }

       if (isset(
$_POST['emb_logo'])) {
           
$imagename .= '&logo=1'
       }
   }
?>
   <img src="<?php echo $imagename?>" style="float:left;">
  <table>
   <tr><td>Image Saved as: </td><td><?php echo $image_id  '.jpg'?></td></tr>
   <tr><td>Height: </td><td><?php echo $height?></td></tr>
   <tr><td>Width: </td><td><?php echo $width?></td></tr>
   <tr><td>Upload Date: </td><td><?php echo $image_date?></td></tr>
  </table>
  <p>You may apply special options to your image below. Note: saving an image
with any of the options applied  <em>cannot be undone</em>.</p>
  <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
   <div>
    <input type="hidden" name="id" value="<?php echo $image_id;?>"/>
    Filter: <select name="effect">
     <option value="-1">None</option>
<?php
    
echo '<option value="' IMG_FILTER_GRAYSCALE '"';
    if (isset(
$_POST['effect']) && $_POST['effect'] == IMG_FILTER_GRAYSCALE) {
        echo 
' selected="selected"';
    }
    echo 
'>Black and White</option>';

    echo 
'<option value="' IMG_FILTER_GAUSSIAN_BLUR '"';
    if (isset(
$_POST['effect']) && $_POST['effect'] ==
        
IMG_FILTER_GAUSSIAN_BLUR) {
        echo 
' selected="selected"';
    }
    echo 
'>Blur</option>';

    echo 
'<option value="' IMG_FILTER_EMBOSS '"';
    if (isset(
$_POST['effect']) && $_POST['effect'] == IMG_FILTER_EMBOSS) {
        echo 
' selected="selected"';
    }
    echo 
'>Emboss</option>';

    echo 
'<option value="' IMG_FILTER_NEGATE '"';
    if (isset(
$_POST['effect']) && $_POST['effect'] == IMG_FILTER_NEGATE) {
        echo 
' selected="selected"';
    }
    echo 
'>Negative</option>';
?>
    </select>
    <br/><br/>
<?php
    
echo '<input type="checkbox" name="emb_caption"';
    if (isset(
$_POST['emb_caption'])) {
        echo 
' checked="checked"';
    }
    echo 
'>Embed caption in image?';
    echo 
'<br/><br/><input type="checkbox" name="emb_logo"';
    if (isset(
$_POST['emb_logo'])) {
        echo 
' checked="checked"';
    }
    echo 
'>Embed watermarked logo in image?';
?>
    <br/><br/>
    <input type="submit" value="Preview" name="submit" />
    <input type="submit" value="Save" name="submit" />
   </div>
  </form>
 </body>
</html>
<?php
}
?>

Last edited by aformoftruth; January 28th, 2010 at 04:16 AM.. Reason: forgot line





Similar Threads
Thread Thread Starter Forum Replies Last Post
Code Error luismalave BOOK: Beginning Visual Basic 2005 Databases ISBN: 978-0-7645-8894-5 1 June 13th, 2007 01:54 PM
Code error reverand Excel VBA 1 November 15th, 2006 02:08 AM
Error in the example code FT BOOK: ASP.NET Website Programming Problem-Design-Solution 2 October 27th, 2005 06:22 AM
Code error!?!? Brian Campbell BOOK: Beginning PHP4/PHP 5 ISBN: 978-0-7645-4364-7; v5 ISBN: 978-0-7645-5783-5 3 November 26th, 2004 07:47 PM
Error displayed with error trap code stoneman Access 4 February 28th, 2004 02:53 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.