我是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的文件夹。请帮我理解错误的位置。提前谢谢。
答案 0 :(得分:0)
我认为这是你的问题:
如果删除脚本与您尝试删除的目录不在同一目录中,则 unlink
和rmdir
需要删除文件/目录的完整路径。
尝试将这样的内容添加到您的删除功能的顶部:
$dir = "/opt/www/userdirs"
$dirname = $dir . '/' . $dirname;
将“/ opt / www / userdirs”更改为要删除的目录所在的目录。
我认为你还需要改变所有这些:
$dirname.$file
要:
$dirname . '/' . $file