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 に答える