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