私は次のようなPHPページに取り組んでいます:
db ファイルから項目を読み取ります。
アイテムをドロップボックス アイテムとして変換します。
フォームを送信して、選択したアイテムを削除します。その後
別のページがファイルを削除して書き込む
問題:
削除ページは、投稿された文字列をエコーできます。
削除ページは投稿された文字列を db ファイルから削除できません。と
削除ページで文字列をハードコーディングして、削除ページを直接実行しようとしましたが、文字列は 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));
?>