[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now


delete an image from the database folder

Posted on 2010-09-01
Medium Priority
Last Modified: 2012-05-10
Hi, I need help once again. This time with deleting images from the 'uploads' database folder.

I have no problems deleting the item from the database but cant find a way of deleting the related image from the folder (../../uploads).

I have looked through some of the solution posted on this site, but cant find a solution as each question in unique.

I have add to my code (attached) but get an error?

$path = '../../uploads/'; //path
           $image= $_POST["image_name"] ;
            //check that the path excsits
            echo "file exists";
            //echo $path;
              echo"file doesnt exist";

error message: Warning: unlink() expects parameter 2 to be resource, string given in C:\xampp\htdocs\WEBSITE\wwwroot\admin\delete_image.php on line 64

The parth is ok, but I dont think im getting thew right image value to be deleted. I can delete the image manually by

$path = '../../uploads/pic1.jpg';

Ian Wells
if(!isset($_SESSION['agent']) or ($_SESSION['agent'] != md5($_SERVER['HTTP_USER_AGENT']))){

        $url = absolute_url();

$page_title = 'Delete Product!';
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

<html xmlns="http://www.w3.org/1999/xhtml">

  <title>delete image</title>
include ('../includes/header.html');

<!--<link rel="stylesheet" href="css/styleSheet.css" type="text/css" />-->
<!-- Start of Container -->
<div id="container">
<!--Header -->

<div align="center" >
<?php # delete_image.php

// This page is for deleting a item record.
// This page is accessed through search_product.php

echo '<b><font color="#993300"><h1>Delete Image...</h1></b>';

// Check for a valid user ID, through GET or POST:
if ( (isset($_GET['id'])) && (is_numeric($_GET['id'])) ) { // From view_users.php
	$id = $_GET['id'];
} elseif ( (isset($_POST['id'])) && (is_numeric($_POST['id'])) ) { // Form submission.
	$id = $_POST['id'];
} else { // No valid ID, kill the script.
	echo '<p class="error">This page has been accessed in error.</p>';
	//include ('includes/footer.html');

// Check if the form has been submitted:
if (isset($_POST['submitted'])) {

	if ($_POST['sure'] == 'Yes') { // Delete the record.
           // Get the user's information:
           $path = '../../uploads/';
           $image= $_POST["image_name"] ;

            echo "file exists";
            //echo $path;
              echo"file doesnt exist";
		// Make the query:
		$q = "DELETE FROM images WHERE images.id=$id LIMIT 1";
		$r = @mysqli_query ($mysqli, $q);
		if (mysqli_affected_rows($mysqli) == 1) { // If it ran OK.

			// Print a message:
			echo '<p>The image has been deleted.</p>';
                        echo '<p><a href="search_product.php">Return to Admin</a></p>';

		} else { // If the query did not run OK.
			echo '<p class="error">The imjage could not be deleted due to a system error.</p>'; // Public message.
			echo '<p>' . mysqli_error($mysqli) . '<br />Query: ' . $q . '</p>'; // Debugging message.

	} else { // No confirmation of deletion.
		echo '<p>The image has NOT been deleted.</p>';
        echo '<p><a href="search_product.php">Return to Admin</a></p>';

} else { // Show the form.

	// Retrieve the user's information:
	$q = "SELECT * FROM images WHERE id=$id";
	$r = @mysqli_query ($mysqli, $q);

	if (mysqli_num_rows($r) >=0) { // Valid user ID, show the form.

		// Get the user's information:
		$row = mysqli_fetch_array ($r, MYSQLI_NUM);

// Create the form:
	echo '<form action="delete_image.php" method="post">';
        echo '<h3>Name: ' . $row[1] . '</h3>';
        echo "<img src=\"../../uploads/".$row[2]."\" width=\"80px\" /></br>";
	echo '<p>Are you sure you want to delete this user?<br />';
	echo '<input type="radio" name="sure" value="Yes" /> Yes';
	echo '<input type="radio" name="sure" value="No" checked="checked" /> No</p>';
	echo '<p><input type="submit" name="submit" value="Submit" /></p>';
	echo '<input type="hidden" name="submitted" value="TRUE" />';
	echo '<input type="hidden" name="id" value="' . $id .'" />';
        echo '<input type="hidden" name="image_name" value="' .$row[2].'" />';
	echo '</form>';

	} else { // Not a valid user ID.
		echo '<p class="error">This page has been accessed in error.</p>';

} // End of the main submission conditional.


Open in new window

Question by:irwells
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
LVL 31

Accepted Solution

Marco Gasi earned 2000 total points
ID: 33577245
You could simply write:

$image= $_POST["image_name"] ;
$path = '../../uploads/'.$image;

If this doesn't work try to check  $_POST["image_name"]

Best regards
LVL 31

Expert Comment

by:Marco Gasi
ID: 33577500
To chekc if you get the right value for image name, first you can add a simple echo $image;exit(); immediatly after having filled $image varible. You could also post your table structure, so I can try to see if row[2] holds image_name. Your code seems to be correct.

Best regards

Author Comment

ID: 33579220
Thanks marqusG for the quick reply.

I changed

$parth ='../../uploads/';
$parth ='../../uploads/'.$image;

and it works great.

Thank you.
LVL 31

Expert Comment

by:Marco Gasi
ID: 33579313
Glad for helped you. Thanks for points.

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses four methods for overlaying images in a container on a web page
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to count occurrences of each item in an array.
Suggested Courses

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question