我試圖將HTML表單域的內容寫入到我的Web服務器上的文本文件中。將HTML表單域寫入文本文件的問題
我能夠得到我在一個例子中找到的代碼,以便在普通的PHP文件中工作,但不能在我想要的文件中工作。
每當我提交表單時,PHP都會報錯。 PHP Notice: Undefined index: person in <snip>/upload.php on line 26, referer: <snip>/upload
這是我想日誌文件的代碼:
<?php
//Delete Current Files
$dirfiles = glob('<snip>/uploads/*'); // get all file names
foreach($dirfiles as $dirfile){ // iterate files
if(is_file($dirfile))
unlink($dirfile); // delete file
}
//Upload New Files
foreach ($_FILES["images"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$name = $_FILES["images"]["name"][$key];
move_uploaded_file($_FILES["images"]["tmp_name"][$key], "uploads/" . $_FILES['images']['name'][$key]);
}
}
echo "<h2>Successfully Uploaded Images</h2>";
//Log
$when = date("F j, Y, g:i a");
$who = $_POST["person"];
$out = fopen("output.txt", "a");
if (!$out) {
print("Could not append to file");
exit;
}
fputs($out,"$who\t");
fputs($out,"$when\t");
fputs($out,"$_SERVER[REMOTE_ADDR]\n");
print("Name, Time, Date, and IP Address have been recorded.");
?>
在日誌文件中,日期和IP地址記錄罰款,但沒有名字。 (像這樣)
February 11, 2013, 3:26 am IPADDR
其中名稱應該是在一開始就像
JohnDoe February 11, 2013, 3:26 am IPADDR
在原始形式的文件,它只是一個典型形式:
<form method="post" action="upload.php">
<input type="text" name="person" /> Your Name<br />
snip...
</form>
記錄工作的形式和沒有記錄的形式之間唯一的區別在於,這個形式也允許圖像上傳g via <input type="file" name="images" id="images" multiple />
究竟是什麼導致名稱不被記錄?
編輯:更新 - 事實證明,因此錯誤不存在於Internet Explorer中,但仍然存在於Chrome和Firefox中。這真的很奇怪。
你看到了什麼作爲輸出,當你替換每個的fputs具有類似打印通話打電話? – turiyag 2013-02-11 08:45:26
當你print_r($ _ POST)時你會看到什麼; – turiyag 2013-02-11 08:47:11
@turiyag在頁面上,當我用印刷品交換了fputs時,我得到了以下印刷品; '2013年2月11日,上午3點50分\t 24.168.247.250名稱,時間,日期和IP地址已被記錄.'全部在相同的字體中,同一字體等。 – Ross 2013-02-11 08:51:33