0

我正在开发一个 PHP 页面:

  1. 从 db 文件中读取项目;

  2. 将项目转换为保管箱项目;

  3. 提交表格以移除选中的项目;接着

  4. 另一个页面删除并写入文件

问题:

  1. 移除页面可以回显贴出的字符串;

  2. 删除页面无法从 db 文件中删除已发布的字符串;和

  3. 我尝试在删除页面上对字符串进行硬编码,直接运行删除页面,字符串可以从db文件中删除。即从$str=str_replace($HTTP_POST_VARS["RMBOX"],'',$str);$str=str_replace('abc@email.com','',$str);

代码和db文件如下:

文件(命名为 mailto)包含以下行: abc@email.com

Dropbox 页面(名为 mbox.php)包含以下行:

<form action="rmbox.php" method="post" name="items">
<?php
$db = "mailto";
?>
<table>
tr><th ALIGN=LEFT>Remove Recipient</th></tr>
<tr><th ALIGN=LEFT>
<select name=RMBOX>
<option selected="selected"></option>
value="<?php
$handle = @fopen($db, 'r');
if ($handle) {
   while (!feof($handle)) {
   $line = fgets($handle, 4096);
   $item = explode('|', $line);
   echo '<option value="' . $item[0] . '">' . $item[0] . '</option>' . "\n";
   }
   fclose($handle);
}
?>
</select>
<th></tr></table>
<input type="submit" name="submit" value="Remove" />
</form>

删除页面(命名为 rmbox.php)包含以下行:

<?php
$db = "mailto";
$str=implode("\n",file($db));
$fp=fopen($db,'w');
echo $HTTP_POST_VARS["RMBOX"];
$str=str_replace($HTTP_POST_VARS["RMBOX"],'',$str);
fwrite($fp,$str,strlen($str));
?>
4

1 回答 1

1

我解决了这个问题。下面是代码:

$item = explode('\n', $line);
于 2012-06-13T04:47:06.613 回答