从db和专用文件夹中删除用户

时间:2013-01-12 21:41:51

标签: php mysql

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

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文件,它允许通过单击&#34; delete&#34;删除数据库中的用户。链接,但我也希望此代码删除以用户的用户名命名的文件夹,该文件夹位于当前工作目录中。这是我写的代码:

<?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的文件夹。请帮我理解错误的位置。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为这是你的问题:

如果删除脚本与您尝试删除的目录不在同一目录中,则

unlinkrmdir需要删除文件/目录的完整路径。

尝试将这样的内容添加到您的删除功能的顶部:

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

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

我认为你还需要改变所有这些:

$dirname.$file

要:

$dirname . '/' . $file