我已经弄清楚如何制作每个帖子的数组,以便txt文件是唯一的,但我仍然试图找出如何删除它。这是我目前的进展:
的index.php:
<?php
$fileNames = glob("*.txt");
$posts = array();
foreach($fileNames as $fileName) {
$post = file($fileName);
array_push($posts, $post);
}
$postNum = 0;
foreach($posts as $post) {
$i = 1;
$fname = $fileNames[$postNum];
foreach($post as $line) {
if ($i==1) {
echo "<h1 style=\"padding: 0px 30px 0px 30px;\">$line</h1>";
} else {
echo "<p style=\"padding: 0px 30px 0px 30px; color:#4d4d4d;\">$line</p>";
echo "<form action=\"deletepost.php\" method=\"get\" style=\"padding: 0px 30px 0px 30px;\"><input type=\"submit\" value=\"Delete Post\"><input type='hidden' name='filename' value='".$fname."'></form>";
}
$i++;
}
$postNum++;
}
?>
Deletepost.php:
<?php
session_start();
if($_SESSION['authenticated'] != true) {
header("Location: login.php");
die();
}
?>
我知道我必须使用$ _REQUEST [&#39; filename&#39;];在deletepost.php中的某个地方,但就我而言。任何帮助表示赞赏。感谢。
答案 0 :(得分:0)
您正在寻找unlink功能。您可以添加以下逻辑:
Deletepost.php:
<?php
session_start();
if($_SESSION['authenticated'] != true || !isset($_GET['filename'])) {
header("Location: login.php");
die();
}
$filename = $_GET['filename'];
if(file_exists($filename)) {
unlink($filename);
}
?>
但我强烈建议你检查并重新检查$ filename值,看看要删除的文件是否合理(例如:http://yoursite.com/deletepost.php?filename=../index.php将删除你的index.php文件!)
答案 1 :(得分:0)
你可以在PHP中使用unlink()
删除文件,成功时返回true,不成功时返回false。
if (file_exists($_REQUEST['filename']) unlink($_REQUEST['filename']);