Jump to content


Photo

Image Uploading


  • Please log in to reply
1 reply to this topic

#1 benji87

benji87
  • Members
  • PipPipPip
  • Advanced Member
  • 136 posts
  • LocationPortsmouth, UK

Posted 18 September 2006 - 03:36 PM

Hi all. Im currently working on a CMS for a small school website so they can post their own newsletters. They also want to have the ability to upload images with the newsletter if they wish.

Uploading the image to a directory on the webspace is fine i have that sorted but i also need a link to be inserted into the database where the newsletters are stored so the image will be displayed with it when retrieved.

What ive decided to do is let the user to compose the newsletter first and insert it into the database they then have an option later on to add an image.

I am trying to do this using the $_GET function using id as the unique variable.

Thing is the code seems to exicute but it just wont go into the database i have tried for hours and just can seem to find the solution to the problem.

Here is my code:

actions.php

case 'addimg':

$id = $_GET['id'];
echo ("$id");
if(isset($_POST['Submit']))

{
	$size = 500; // the thumbnail height

	$filedir = '../images/uploaded/'; // the directory for the original image
	$thumbdir = '../images/uploaded/thumbnails/'; // the directory for the thumbnail image
	$prefix = 'small_'; // the prefix to be added to the original name

	$maxfile = '2000000';
	$mode = '0666';
	
	$userfile_name = $_FILES['image']['name'];
	$userfile_tmp = $_FILES['image']['tmp_name'];
	$userfile_size = $_FILES['image']['size'];
	$userfile_type = $_FILES['image']['type'];

	
$sql = mysql_query("UPDATE copnornews SET image = '$userfile_name' WHERE id = '{$_GET['id']}'") or die (mysql_error());

if(!$sql){
	echo 'There has been an error while trying to submit your post.';
} else {
	$id = mysql_insert_id();
}
	
	if (isset($_FILES['image']['name'])) 
	{
		$prod_img = $filedir.$userfile_name;

		$prod_img_thumb = $thumbdir.$prefix.$userfile_name;
		move_uploaded_file($userfile_tmp, $prod_img);
		chmod ($prod_img, octdec($mode));
		
		$sizes = getimagesize($prod_img);

		$aspect_ratio = $sizes[1]/$sizes[0]; 

		if ($sizes[1] <= $size)
		{
			$new_width = $sizes[0];
			$new_height = $sizes[1];
		}else{
			$new_height = $size;
			$new_width = abs($new_height/$aspect_ratio);
		}

		$destimg=ImageCreateTrueColor($new_width,$new_height)
			or die('Problem In Creating image');
		$srcimg=ImageCreateFromJPEG($prod_img)
			or die('Problem In opening Source Image');
		if(function_exists('imagecopyresampled'))
		{
			imagecopyresampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg))
			or die('Problem In resizing');
		}else{
			Imagecopyresized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg))
			or die('Problem In resizing');
		}
		ImageJPEG($destimg,$prod_img_thumb,90)
			or die('Problem In saving');
		imagedestroy($destimg);
	}

	echo '
	<a href="'.$prod_img.'">
		<img src="'.$prod_img_thumb.'" width="'.$new_width.'" heigt="'.$new_height.'">
	</a>';

}else{

echo $id = $_GET['id'];
echo ("$id");
echo '<a href=actions.php?id=$id>ADD IMAGE</a>';

	echo '
	<form method="POST" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data">
	<input type="file" name="image"><p>
	<input type="Submit" name="Submit" value="Submit">
	</form>';
}

Now i know the get variable is working so i cant see why it is not working, any help or suggestions on a better way to do it would be great! Thanks

#2 makeshift_theory

makeshift_theory
  • Members
  • PipPipPip
  • Advanced Member
  • 226 posts

Posted 18 September 2006 - 04:49 PM

Well here is the part that sticks out to me:
if(isset($_POST['Submit'])) --> [b]Here you have post so obviously your sending your variables via a post method[/b]

{
	$size = 500; // the thumbnail height

	$filedir = '../images/uploaded/'; // the directory for the original image
	$thumbdir = '../images/uploaded/thumbnails/'; // the directory for the thumbnail image
	$prefix = 'small_'; // the prefix to be added to the original name

	$maxfile = '2000000';
	$mode = '0666';
	
	$userfile_name = $_FILES['image']['name'];
	$userfile_tmp = $_FILES['image']['tmp_name'];
	$userfile_size = $_FILES['image']['size'];
	$userfile_type = $_FILES['image']['type'];

	
$sql = mysql_query("UPDATE copnornews SET image = '$userfile_name' WHERE id = '{$_GET['id']}'") or die (mysql_error()); -- > [b]And here you are trying to get the id using a get method, try using $_POST instead.[/b]

<b>Emacs</b> it's great for the body.
<br><br>
<b>Trust the TechnoLust</b>

<b><u>Have a question check here:</u></b>
PHP Manual: http://www.php.net




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users