Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
忽略PHP复制和取消链接_Php_Copy_Unlink - Fatal编程技术网

忽略PHP复制和取消链接

忽略PHP复制和取消链接,php,copy,unlink,Php,Copy,Unlink,当用户点击我的表单上的删除按钮时,此代码将运行。我正在尝试将文件$picfile从“/pics/”复制到“/pics/deletedrecordpics/”,然后删除原始文件。最后,从数据库中删除记录。从数据库中删除记录是可行的,但复制文件并删除原始记录却没有任何作用。错误日志中没有错误,所以我真的很困惑为什么这段代码没有像我认为的那样运行 if ($allowdelete==true && $thepassword == $password) { //delete re

当用户点击我的表单上的删除按钮时,此代码将运行。我正在尝试将文件$picfile从“/pics/”复制到“/pics/deletedrecordpics/”,然后删除原始文件。最后,从数据库中删除记录。从数据库中删除记录是可行的,但复制文件并删除原始记录却没有任何作用。错误日志中没有错误,所以我真的很困惑为什么这段代码没有像我认为的那样运行

if ($allowdelete==true && $thepassword == $password)
{
    //delete record that delete was set to by button

    //$sql = ("DELETE FROM $table WHERE id=$id");
    $sql = ("select picfile,title,author from $table where id=$delete");
    $file=mysql_query($sql);
    $resrow = mysql_fetch_row($file);
    $picfile = $resrow[0];
    $title = $resrow[1];
    $author = $resrow[2];
    if (file_exists("/pics".$picfile)){
        copy("/pics/".$picfile,"/pics/deletedrecordpics/".$author."-".$title."-".$picfile);
        unlink("/pics/".$picfile);
        echo $available = "image is available.";

        $sql = ("DELETE FROM $table WHERE id=$delete");
        $result = mysql_query($sql);

        if ($result){
            echo "Your Picture has been removed from our system.";
            Die($available);
        }
        else{
            echo "There was an error in removing your picture.";
            $Delete = "";
            Die();
        }       
    }
    else{
        echo $available = "image is not available.";
    }
}
奇怪的是,在“/adminpanel”中我的控制面板上的删除按钮中有一个几乎相同的代码,它工作得非常完美。代码是相同的,除了我在所有“pics/”之前使用$id而不是$delete和“./”,因为它在adminpanel文件夹中。权限正确且文件夹存在,因为代码与该页一起工作。我知道$delete正在设置,因为记录已从数据库中删除。我知道picfile、author和title已经设置好了,因为我将它们附加到print语句中,它们都是正确的。真的很困惑。有什么想法吗

这是工作页面的代码

q = ("select picfile,title,author from $table where id=$id");
$file=mysql_query($q);
$resrow = mysql_fetch_row($file);
$picfile = $resrow[0];
$title = $resrow[1];
$author = $resrow[2];
copy("../pics/".$picfile,"../pics/deletedrecordpics/".$author." - ".$title." -     ".$picfile);
unlink("../pics/".$picfile);
$file=mysql_query($q);
$q = ("DELETE FROM $table WHERE id=$id");
$file=mysql_query($q);

为什么这行重复两次$file=mysql_query($q)

试试这个

$file_path = $_SERVER["DOCUMENT_ROOT"]."/pics/";
if (file_exists($file_path.$picfile))
{
    copy($file_path.$picfile, $file_path."/deletedrecordpics/".$author."-".$title."-".$picfile);
    unlink($file_path.$picfile);
}
else
{
        echo "File not found!!!!!!!!";
}

尝试使用要复制或取消链接的文件的完整物理路径。请使用$\u服务器[“DOCUMENT\u ROOT”]**后跟文件的目录路径,即.*$\u服务器[“DOCUMENT\u ROOT”]。“/uploads/pics/”$picfileNo luck。。。这几乎就像复制和取消链接功能被忽略了一样。我想不出任何理由。谢谢你的帮助!这些是PHP的核心功能,不能像那样被忽略。您是否尝试使用file_exists()函数()确定图像是否可用?我用新代码编辑了我的问题。它怎么可能只打印“您的图片已从我们的系统中删除。谢谢”怎么$success没有值?请使用die()并显示一些文本消息,说明图像可用或不可用,而不是使用$success?很好。我已经删除了,但这不是问题所在。