麻烦使用PHP fwrite从下拉列表中选择的文件写回文本文件

问题描述 投票:1回答:2

我无法通过使用下拉菜单写回从html表单中选择的文本文件,脚本可以读取但无法写回,使用PHP fopen和fwrite返回“无法打开文件”

这是index.html代码:

<html>
<head></head>
<title>Edit Server Side Text Files</title>
<body>
<form action="function.php" method="post">
<select name="list">
  <option value="./files/banned-kdf.txt">banned-kdf.txt</option>
  <option value="./files/blackList.txt">blackList.txt</option>
</select>
<input type="submit" name="edit" value="Edit" />
</form>
</body>
</html>

这是function.php代码:

<?php

if(isset($_POST["edit"])) {
   $filename = $_POST["list"];
   global $filename;
//   var_dump($filename);
   $myfile = fopen("$filename", "r") or die("Unable to open file!");
   $filecontent =  fread($myfile,filesize("$filename"));
   fclose($myfile);
 }
?>
<html>
<form action="<?php echo $PHP_SELF;?>" method="post">
<textarea name="textareaContent" rows="50" cols="100">
<?

if(isset($filecontent)) { echo $filecontent; }

?>
</textarea>
<br>
<br>
<input type="submit" name="update" value="Update" />
 </textarea>
<?
//write to text file
 if(isset($_POST["update"])) {
// The following two lines are just for troubleshooting and have been commented out.     
//   echo $_POST["update"];
//   var_dump($filename);
   $myfile = fopen("$filename", "w") or die("Unable to open file!");
   fwrite($myfile, $_POST["textareaContent"]);
   fclose($myfile);
 }
 ?>

 </form>
 <br>
 <br>
<a href="/index.html">Return to List Selection</a>
</html>
forms text dropdown fopen fwrite
2个回答
0
投票

您不是以第二种形式发送文件名,而只是发送代码,因此$filename未定义。将其添加到隐藏的输入中:


0
投票

请检查目标文件的权限以及应该在其中的文件的文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.