2012-09-20 55 views
0

我尝试删除图像目录中的图像,但仍然没有发生在我的图像文件中。 我尝试使用此代码使用方法:带ID的图像删除功能

<a href=\"../admin/core/de_products.php?id=$row[id]\">Delete</a> 

使用此项功能:

<?php 
require_once("../inc/con_db.php"); 

if(isset($_GET["id"]) && $_GET["id"]!="") 
{ 

$image=mysql_query("SELECT * FROM products WHERE id='".$_GET["id"]."'") or die(mysql_error());` 

    if(mysql_num_rows($image)>0) 
    { 
     $row=mysql_fetch_array($image); 
     $image_name=$row["img_thumb"];` 

     $check=mysql_query("DELETE FROM products WHERE id='".$_GET["id"]."'") or die(mysql_error()); 

     if($check) 
     { 
      @unlink("images/products/thumbs/".$image_name); 
      echo "Database has been deleted!"; 
     } 
     else 
     { 
      echo "Oops, there is some problem"; 
     } 
    } 
} 
?> 
+0

注意:请注意''删除产品WHERE id ='“。$ _ GET [”id“]。”'“'!!!这是不安全的! – Wh1T3h4Ck5

+0

1.注意sql注入攻击! 2.确保已达到取消链接功能(检查“数据库已被删除!”是否为printet)3.从取消链接中删除@ charachter,启用所有php错误和警告并更新所有错误信息 – RezaSh

回答

1

您是否获得了页面上或在您的服务器日志的任何警告或错误?我建议你从取消链接前删除@,直到你完成调试这个问题,这样你才能真正看到它可能抛出的警告。

您可能会尝试检查.../thumbs /目录是否可由您的服务器运行的任何用户写入。或者,如果你像我一样懒,你可以将其权限设置为777。要删除文件,您需要在其所在的目录上写入权限。

+0

不,我没有警告或错误,按摩出现:数据库已被删除! –

+0

我假设这不是一个真正的人们可以看到它的网站类型,更多的是一个学习项目,对吧? 在任何情况下,你都应该考虑不像你一样编写查询,或者至少在将id传递给MySQL之前使用mysql_real_escape_string。 – adamdunson

+0

当我从取消链接删除@我得到错误按摩: 警告:取消链接(图像/产品/拇指/ 2.jpg)[function.unlink]:没有这样的文件或目录在D:\ MyWebSite \ css_pro \ admin \ core \ de_products_test.php 17行 –