Fatal error: Alowed memory size of 8388608 bytes exhausted ....

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • RYKLOU
    New Member
    • Jul 2008
    • 1

    Fatal error: Alowed memory size of 8388608 bytes exhausted ....

    I am kinda new to php, but i do know what i am doing kinda, but i came across this error when i am trying to upload a file to my website.

    Code:
    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 3714000 bytes) in /opt/lampp/htdocs/tutorials/php-mysql-tutorial/admin/image-gallery/library/functions.php on line 104
    Platform:
    Ubuntu 8.04 LST (where i make my programs, and test them before i upload them), Using XAMPP for Linux 1.6.7, Apache
    Server:
    Fedora release 7 (Moonshine)
    2.6.9-023stab044.4-smp #1 SMP Thu May 24 17:20:37 MSD 2007 i686 i686 i386 GNU/Linux


    Source of
    Code:
    <?php
    
    /*	
    	Details for:	'functions.php'
    		Auther:		Franocis Venter
    		Domain:		main.theshadowgfx.com
    		Copyright: 	(c) 2008 The ShadowGFX			
    	End Details
    
    	
    	Upload an image and create the thumbnail. The thumbnail is stored 
    
    	under the thumbnail sub-directory of $uploadDir.
    
    	
    
    	Return the uploaded image name and the thumbnail also.
    
    */
    
    function uploadImage($inputName, $uploadDir)
    
    {
    
    	$image     = $_FILES[$inputName];
    
    	$imagePath = '';
    
    	$thumbnailPath = '';
    
    	
    
    	// if a file is given
    
    	if (trim($image['tmp_name']) != '') {
    
    		$ext = substr(strrchr($image['name'], "."), 1); 
    
    
    
    		// generate a random new file name to avoid name conflict
    
    		// then save the image under the new file name
    
    		$imagePath = md5(rand() * time()) . ".$ext";
    
    		$result    = move_uploaded_file($image['tmp_name'], $uploadDir . $imagePath);
    
    			
    
    		if ($result) {
    
    			// create thumbnail
    
    			$thumbnailPath =  md5(rand() * time()) . ".$ext";
    
    			$result = createThumbnail($uploadDir . $imagePath, $uploadDir . 'thumbnail/' . $thumbnailPath, THUMBNAIL_WIDTH);
    
    			
    
    			// create thumbnail failed, delete the image
    
    			if (!$result) {
    
    				unlink($uploadDir . $imagePath);
    
    				$imagePath = $thumbnailPath = '';
    
    			} else {
    
    				$thumbnailPath = $result;
    
    			}	
    
    		} else {
    
    			// the image cannot be uploaded
    
    			$imagePath = $thumbnailPath = '';
    
    		}
    
    		
    
    	}
    
    
    
    	
    
    	return array('image' => $imagePath, 'thumbnail' => $thumbnailPath);
    
    }
    
    
    
    /*
    
    	Create a thumbnail of $srcFile and save it to $destFile.
    
    	The thumbnail will be $width pixels.
    
    */
    
    function createThumbnail($srcFile, $destFile, $width, $quality = 75)
    
    {
    
    	$thumbnail = '';
    
    	
    
    	if (file_exists($srcFile)  && isset($destFile))
    
    	{
    
    		$size        = getimagesize($srcFile);
    
    		$w           = number_format($width, 0, ',', '');
    
    		$h           = number_format(($size[1] / $size[0]) * $width, 0, ',', '');
    
    		
    
    		$thumbnail =  copyImage($srcFile, $destFile, $w, $h, $quality);
    
    	}
    
    	
    
    	// return the thumbnail file name on sucess or blank on fail
    
    	return basename($thumbnail);
    
    }
    
    
    
    /*
    
    	Copy an image to a destination file. The destination
    
    	image size will be $w X $h pixels
    
    */
    
    function copyImage($srcFile, $destFile, $w, $h, $quality = 75)
    
    {
    
        $tmpSrc     = pathinfo(strtolower($srcFile));
    
        $tmpDest    = pathinfo(strtolower($destFile));
    
        $size       = getimagesize($srcFile);
    
    
    
        if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
    
        {
    
           $destFile  = substr_replace($destFile, 'jpg', -3);
    
           $dest      = imagecreatetruecolor($w, $h);
    
           //imageantialias($dest, TRUE);
    
        } elseif ($tmpDest['extension'] == "png") {
    
           $dest = imagecreatetruecolor($w, $h);
    
           //imageantialias($dest, TRUE);
    
        } else {
    
          return false;
    
        }
    
    
    
        switch($size[2])
    
        {
    
           case 1:       //GIF
    
               $src = imagecreatefromgif($srcFile);
    
               break;
    
           case 2:       //JPEG
    
               $src = imagecreatefromjpeg($srcFile);
    
               break;
    
           case 3:       //PNG
    
               $src = imagecreatefrompng($srcFile);
    
               break;
    
           default:
    
               return false;
    
               break;
    
        }
    
    
    
        imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
    
    
    
        switch($size[2])
    
        {
    
           case 1:
    
           case 2:
    
               imagejpeg($dest,$destFile, $quality);
    
               break;
    
           case 3:
    
               imagepng($dest,$destFile);
    
        }
    
        return $destFile;
    
    
    
    }
    
    
    
    /*
    
    	Check if the user is logged in or not
    
    */
    
    function checkLogin()
    
    {
    
    	if (!isset($_SESSION['isLogin']) || $_SESSION['isLogin'] == false) {
    
    		header('Location: login.php');
    
    		exit;
    
    	}
    
    }
    
    
    
    /*
    
    	Create the link for moving from one page to another
    
    */
    
    function getPagingLink($totalResults, $pageNumber, $itemPerPage = 10, $strGet = '')
    
    {
    
    	$pagingLink    = '';
    
    	$totalPages    = ceil($totalResults / $itemPerPage);
    
    	
    
    	// how many link pages to show
    
    	$numLinks      = 10;
    
    
    
    	// create the paging links only if we have more than one page of results
    
    	if ($totalPages > 1) {
    
    		$self = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ;
    
    
    
    		// print 'previous' link only if we're not
    
    		// on page one
    
    		if ($pageNumber > 1) {
    
    			$page = $pageNumber - 1;
    
    			if ($page > 1) {
    
    				$prev = " <a href=\"$self?pageNum=$page&$strGet\">[Prev]</a> ";
    
    			} else {
    
    				$prev = " <a href=\"$self?$strGet\">[Prev]</a> ";
    
    			}	
    
    				
    
    			$first = " <a href=\"$self?$strGet\">[First]</a> ";
    
    		} else {
    
    			$prev  = ''; // we're on page one, don't show 'previous' link
    
    			$first = ''; // nor 'first page' link
    
    		}
    
    	
    
    		// print 'next' link only if we're not
    
    		// on the last page
    
    		if ($pageNumber < $totalPages) {
    
    			$page = $pageNumber + 1;
    
    			$next = " <a href=\"$self?pageNum=$page&$strGet\">[Next]</a> ";
    
    			$last = " <a href=\"$self?pageNum=$totalPages&$strGet\">[Last]</a> ";
    
    		} else {
    
    			$next = ''; // we're on the last page, don't show 'next' link
    
    			$last = ''; // nor 'last page' link
    
    		}
    
    
    
    		$start = $pageNumber - ($pageNumber % $numLinks) + 1;
    
    		$end   = $start + $numLinks - 1;		
    
    		
    
    		$end   = min($totalPages, $end);
    
    		
    
    		$pagingLink = array();
    
    		for($page = $start; $page <= $end; $page++)	{
    
    			if ($page == $pageNumber) {
    
    				$pagingLink[] = " $page ";   // no need to create a link to current page
    
    			} else {
    
    				if ($page == 1) {
    
    					$pagingLink[] = " <a href=\"$self?$strGet\">$page</a> ";
    
    				} else {	
    
    					$pagingLink[] = " <a href=\"$self?pageNum=$page&$strGet\">$page</a> ";
    
    				}	
    
    			}
    
    	
    
    		}
    
    		
    
    		$pagingLink = implode(' | ', $pagingLink);
    
    		
    
    		// return the page navigation link
    
    		$pagingLink = $first . $prev . $pagingLink . $next . $last;
    
    	}
    
    	
    
    	return $pagingLink;
    
    }
    
    
    
    /*
    
    	Display the breadcrumb navigation on top of the gallery page
    
    */
    
    function showBreadcrumb()
    
    {
    
    	if (isset($_GET['album'])) { 
    
    		$album = $_GET['album'];
    
    		$sql  = "SELECT al_name
    
                     FROM tbl_album
    
    		         WHERE al_id = $album";
    
    				 
    
    		$result = mysql_query($sql) or die('Error, get album name failed. ' . mysql_error());
    
    		$row = mysql_fetch_assoc($result);
    
    		echo ' &gt; <a href="index.php?page=list-image&album=' . $album . '">' . $row['al_name'] . '</a>';
    
    
    
    		if (isset($_GET['image'])) {
    
    			$image = $_GET['image'];
    
    			$sql  = "SELECT im_title
    
    					 FROM tbl_image
    
    					 WHERE im_id = $image";
    
    					 
    
    			$result = mysql_query($sql) or die('Error, get image name failed. ' . mysql_error());
    
    			$row = mysql_fetch_assoc($result);
    
    			
    
    			echo ' &gt; <a href="index.php?page=image-detail&album=' . $album . '&image=' . $image . '">' . $row['im_title'] . '</a>';
    
    		}
    
    	}
    
    }
    
    
    
    ?>
  • hsriat
    Recognized Expert Top Contributor
    • Jan 2008
    • 1653

    #2
    I didn't check your code, but there's a problem inside one of your for loop or while loop. To find out which loop is giving this error, check the line no. 104 (whichever is pointed out by error message)

    Comment

    Working...