我读取文件夹中的文件。PHP读取后取消链接文件
现在我想让每个文件都带有“编辑”,“开始”和“删除”按钮。
的问题是,当我点击“删除”,PHP将删除最后一个文件的读取,在那里我点击“删除”
据我所知,这是While循环而不是文件,不提供任何信息到取消链接功能,但我不明白。
感谢您的帮助! ?:)
<?php
if ($handle = opendir('rezepte/')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
#Entfernt der Datei das ".txt"
$replacer = str_replace(".txt","",$entry);
echo "
<div class='eintrag'>$replacer</div><br>
<a href='$replacer.txt'>edit</a>
<a href='$replacer'> start</a>
<form method='post'>
<input type='submit' name='delete' value='delete'/>
</form>";
}
}
closedir($handle);
}
if(isset($_POST['delete'])) {
echo "
<div class='warning'>";
echo $replacer;
echo "Do you really want to delete?>
<form method='post'>
<input type='submit' name='really_delete' value='delete it'/>
</form>
<form method='post'>
<input type='submit' name='not_delete' value='cancel'/>
</form></div>";
}
if(isset($_POST['really_delete'])) {
unlink("rezepte/".$replacer.".txt");
}
if(isset($_POST['not_delete'])) {
}
>
我也对你的代码指出一个安全问题。考虑一个用户可以提交一个HTTP请求,其中包含$ _POST ['delete']'和$ _POST ['really_delete']'的任意值。如果工作目录是'/ var/www',则'../../ some/important/file'的'really_delete'值将会通过'/var/www/rezepte/../../调用'unlink'。/some/important/file.txt',即'/ var/some/important/file.txt'。您需要清理从“delete”和“really_delete”中读取的内容。例如如果您只希望整数值,如果它们中包含其他字符则失败。另外,你是否允许任何用户删除任何文件? – joshden
哦,你是对的,坦克你。我只写了一个小的php/html/css web应用程序在我的覆盆子pi上调用python函数。所以只有我作为一个用户。无论如何,谢谢:) – Doodles