Php 取消链接($filename):权限被拒绝警告
当我尝试使用unlink()时,我的警告被拒绝 我创建了一个从目录中删除图像的函数:Php 取消链接($filename):权限被拒绝警告,php,unlink,Php,Unlink,当我尝试使用unlink()时,我的警告被拒绝 我创建了一个从目录中删除图像的函数: function del($fnam){ chmod('content/'.$fnam, 0777); chown('content/'.$fnam,465); unlink('content/'.$fnam); } 我在阅读了论坛上的文章后使用了chmod()和chown(),但我仍然收到了警告,并且图片没有被删除 当我从不同的地方叫它时,它是多么迷人 if($temp2==1){ /
function del($fnam){
chmod('content/'.$fnam, 0777);
chown('content/'.$fnam,465);
unlink('content/'.$fnam);
}
我在阅读了论坛上的文章后使用了chmod()和chown(),但我仍然收到了警告,并且图片没有被删除
当我从不同的地方叫它时,它是多么迷人
if($temp2==1){ //For Delete
$sql="delete from blog where b_id=$temp1";
$im=fetch('blog','b_img','b_id='.$temp1);
//Deleting Image
del($im);
}
上面的代码没有任何功能(以过程方式运行),这给了我积极的回应。
如何修复此问题?尝试更改内容目录的权限
function del($fnam){
chmod('content/, 0777);
unlink('content/'.$fnam);
}
不幸的是,您的代码假设
chmod
和chown
始终有效,这是一个错误的假设
如果您没有正确的权限,它们也可能失败
像这样更改代码,它应该会告诉您实际出了什么问题
function del($fnam){
if ( ! chmod('content/'.$fnam, 0777) ) {
echo 'chmod failed';
}
if ( ! chown('content/'.$fnam,465) ) {
echo 'chown failed';
}
if ( ! unlink('content/'.$fnam) ) {
echo 'unlink failed';
}
}
您没有得到预期的结果,因为: 根据手册: 尝试将文件名的所有者更改为用户。只有超级用户可以更改文件的所有者 只有当应用程序以root用户身份运行时,它才会起作用,我确信情况并非如此 根据手册: 尝试将指定文件的模式更改为模式中给定的模式
基本上,如果您没有正确的权限,chmod和unlink将不起作用。在这种情况下,您无法使用php删除文件,因为php没有足够的权限。如果您无法从上面更改权限,请尝试使用FTP进行攻击 (我知道它不常见,但它的工作原理和它可以帮助您个人使用)
您需要对包含目录具有写入权限才能删除文件,因为必须将该目录文件修改为“删除”文件。您确定要将正确的参数传递给del函数吗?@MarcB是的,我传递的参数是正确的,因为当我在其他任何地方调用该函数时,该函数工作正常,即使是参数错误,它也可能会因无效文件名或无效路径而弹出错误,但它没有。@MarcB如何修改该文件以删除?thanks@Ajaz你有shell访问权限或ftp访问权限?我找到了它,只是重新编写了整个代码,而且工作起来很神奇。lol计算机很奇怪。如果它无法删除,我怀疑它是否可以更改权限。这取决于你的托管能力和权限
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// try to delete $file
if (ftp_delete($conn_id, $file)) {
echo "$file deleted successful\n";
} else {
echo "could not delete $file\n";
}