无法使用unlink删除图片,我的权限是否错误?

时间:2013-09-02 02:27:38

标签: php file-io unlink

我正在尝试使用取消链接删除已删除评论中的图片,但它根本无法正常工作。数据库中的注释被删除但实际图片没有删除。我究竟做错了什么?文件夹权限为755,图像权限为644。

if (loggedin()) {
    $dblink = mysqli_connect($DBhostname, $DBusername, $DBpassword, $DBname);
    if (!$dblink) {die("Connection error (".mysqli_connect_errno.") " . mysqli_connect_error());}

    $commentid = mysqli_real_escape_string($dblink, $_GET['c']);

    $qry = "SELECT * FROM comments WHERE id='$commentid' LIMIT 1";
    $result = mysqli_query($dblink, $qry) or die(mysqli_error($dblink));
    if (mysqli_num_rows($result) > 0) {
        $row = mysqli_fetch_assoc($result);

        $commenter = $row["commenter"];
        $thereisimg = $row["thereisimg"];
        $imgtype = $row["imgtype"];

        // if logged in email = email of commenter
        if ($_SESSION["logged-in"] == $commenter) {

            // delete comment
            $qry = "DELETE FROM comments WHERE id=$commentid";
            $result = mysqli_query($dblink, $qry) or die(mysqli_error($dblink));

            // if image, delete image
            if ($thereisimg) {
                // delete image
                $imglink = "/imgs/commentpics/".$commentid.".".$imgtype;
                echo $imglink;
                unlink($imglink);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

要进行诊断,请尝试以下方法之一:

  1. 向PHP代码添加错误处理程序以捕获错误
  2. 使用strace跟踪进程并获取unlink()系统调用的确切结果
  3. 这是(1)的文件:http://www.w3schools.com/php/php_error.asp

    做2:

    strace -e unlink php myScript.php
    

    假设脚本可以直接从命令行运行。

    设置错误处理程序

    <?php
    
    function my_error_handler($error_level,$error_message,
    $error_file,$error_line,$error_context) 
    {
            echo $error_message;
    }
    
    set_error_handler("my_error_handler");