-1

我是 php 的初学者,并创建了一个代码,其中显示了一个包含与我的用户有关的数据的表格,该表格位于我的数据库中。这是我使用的代码。 姓名 出生日期 城镇 出生 代码 地址 电子邮件 ";

while($row=mysql_fetch_array($result))

{echo"<tr>";
echo"<td>" . $row['Name'] . "</td>";
echo"<td>" . $row['Surname'] . "</td>";
echo"<td>" . $row['DateofBirth'] . "</td>";
echo"<td>" . $row['TownofBirth'] . "</td>";
echo"<td>" . $row['Code'] . "</td>";
echo"<td>" . $row['Address'] . "</td>";
echo"<td>" . $row['Email'] . "</td>";
echo'<td><a href="delete.php?id='.$row['Code'].'">Delete</a></td>';
echo"</tr>";
}
echo"</table>";
?>

我还创建了一个 delete.php 文件,该文件允许通过单击“删除”链接从数据库中删除用户,但我还希望此代码删除一个以用户用户名命名的文件夹,该文件夹位于当前工作目录。这是我写的代码:

<?php
$con=mysql_connect("localhost","root","mypassword");
mysql_select_db("mydb",$con);
function deletedir($dirname){
    if(file_exists($dirname) && is_file($dirname)) {
        unlink($dirname);
    } elseif(is_dir($dirname)) {
        $handle=opendir($dirname);
        while(false!==($file=readdir($handle))){
            if(is_file($dirname.$file)){
                unlink($dirname.$file);
            }
        }
        $handle=closedir($handle);
        rmdir($dirname);
    }
}

if (isset($_GET['id'])) {
    $id=$_GET['id'];
    $sql=mysql_query("SELECT Username FROM Users WHERE Code='$id'");
    while($row=mysql_fetch_array($sql)) {
        $username=$row['Username'];
        deletedir($username);
    }

    $result=mysql_query("DELETE FROM Users WHERE Code='$id'") or die(mysql_error());
    header("location: index.php");
} else {
    header("location: index.php");
}

?> 

此代码从数据库中删除用户,但不会删除名为 $username 的文件夹。请帮助我了解错误在哪里。先感谢您。

4

1 回答 1

0

我认为这是你的问题:

unlink如果删除脚本与rmdir您要删除的目录不在同一目录中,则需要删除文件/目录的完整路径。

尝试在您的 deletedir 函数的顶部添加类似的内容:

$dir = "/opt/www/userdirs"
$dirname = $dir . '/' . $dirname;

将“/opt/www/userdirs”更改为要删除的目录所在的目录。

而且我认为您还需要更改所有这些:

$dirname.$file

到:

$dirname . '/' . $file
于 2013-01-12T22:24:52.117 回答